texlive[43997] trunk: Add files needed for CJK to tlgs, adapt

commits+reinhardk at tug.org commits+reinhardk at tug.org
Mon Apr 24 00:15:25 CEST 2017


Revision: 43997
          http://tug.org/svn/texlive?view=revision&revision=43997
Author:   reinhardk
Date:     2017-04-24 00:15:25 +0200 (Mon, 24 Apr 2017)
Log Message:
-----------
Add files needed for CJK to tlgs, adapt runscript.tlu accordingly.

Modified Paths:
--------------
    trunk/Build/source/texk/texlive/w32_wrapper/runscript.tlu
    trunk/Master/bin/win32/runscript.tlu
    trunk/Master/tlpkg/tlgs/README.TEXLIVE
    trunk/Master/tlpkg/tlgs/bin/gsdll32.dll
    trunk/Master/tlpkg/tlgs/bin/gsdll32.lib
    trunk/Master/tlpkg/tlgs/bin/gswin32.exe
    trunk/Master/tlpkg/tlgs/bin/gswin32c.exe

Added Paths:
-----------
    trunk/Master/tlpkg/tlgs/Resource/
    trunk/Master/tlpkg/tlgs/Resource/CIDFSubst/
    trunk/Master/tlpkg/tlgs/Resource/CIDFSubst/DroidSansFallback.ttf
    trunk/Master/tlpkg/tlgs/Resource/CIDFont/
    trunk/Master/tlpkg/tlgs/Resource/CIDFont/ArtifexBullet
    trunk/Master/tlpkg/tlgs/Resource/CMap/
    trunk/Master/tlpkg/tlgs/Resource/CMap/78-EUC-H
    trunk/Master/tlpkg/tlgs/Resource/CMap/78-EUC-V
    trunk/Master/tlpkg/tlgs/Resource/CMap/78-H
    trunk/Master/tlpkg/tlgs/Resource/CMap/78-RKSJ-H
    trunk/Master/tlpkg/tlgs/Resource/CMap/78-RKSJ-V
    trunk/Master/tlpkg/tlgs/Resource/CMap/78-V
    trunk/Master/tlpkg/tlgs/Resource/CMap/78ms-RKSJ-H
    trunk/Master/tlpkg/tlgs/Resource/CMap/78ms-RKSJ-V
    trunk/Master/tlpkg/tlgs/Resource/CMap/83pv-RKSJ-H
    trunk/Master/tlpkg/tlgs/Resource/CMap/90ms-RKSJ-H
    trunk/Master/tlpkg/tlgs/Resource/CMap/90ms-RKSJ-V
    trunk/Master/tlpkg/tlgs/Resource/CMap/90msp-RKSJ-H
    trunk/Master/tlpkg/tlgs/Resource/CMap/90msp-RKSJ-V
    trunk/Master/tlpkg/tlgs/Resource/CMap/90pv-RKSJ-H
    trunk/Master/tlpkg/tlgs/Resource/CMap/90pv-RKSJ-V
    trunk/Master/tlpkg/tlgs/Resource/CMap/Add-H
    trunk/Master/tlpkg/tlgs/Resource/CMap/Add-RKSJ-H
    trunk/Master/tlpkg/tlgs/Resource/CMap/Add-RKSJ-V
    trunk/Master/tlpkg/tlgs/Resource/CMap/Add-V
    trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-0
    trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-1
    trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-2
    trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-3
    trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-4
    trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-5
    trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-6
    trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-GB1-0
    trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-GB1-1
    trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-GB1-2
    trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-GB1-3
    trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-GB1-4
    trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-GB1-5
    trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-0
    trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-1
    trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-2
    trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-3
    trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-4
    trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-5
    trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-6
    trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Korea1-0
    trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Korea1-1
    trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Korea1-2
    trunk/Master/tlpkg/tlgs/Resource/CMap/B5-H
    trunk/Master/tlpkg/tlgs/Resource/CMap/B5-V
    trunk/Master/tlpkg/tlgs/Resource/CMap/B5pc-H
    trunk/Master/tlpkg/tlgs/Resource/CMap/B5pc-V
    trunk/Master/tlpkg/tlgs/Resource/CMap/CNS-EUC-H
    trunk/Master/tlpkg/tlgs/Resource/CMap/CNS-EUC-V
    trunk/Master/tlpkg/tlgs/Resource/CMap/CNS1-H
    trunk/Master/tlpkg/tlgs/Resource/CMap/CNS1-V
    trunk/Master/tlpkg/tlgs/Resource/CMap/CNS2-H
    trunk/Master/tlpkg/tlgs/Resource/CMap/CNS2-V
    trunk/Master/tlpkg/tlgs/Resource/CMap/ETHK-B5-H
    trunk/Master/tlpkg/tlgs/Resource/CMap/ETHK-B5-V
    trunk/Master/tlpkg/tlgs/Resource/CMap/ETen-B5-H
    trunk/Master/tlpkg/tlgs/Resource/CMap/ETen-B5-V
    trunk/Master/tlpkg/tlgs/Resource/CMap/ETenms-B5-H
    trunk/Master/tlpkg/tlgs/Resource/CMap/ETenms-B5-V
    trunk/Master/tlpkg/tlgs/Resource/CMap/EUC-H
    trunk/Master/tlpkg/tlgs/Resource/CMap/EUC-V
    trunk/Master/tlpkg/tlgs/Resource/CMap/Ext-H
    trunk/Master/tlpkg/tlgs/Resource/CMap/Ext-RKSJ-H
    trunk/Master/tlpkg/tlgs/Resource/CMap/Ext-RKSJ-V
    trunk/Master/tlpkg/tlgs/Resource/CMap/Ext-V
    trunk/Master/tlpkg/tlgs/Resource/CMap/GB-EUC-H
    trunk/Master/tlpkg/tlgs/Resource/CMap/GB-EUC-V
    trunk/Master/tlpkg/tlgs/Resource/CMap/GB-H
    trunk/Master/tlpkg/tlgs/Resource/CMap/GB-V
    trunk/Master/tlpkg/tlgs/Resource/CMap/GBK-EUC-H
    trunk/Master/tlpkg/tlgs/Resource/CMap/GBK-EUC-V
    trunk/Master/tlpkg/tlgs/Resource/CMap/GBK2K-H
    trunk/Master/tlpkg/tlgs/Resource/CMap/GBK2K-V
    trunk/Master/tlpkg/tlgs/Resource/CMap/GBKp-EUC-H
    trunk/Master/tlpkg/tlgs/Resource/CMap/GBKp-EUC-V
    trunk/Master/tlpkg/tlgs/Resource/CMap/GBT-EUC-H
    trunk/Master/tlpkg/tlgs/Resource/CMap/GBT-EUC-V
    trunk/Master/tlpkg/tlgs/Resource/CMap/GBT-H
    trunk/Master/tlpkg/tlgs/Resource/CMap/GBT-V
    trunk/Master/tlpkg/tlgs/Resource/CMap/GBTpc-EUC-H
    trunk/Master/tlpkg/tlgs/Resource/CMap/GBTpc-EUC-V
    trunk/Master/tlpkg/tlgs/Resource/CMap/GBpc-EUC-H
    trunk/Master/tlpkg/tlgs/Resource/CMap/GBpc-EUC-V
    trunk/Master/tlpkg/tlgs/Resource/CMap/H
    trunk/Master/tlpkg/tlgs/Resource/CMap/HKdla-B5-H
    trunk/Master/tlpkg/tlgs/Resource/CMap/HKdla-B5-V
    trunk/Master/tlpkg/tlgs/Resource/CMap/HKdlb-B5-H
    trunk/Master/tlpkg/tlgs/Resource/CMap/HKdlb-B5-V
    trunk/Master/tlpkg/tlgs/Resource/CMap/HKgccs-B5-H
    trunk/Master/tlpkg/tlgs/Resource/CMap/HKgccs-B5-V
    trunk/Master/tlpkg/tlgs/Resource/CMap/HKm314-B5-H
    trunk/Master/tlpkg/tlgs/Resource/CMap/HKm314-B5-V
    trunk/Master/tlpkg/tlgs/Resource/CMap/HKm471-B5-H
    trunk/Master/tlpkg/tlgs/Resource/CMap/HKm471-B5-V
    trunk/Master/tlpkg/tlgs/Resource/CMap/HKscs-B5-H
    trunk/Master/tlpkg/tlgs/Resource/CMap/HKscs-B5-V
    trunk/Master/tlpkg/tlgs/Resource/CMap/Hankaku
    trunk/Master/tlpkg/tlgs/Resource/CMap/Hiragana
    trunk/Master/tlpkg/tlgs/Resource/CMap/Identity-H
    trunk/Master/tlpkg/tlgs/Resource/CMap/Identity-UTF16-H
    trunk/Master/tlpkg/tlgs/Resource/CMap/Identity-V
    trunk/Master/tlpkg/tlgs/Resource/CMap/KSC-EUC-H
    trunk/Master/tlpkg/tlgs/Resource/CMap/KSC-EUC-V
    trunk/Master/tlpkg/tlgs/Resource/CMap/KSC-H
    trunk/Master/tlpkg/tlgs/Resource/CMap/KSC-Johab-H
    trunk/Master/tlpkg/tlgs/Resource/CMap/KSC-Johab-V
    trunk/Master/tlpkg/tlgs/Resource/CMap/KSC-V
    trunk/Master/tlpkg/tlgs/Resource/CMap/KSCms-UHC-H
    trunk/Master/tlpkg/tlgs/Resource/CMap/KSCms-UHC-HW-H
    trunk/Master/tlpkg/tlgs/Resource/CMap/KSCms-UHC-HW-V
    trunk/Master/tlpkg/tlgs/Resource/CMap/KSCms-UHC-V
    trunk/Master/tlpkg/tlgs/Resource/CMap/KSCpc-EUC-H
    trunk/Master/tlpkg/tlgs/Resource/CMap/KSCpc-EUC-V
    trunk/Master/tlpkg/tlgs/Resource/CMap/Katakana
    trunk/Master/tlpkg/tlgs/Resource/CMap/NWP-H
    trunk/Master/tlpkg/tlgs/Resource/CMap/NWP-V
    trunk/Master/tlpkg/tlgs/Resource/CMap/RKSJ-H
    trunk/Master/tlpkg/tlgs/Resource/CMap/RKSJ-V
    trunk/Master/tlpkg/tlgs/Resource/CMap/Roman
    trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UCS2-H
    trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UCS2-V
    trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UTF16-H
    trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UTF16-V
    trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UTF32-H
    trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UTF32-V
    trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UTF8-H
    trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UTF8-V
    trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UCS2-H
    trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UCS2-V
    trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UTF16-H
    trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UTF16-V
    trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UTF32-H
    trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UTF32-V
    trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UTF8-H
    trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UTF8-V
    trunk/Master/tlpkg/tlgs/Resource/CMap/UniHojo-UCS2-H
    trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UCS2-H
    trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UCS2-HW-H
    trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UCS2-HW-V
    trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UCS2-V
    trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UTF16-H
    trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UTF16-V
    trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UTF32-H
    trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UTF32-V
    trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UTF8-H
    trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UTF8-V
    trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS2004-UTF16-H
    trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS2004-UTF16-V
    trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS2004-UTF32-H
    trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS2004-UTF32-V
    trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS2004-UTF8-H
    trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS2004-UTF8-V
    trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISPro-UCS2-HW-V
    trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISPro-UCS2-V
    trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISPro-UTF8-V
    trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISX0213-UTF32-H
    trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISX0213-UTF32-V
    trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISX02132004-UTF32-H
    trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISX02132004-UTF32-V
    trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UCS2-H
    trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UCS2-V
    trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UTF16-H
    trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UTF16-V
    trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UTF32-H
    trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UTF32-V
    trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UTF8-H
    trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UTF8-V
    trunk/Master/tlpkg/tlgs/Resource/CMap/V
    trunk/Master/tlpkg/tlgs/Resource/CMap/WP-Symbol
    trunk/Master/tlpkg/tlgs/Resource/ColorSpace/
    trunk/Master/tlpkg/tlgs/Resource/ColorSpace/DefaultCMYK
    trunk/Master/tlpkg/tlgs/Resource/ColorSpace/DefaultGray
    trunk/Master/tlpkg/tlgs/Resource/ColorSpace/DefaultRGB
    trunk/Master/tlpkg/tlgs/Resource/ColorSpace/TrivialCMYK
    trunk/Master/tlpkg/tlgs/Resource/ColorSpace/sGray
    trunk/Master/tlpkg/tlgs/Resource/ColorSpace/sRGB
    trunk/Master/tlpkg/tlgs/Resource/Decoding/
    trunk/Master/tlpkg/tlgs/Resource/Decoding/FCO_Dingbats
    trunk/Master/tlpkg/tlgs/Resource/Decoding/FCO_Symbol
    trunk/Master/tlpkg/tlgs/Resource/Decoding/FCO_Unicode
    trunk/Master/tlpkg/tlgs/Resource/Decoding/FCO_Wingdings
    trunk/Master/tlpkg/tlgs/Resource/Decoding/Latin1
    trunk/Master/tlpkg/tlgs/Resource/Decoding/StandardEncoding
    trunk/Master/tlpkg/tlgs/Resource/Decoding/Unicode
    trunk/Master/tlpkg/tlgs/Resource/Encoding/
    trunk/Master/tlpkg/tlgs/Resource/Encoding/CEEncoding
    trunk/Master/tlpkg/tlgs/Resource/Encoding/ExpertEncoding
    trunk/Master/tlpkg/tlgs/Resource/Encoding/ExpertSubsetEncoding
    trunk/Master/tlpkg/tlgs/Resource/Encoding/NotDefEncoding
    trunk/Master/tlpkg/tlgs/Resource/Encoding/Wingdings
    trunk/Master/tlpkg/tlgs/Resource/Font/
    trunk/Master/tlpkg/tlgs/Resource/IdiomSet/
    trunk/Master/tlpkg/tlgs/Resource/IdiomSet/Pscript5Idiom
    trunk/Master/tlpkg/tlgs/Resource/Init/
    trunk/Master/tlpkg/tlgs/Resource/Init/FAPIcidfmap
    trunk/Master/tlpkg/tlgs/Resource/Init/FAPIconfig
    trunk/Master/tlpkg/tlgs/Resource/Init/FAPIfontmap
    trunk/Master/tlpkg/tlgs/Resource/Init/FCOfontmap-PCLPS2
    trunk/Master/tlpkg/tlgs/Resource/Init/Fontmap
    trunk/Master/tlpkg/tlgs/Resource/Init/Fontmap.GS
    trunk/Master/tlpkg/tlgs/Resource/Init/cidfmap
    trunk/Master/tlpkg/tlgs/Resource/Init/gs_agl.ps
    trunk/Master/tlpkg/tlgs/Resource/Init/gs_btokn.ps
    trunk/Master/tlpkg/tlgs/Resource/Init/gs_cet.ps
    trunk/Master/tlpkg/tlgs/Resource/Init/gs_cff.ps
    trunk/Master/tlpkg/tlgs/Resource/Init/gs_cidcm.ps
    trunk/Master/tlpkg/tlgs/Resource/Init/gs_ciddc.ps
    trunk/Master/tlpkg/tlgs/Resource/Init/gs_cidfm.ps
    trunk/Master/tlpkg/tlgs/Resource/Init/gs_cidfn.ps
    trunk/Master/tlpkg/tlgs/Resource/Init/gs_cidtt.ps
    trunk/Master/tlpkg/tlgs/Resource/Init/gs_cmap.ps
    trunk/Master/tlpkg/tlgs/Resource/Init/gs_cspace.ps
    trunk/Master/tlpkg/tlgs/Resource/Init/gs_dbt_e.ps
    trunk/Master/tlpkg/tlgs/Resource/Init/gs_diskf.ps
    trunk/Master/tlpkg/tlgs/Resource/Init/gs_diskn.ps
    trunk/Master/tlpkg/tlgs/Resource/Init/gs_dpnxt.ps
    trunk/Master/tlpkg/tlgs/Resource/Init/gs_dps.ps
    trunk/Master/tlpkg/tlgs/Resource/Init/gs_dps1.ps
    trunk/Master/tlpkg/tlgs/Resource/Init/gs_dps2.ps
    trunk/Master/tlpkg/tlgs/Resource/Init/gs_dscp.ps
    trunk/Master/tlpkg/tlgs/Resource/Init/gs_epsf.ps
    trunk/Master/tlpkg/tlgs/Resource/Init/gs_fapi.ps
    trunk/Master/tlpkg/tlgs/Resource/Init/gs_fntem.ps
    trunk/Master/tlpkg/tlgs/Resource/Init/gs_fonts.ps
    trunk/Master/tlpkg/tlgs/Resource/Init/gs_frsd.ps
    trunk/Master/tlpkg/tlgs/Resource/Init/gs_icc.ps
    trunk/Master/tlpkg/tlgs/Resource/Init/gs_il1_e.ps
    trunk/Master/tlpkg/tlgs/Resource/Init/gs_img.ps
    trunk/Master/tlpkg/tlgs/Resource/Init/gs_init.ps
    trunk/Master/tlpkg/tlgs/Resource/Init/gs_l2img.ps
    trunk/Master/tlpkg/tlgs/Resource/Init/gs_lev2.ps
    trunk/Master/tlpkg/tlgs/Resource/Init/gs_ll3.ps
    trunk/Master/tlpkg/tlgs/Resource/Init/gs_mex_e.ps
    trunk/Master/tlpkg/tlgs/Resource/Init/gs_mgl_e.ps
    trunk/Master/tlpkg/tlgs/Resource/Init/gs_mro_e.ps
    trunk/Master/tlpkg/tlgs/Resource/Init/gs_pdf_e.ps
    trunk/Master/tlpkg/tlgs/Resource/Init/gs_pdfwr.ps
    trunk/Master/tlpkg/tlgs/Resource/Init/gs_res.ps
    trunk/Master/tlpkg/tlgs/Resource/Init/gs_resmp.ps
    trunk/Master/tlpkg/tlgs/Resource/Init/gs_setpd.ps
    trunk/Master/tlpkg/tlgs/Resource/Init/gs_statd.ps
    trunk/Master/tlpkg/tlgs/Resource/Init/gs_std_e.ps
    trunk/Master/tlpkg/tlgs/Resource/Init/gs_sym_e.ps
    trunk/Master/tlpkg/tlgs/Resource/Init/gs_trap.ps
    trunk/Master/tlpkg/tlgs/Resource/Init/gs_ttf.ps
    trunk/Master/tlpkg/tlgs/Resource/Init/gs_typ32.ps
    trunk/Master/tlpkg/tlgs/Resource/Init/gs_typ42.ps
    trunk/Master/tlpkg/tlgs/Resource/Init/gs_type1.ps
    trunk/Master/tlpkg/tlgs/Resource/Init/gs_wan_e.ps
    trunk/Master/tlpkg/tlgs/Resource/Init/pdf_base.ps
    trunk/Master/tlpkg/tlgs/Resource/Init/pdf_draw.ps
    trunk/Master/tlpkg/tlgs/Resource/Init/pdf_font.ps
    trunk/Master/tlpkg/tlgs/Resource/Init/pdf_main.ps
    trunk/Master/tlpkg/tlgs/Resource/Init/pdf_ops.ps
    trunk/Master/tlpkg/tlgs/Resource/Init/pdf_rbld.ps
    trunk/Master/tlpkg/tlgs/Resource/Init/pdf_sec.ps
    trunk/Master/tlpkg/tlgs/Resource/Init/xlatmap
    trunk/Master/tlpkg/tlgs/Resource/SubstCID/
    trunk/Master/tlpkg/tlgs/Resource/SubstCID/CNS1-WMode
    trunk/Master/tlpkg/tlgs/Resource/SubstCID/GB1-WMode
    trunk/Master/tlpkg/tlgs/Resource/SubstCID/Japan1-WMode
    trunk/Master/tlpkg/tlgs/Resource/SubstCID/Korea1-WMode
    trunk/Master/tlpkg/tlgs/iccprofiles/
    trunk/Master/tlpkg/tlgs/iccprofiles/default_cmyk.icc
    trunk/Master/tlpkg/tlgs/iccprofiles/default_gray.icc
    trunk/Master/tlpkg/tlgs/iccprofiles/default_rgb.icc
    trunk/Master/tlpkg/tlgs/iccprofiles/gray_to_k.icc
    trunk/Master/tlpkg/tlgs/iccprofiles/lab.icc
    trunk/Master/tlpkg/tlgs/iccprofiles/ps_cmyk.icc
    trunk/Master/tlpkg/tlgs/iccprofiles/ps_gray.icc
    trunk/Master/tlpkg/tlgs/iccprofiles/ps_rgb.icc
    trunk/Master/tlpkg/tlgs/iccprofiles/sgray.icc
    trunk/Master/tlpkg/tlgs/iccprofiles/srgb.icc
    trunk/Master/tlpkg/tlgs/kanji/
    trunk/Master/tlpkg/tlgs/kanji/allkanji.ps
    trunk/Master/tlpkg/tlgs/kanji/article9.ps
    trunk/Master/tlpkg/tlgs/kanji/fmaptype.ps
    trunk/Master/tlpkg/tlgs/kanji/hankaku.ps
    trunk/Master/tlpkg/tlgs/kanji/kbase.ps
    trunk/Master/tlpkg/tlgs/kanji/kbitmap.ps
    trunk/Master/tlpkg/tlgs/kanji/kcomp.ps
    trunk/Master/tlpkg/tlgs/kanji/kconfig.ps
    trunk/Master/tlpkg/tlgs/kanji/kfwin32.ps
    trunk/Master/tlpkg/tlgs/kanji/kfwin32bm.ps
    trunk/Master/tlpkg/tlgs/kanji/kinit.ps
    trunk/Master/tlpkg/tlgs/kanji/kmapping.ps
    trunk/Master/tlpkg/tlgs/kanji/koutline.ps
    trunk/Master/tlpkg/tlgs/kanji/metrics2.ps
    trunk/Master/tlpkg/tlgs/kanji/useopentype.ps
    trunk/Master/tlpkg/tlgs/kanji/vchars.ps
    trunk/Master/tlpkg/tlgs/kanji/vchars1.ps

Modified: trunk/Build/source/texk/texlive/w32_wrapper/runscript.tlu
===================================================================
--- trunk/Build/source/texk/texlive/w32_wrapper/runscript.tlu	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Build/source/texk/texlive/w32_wrapper/runscript.tlu	2017-04-23 22:15:25 UTC (rev 43997)
@@ -1,7 +1,7 @@
 
 
-local svnrevision = string.match("$Revision: 40700 $", "%d+") or "0"
-local svndate     = string.match("$Date: 2016-04-23 14:35:18 +0200 (Sat, 23 Apr 2016) $", "[-%d]+") or "2009-12-04"
+local svnrevision = string.match("$Revision: 43968 $", "%d+") or "0"
+local svndate     = string.match("$Date: 2017-04-22 01:24:18 +0200 (Sat, 22 Apr 2017) $", "[-%d]+") or "2009-12-04"
 local bannerstr   = "runscript wrapper utility (rev. " ..
                     svnrevision .. ", " .. svndate .. ")\n" .. 
                     "usage:   runscript script-name [arguments]\n" ..
@@ -255,6 +255,8 @@
     	- fix spurious arguments for updmap and fmtutil
     2016/04/22
     	- Warning if external perl is requested but missing
+    2017/04/22 (exactly one year later ;-)
+        - Cater for fmtutil-user and updmap-user => -user arg        
 ]]
 
 -- HELPER SUBROUTINES --
@@ -437,6 +439,10 @@
 -- special case of sys programs
 progname, substcount = string.gsub(progname, '%-sys$', '')
 local sysprog = (substcount > 0) -- true if there was a -sys suffix removed
+-- special case of user programs
+-- we do not guard against programs foobar-user-sys ... we don't ship them
+progname, substcount = string.gsub(progname, '%-user$', '')
+local userprog = (substcount > 0) -- true if there was a -user suffix removed
 -- prevent recursive calls to this script
 assert(progname ~= 'runscript', "oops! wrapping the wrapper?")
 
@@ -530,8 +536,12 @@
   end
 else
   -- use built in gs
-  os.setenv('GS_LIB', TEXDIR..'/tlpkg/tlgs/lib;'..TEXDIR..'/tlpkg/tlgs/fonts;'
-    ..os.getenv('WINDIR')..'/Fonts;'..TEXMFDIST..'/fonts')
+   os.setenv('GS_LIB', TEXDIR..'/tlpkg/tlgs/lib;'
+	     ..TEXDIR..'/tlpkg/tlgs/fonts;'
+	     ..TEXDIR..'/tlpkg/tlgs/Resource/Init;'
+	     ..TEXDIR..'/tlpkg/tlgs/Resource;'
+	     ..TEXDIR..'/tlpkg/tlgs/kanji;'
+	     ..os.getenv('WINDIR')..'/Fonts;'..TEXMFDIST..'/fonts')
   os.setenv('GS_DLL', TEXDIR..'/tlpkg/tlgs/bin/gsdll32.dll')
   GSEXE = TEXDIR..'/tlpkg/tlgs/bin/gswin32c.exe'
   GSNAME = 'gswin32c.exe'
@@ -589,10 +599,14 @@
 elseif progname == 'updmap' then 
   if sysprog then
     argline = ' --sys ' .. argline
+  elseif userprog then
+    argline = ' --user ' .. argline
   end
 elseif progname == 'fmtutil' then 
   if sysprog then
     argline = ' --sys ' .. argline
+  elseif userprog then
+    argline = ' --user ' .. argline
   end
 elseif progname == 'asy' then
   os.setenv('ASYMPTOTE_GS', GSEXE)

Modified: trunk/Master/bin/win32/runscript.tlu
===================================================================
--- trunk/Master/bin/win32/runscript.tlu	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/bin/win32/runscript.tlu	2017-04-23 22:15:25 UTC (rev 43997)
@@ -536,8 +536,12 @@
   end
 else
   -- use built in gs
-  os.setenv('GS_LIB', TEXDIR..'/tlpkg/tlgs/lib;'..TEXDIR..'/tlpkg/tlgs/fonts;'
-    ..os.getenv('WINDIR')..'/Fonts;'..TEXMFDIST..'/fonts')
+   os.setenv('GS_LIB', TEXDIR..'/tlpkg/tlgs/lib;'
+	     ..TEXDIR..'/tlpkg/tlgs/fonts;'
+	     ..TEXDIR..'/tlpkg/tlgs/Resource/Init;'
+	     ..TEXDIR..'/tlpkg/tlgs/Resource;'
+	     ..TEXDIR..'/tlpkg/tlgs/kanji;'
+	     ..os.getenv('WINDIR')..'/Fonts;'..TEXMFDIST..'/fonts')
   os.setenv('GS_DLL', TEXDIR..'/tlpkg/tlgs/bin/gsdll32.dll')
   GSEXE = TEXDIR..'/tlpkg/tlgs/bin/gswin32c.exe'
   GSNAME = 'gswin32c.exe'

Modified: trunk/Master/tlpkg/tlgs/README.TEXLIVE
===================================================================
--- trunk/Master/tlpkg/tlgs/README.TEXLIVE	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/README.TEXLIVE	2017-04-23 22:15:25 UTC (rev 43997)
@@ -22,6 +22,8 @@
  * A cidfmap file supporting CJK fonts provided by Windows XP and
    newer releases as well as the Japanese IPA fonts was added.
 
+ * kanji directory copied from w23tex.
+
 This version of Ghostscript will not be installed on your system and
 will not interfere with other versions of Ghostscript which might be
 installed already.

Added: trunk/Master/tlpkg/tlgs/Resource/CIDFSubst/DroidSansFallback.ttf
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CIDFSubst/DroidSansFallback.ttf
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CIDFSubst/DroidSansFallback.ttf	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CIDFSubst/DroidSansFallback.ttf	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CIDFSubst/DroidSansFallback.ttf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/x-font-ttf
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CIDFont/ArtifexBullet
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CIDFont/ArtifexBullet
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CIDFont/ArtifexBullet	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CIDFont/ArtifexBullet	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CIDFont/ArtifexBullet
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/78-EUC-H
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/78-EUC-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/78-EUC-H	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/78-EUC-H	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/78-EUC-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/78-EUC-V
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/78-EUC-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/78-EUC-V	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/78-EUC-V	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/78-EUC-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/78-H
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/78-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/78-H	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/78-H	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/78-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/78-RKSJ-H
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/78-RKSJ-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/78-RKSJ-H	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/78-RKSJ-H	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/78-RKSJ-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/78-RKSJ-V
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/78-RKSJ-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/78-RKSJ-V	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/78-RKSJ-V	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/78-RKSJ-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/78-V
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/78-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/78-V	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/78-V	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/78-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/78ms-RKSJ-H
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/78ms-RKSJ-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/78ms-RKSJ-H	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/78ms-RKSJ-H	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/78ms-RKSJ-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/78ms-RKSJ-V
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/78ms-RKSJ-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/78ms-RKSJ-V	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/78ms-RKSJ-V	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/78ms-RKSJ-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/83pv-RKSJ-H
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/83pv-RKSJ-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/83pv-RKSJ-H	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/83pv-RKSJ-H	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/83pv-RKSJ-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/90ms-RKSJ-H
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/90ms-RKSJ-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/90ms-RKSJ-H	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/90ms-RKSJ-H	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/90ms-RKSJ-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/90ms-RKSJ-V
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/90ms-RKSJ-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/90ms-RKSJ-V	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/90ms-RKSJ-V	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/90ms-RKSJ-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/90msp-RKSJ-H
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/90msp-RKSJ-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/90msp-RKSJ-H	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/90msp-RKSJ-H	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/90msp-RKSJ-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/90msp-RKSJ-V
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/90msp-RKSJ-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/90msp-RKSJ-V	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/90msp-RKSJ-V	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/90msp-RKSJ-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/90pv-RKSJ-H
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/90pv-RKSJ-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/90pv-RKSJ-H	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/90pv-RKSJ-H	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/90pv-RKSJ-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/90pv-RKSJ-V
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/90pv-RKSJ-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/90pv-RKSJ-V	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/90pv-RKSJ-V	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/90pv-RKSJ-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/Add-H
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/Add-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/Add-H	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/Add-H	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/Add-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/Add-RKSJ-H
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/Add-RKSJ-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/Add-RKSJ-H	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/Add-RKSJ-H	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/Add-RKSJ-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/Add-RKSJ-V
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/Add-RKSJ-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/Add-RKSJ-V	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/Add-RKSJ-V	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/Add-RKSJ-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/Add-V
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/Add-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/Add-V	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/Add-V	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/Add-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-0
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-0
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-0	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-0	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-0
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-1
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-1
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-1	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-1	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-1
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-2
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-2
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-2	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-2	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-2
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-3
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-3
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-3	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-3	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-3
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-4
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-4
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-4	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-4	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-4
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-5
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-5
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-5	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-5	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-5
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-6
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-6
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-6	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-6	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-6
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-GB1-0
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-GB1-0
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-GB1-0	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-GB1-0	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-GB1-0
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-GB1-1
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-GB1-1
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-GB1-1	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-GB1-1	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-GB1-1
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-GB1-2
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-GB1-2
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-GB1-2	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-GB1-2	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-GB1-2
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-GB1-3
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-GB1-3
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-GB1-3	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-GB1-3	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-GB1-3
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-GB1-4
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-GB1-4
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-GB1-4	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-GB1-4	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-GB1-4
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-GB1-5
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-GB1-5
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-GB1-5	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-GB1-5	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-GB1-5
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-0
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-0
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-0	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-0	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-0
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-1
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-1
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-1	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-1	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-1
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-2
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-2
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-2	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-2	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-2
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-3
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-3
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-3	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-3	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-3
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-4
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-4
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-4	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-4	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-4
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-5
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-5
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-5	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-5	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-5
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-6
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-6
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-6	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-6	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-6
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Korea1-0
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Korea1-0
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Korea1-0	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Korea1-0	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Korea1-0
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Korea1-1
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Korea1-1
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Korea1-1	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Korea1-1	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Korea1-1
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Korea1-2
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Korea1-2
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Korea1-2	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Korea1-2	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Korea1-2
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/B5-H
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/B5-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/B5-H	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/B5-H	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/B5-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/B5-V
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/B5-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/B5-V	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/B5-V	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/B5-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/B5pc-H
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/B5pc-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/B5pc-H	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/B5pc-H	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/B5pc-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/B5pc-V
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/B5pc-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/B5pc-V	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/B5pc-V	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/B5pc-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/CNS-EUC-H
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/CNS-EUC-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/CNS-EUC-H	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/CNS-EUC-H	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/CNS-EUC-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/CNS-EUC-V
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/CNS-EUC-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/CNS-EUC-V	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/CNS-EUC-V	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/CNS-EUC-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/CNS1-H
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/CNS1-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/CNS1-H	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/CNS1-H	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/CNS1-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/CNS1-V
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/CNS1-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/CNS1-V	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/CNS1-V	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/CNS1-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/CNS2-H
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/CNS2-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/CNS2-H	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/CNS2-H	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/CNS2-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/CNS2-V
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/CNS2-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/CNS2-V	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/CNS2-V	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/CNS2-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/ETHK-B5-H
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/ETHK-B5-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/ETHK-B5-H	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/ETHK-B5-H	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/ETHK-B5-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/ETHK-B5-V
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/ETHK-B5-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/ETHK-B5-V	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/ETHK-B5-V	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/ETHK-B5-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/ETen-B5-H
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/ETen-B5-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/ETen-B5-H	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/ETen-B5-H	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/ETen-B5-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/ETen-B5-V
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/ETen-B5-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/ETen-B5-V	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/ETen-B5-V	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/ETen-B5-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/ETenms-B5-H
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/ETenms-B5-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/ETenms-B5-H	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/ETenms-B5-H	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/ETenms-B5-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/ETenms-B5-V
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/ETenms-B5-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/ETenms-B5-V	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/ETenms-B5-V	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/ETenms-B5-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/EUC-H
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/EUC-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/EUC-H	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/EUC-H	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/EUC-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/EUC-V
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/EUC-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/EUC-V	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/EUC-V	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/EUC-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/Ext-H
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/Ext-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/Ext-H	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/Ext-H	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/Ext-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/Ext-RKSJ-H
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/Ext-RKSJ-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/Ext-RKSJ-H	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/Ext-RKSJ-H	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/Ext-RKSJ-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/Ext-RKSJ-V
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/Ext-RKSJ-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/Ext-RKSJ-V	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/Ext-RKSJ-V	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/Ext-RKSJ-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/Ext-V
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/Ext-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/Ext-V	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/Ext-V	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/Ext-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/GB-EUC-H
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/GB-EUC-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/GB-EUC-H	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/GB-EUC-H	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/GB-EUC-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/GB-EUC-V
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/GB-EUC-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/GB-EUC-V	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/GB-EUC-V	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/GB-EUC-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/GB-H
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/GB-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/GB-H	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/GB-H	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/GB-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/GB-V
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/GB-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/GB-V	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/GB-V	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/GB-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/GBK-EUC-H
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/GBK-EUC-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/GBK-EUC-H	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/GBK-EUC-H	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/GBK-EUC-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/GBK-EUC-V
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/GBK-EUC-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/GBK-EUC-V	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/GBK-EUC-V	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/GBK-EUC-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/GBK2K-H
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/GBK2K-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/GBK2K-H	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/GBK2K-H	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/GBK2K-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/GBK2K-V
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/GBK2K-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/GBK2K-V	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/GBK2K-V	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/GBK2K-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/GBKp-EUC-H
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/GBKp-EUC-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/GBKp-EUC-H	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/GBKp-EUC-H	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/GBKp-EUC-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/GBKp-EUC-V
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/GBKp-EUC-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/GBKp-EUC-V	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/GBKp-EUC-V	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/GBKp-EUC-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/GBT-EUC-H
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/GBT-EUC-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/GBT-EUC-H	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/GBT-EUC-H	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/GBT-EUC-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/GBT-EUC-V
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/GBT-EUC-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/GBT-EUC-V	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/GBT-EUC-V	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/GBT-EUC-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/GBT-H
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/GBT-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/GBT-H	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/GBT-H	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/GBT-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/GBT-V
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/GBT-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/GBT-V	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/GBT-V	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/GBT-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/GBTpc-EUC-H
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/GBTpc-EUC-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/GBTpc-EUC-H	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/GBTpc-EUC-H	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/GBTpc-EUC-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/GBTpc-EUC-V
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/GBTpc-EUC-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/GBTpc-EUC-V	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/GBTpc-EUC-V	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/GBTpc-EUC-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/GBpc-EUC-H
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/GBpc-EUC-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/GBpc-EUC-H	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/GBpc-EUC-H	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/GBpc-EUC-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/GBpc-EUC-V
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/GBpc-EUC-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/GBpc-EUC-V	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/GBpc-EUC-V	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/GBpc-EUC-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/H
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/H	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/H	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/HKdla-B5-H
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/HKdla-B5-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/HKdla-B5-H	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/HKdla-B5-H	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/HKdla-B5-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/HKdla-B5-V
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/HKdla-B5-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/HKdla-B5-V	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/HKdla-B5-V	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/HKdla-B5-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/HKdlb-B5-H
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/HKdlb-B5-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/HKdlb-B5-H	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/HKdlb-B5-H	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/HKdlb-B5-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/HKdlb-B5-V
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/HKdlb-B5-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/HKdlb-B5-V	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/HKdlb-B5-V	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/HKdlb-B5-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/HKgccs-B5-H
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/HKgccs-B5-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/HKgccs-B5-H	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/HKgccs-B5-H	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/HKgccs-B5-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/HKgccs-B5-V
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/HKgccs-B5-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/HKgccs-B5-V	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/HKgccs-B5-V	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/HKgccs-B5-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/HKm314-B5-H
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/HKm314-B5-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/HKm314-B5-H	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/HKm314-B5-H	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/HKm314-B5-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/HKm314-B5-V
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/HKm314-B5-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/HKm314-B5-V	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/HKm314-B5-V	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/HKm314-B5-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/HKm471-B5-H
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/HKm471-B5-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/HKm471-B5-H	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/HKm471-B5-H	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/HKm471-B5-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/HKm471-B5-V
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/HKm471-B5-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/HKm471-B5-V	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/HKm471-B5-V	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/HKm471-B5-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/HKscs-B5-H
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/HKscs-B5-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/HKscs-B5-H	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/HKscs-B5-H	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/HKscs-B5-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/HKscs-B5-V
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/HKscs-B5-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/HKscs-B5-V	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/HKscs-B5-V	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/HKscs-B5-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/Hankaku
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/Hankaku
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/Hankaku	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/Hankaku	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/Hankaku
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/Hiragana
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/Hiragana
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/Hiragana	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/Hiragana	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/Hiragana
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/Identity-H
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/Identity-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/Identity-H	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/Identity-H	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/Identity-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/Identity-UTF16-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/Identity-UTF16-H	                        (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/Identity-UTF16-H	2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,53 @@
+% Copyright (C) 2003 Artifex Software.  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.
+%
+% 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.
+%
+% Identity-UTF16-H CMap
+% An identity mapping of UTF16 codes to CIDs.
+
+/CIDInit /ProcSet findresource begin
+
+12 dict begin
+
+begincmap
+
+/CIDSystemInfo 3 dict dup begin
+  /Registry (Artifex) def
+  /Ordering (Unicode) def
+  /Supplement 0 def
+end def
+
+/CMapName /Identity-UTF16-H def
+/CMapVersion 1.000 def
+/CMapType 1 def
+
+/UIDOffset 0 def
+% No XUID yet obtained.
+
+/WMode 0 def
+
+1 begincodespacerange
+  <0000>   <FFFF>
+endcodespacerange
+
+1 begincidrange
+<0000> <FFFF> 0
+endcidrange
+endcmap
+CMapName currentdict /CMap defineresource pop
+end
+end
+
+%%EndResource
+%%EOF

Added: trunk/Master/tlpkg/tlgs/Resource/CMap/Identity-V
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/Identity-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/Identity-V	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/Identity-V	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/Identity-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/KSC-EUC-H
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/KSC-EUC-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/KSC-EUC-H	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/KSC-EUC-H	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/KSC-EUC-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/KSC-EUC-V
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/KSC-EUC-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/KSC-EUC-V	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/KSC-EUC-V	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/KSC-EUC-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/KSC-H
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/KSC-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/KSC-H	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/KSC-H	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/KSC-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/KSC-Johab-H
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/KSC-Johab-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/KSC-Johab-H	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/KSC-Johab-H	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/KSC-Johab-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/KSC-Johab-V
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/KSC-Johab-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/KSC-Johab-V	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/KSC-Johab-V	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/KSC-Johab-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/KSC-V
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/KSC-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/KSC-V	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/KSC-V	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/KSC-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/KSCms-UHC-H
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/KSCms-UHC-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/KSCms-UHC-H	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/KSCms-UHC-H	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/KSCms-UHC-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/KSCms-UHC-HW-H
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/KSCms-UHC-HW-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/KSCms-UHC-HW-H	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/KSCms-UHC-HW-H	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/KSCms-UHC-HW-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/KSCms-UHC-HW-V
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/KSCms-UHC-HW-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/KSCms-UHC-HW-V	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/KSCms-UHC-HW-V	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/KSCms-UHC-HW-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/KSCms-UHC-V
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/KSCms-UHC-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/KSCms-UHC-V	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/KSCms-UHC-V	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/KSCms-UHC-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/KSCpc-EUC-H
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/KSCpc-EUC-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/KSCpc-EUC-H	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/KSCpc-EUC-H	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/KSCpc-EUC-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/KSCpc-EUC-V
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/KSCpc-EUC-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/KSCpc-EUC-V	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/KSCpc-EUC-V	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/KSCpc-EUC-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/Katakana
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/Katakana
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/Katakana	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/Katakana	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/Katakana
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/NWP-H
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/NWP-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/NWP-H	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/NWP-H	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/NWP-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/NWP-V
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/NWP-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/NWP-V	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/NWP-V	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/NWP-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/RKSJ-H
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/RKSJ-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/RKSJ-H	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/RKSJ-H	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/RKSJ-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/RKSJ-V
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/RKSJ-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/RKSJ-V	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/RKSJ-V	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/RKSJ-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/Roman
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/Roman
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/Roman	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/Roman	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/Roman
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UCS2-H
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UCS2-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UCS2-H	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UCS2-H	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UCS2-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UCS2-V
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UCS2-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UCS2-V	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UCS2-V	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UCS2-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UTF16-H
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UTF16-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UTF16-H	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UTF16-H	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UTF16-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UTF16-V
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UTF16-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UTF16-V	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UTF16-V	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UTF16-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UTF32-H
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UTF32-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UTF32-H	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UTF32-H	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UTF32-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UTF32-V
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UTF32-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UTF32-V	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UTF32-V	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UTF32-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UTF8-H
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UTF8-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UTF8-H	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UTF8-H	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UTF8-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UTF8-V
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UTF8-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UTF8-V	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UTF8-V	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UTF8-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UCS2-H
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UCS2-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UCS2-H	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UCS2-H	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UCS2-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UCS2-V
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UCS2-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UCS2-V	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UCS2-V	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UCS2-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UTF16-H
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UTF16-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UTF16-H	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UTF16-H	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UTF16-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UTF16-V
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UTF16-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UTF16-V	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UTF16-V	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UTF16-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UTF32-H
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UTF32-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UTF32-H	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UTF32-H	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UTF32-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UTF32-V
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UTF32-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UTF32-V	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UTF32-V	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UTF32-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UTF8-H
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UTF8-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UTF8-H	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UTF8-H	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UTF8-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UTF8-V
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UTF8-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UTF8-V	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UTF8-V	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UTF8-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniHojo-UCS2-H
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniHojo-UCS2-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniHojo-UCS2-H	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniHojo-UCS2-H	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniHojo-UCS2-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UCS2-H
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UCS2-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UCS2-H	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UCS2-H	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UCS2-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UCS2-HW-H
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UCS2-HW-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UCS2-HW-H	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UCS2-HW-H	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UCS2-HW-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UCS2-HW-V
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UCS2-HW-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UCS2-HW-V	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UCS2-HW-V	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UCS2-HW-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UCS2-V
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UCS2-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UCS2-V	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UCS2-V	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UCS2-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UTF16-H
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UTF16-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UTF16-H	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UTF16-H	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UTF16-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UTF16-V
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UTF16-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UTF16-V	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UTF16-V	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UTF16-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UTF32-H
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UTF32-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UTF32-H	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UTF32-H	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UTF32-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UTF32-V
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UTF32-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UTF32-V	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UTF32-V	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UTF32-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UTF8-H
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UTF8-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UTF8-H	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UTF8-H	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UTF8-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UTF8-V
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UTF8-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UTF8-V	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UTF8-V	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UTF8-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS2004-UTF16-H
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS2004-UTF16-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS2004-UTF16-H	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS2004-UTF16-H	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS2004-UTF16-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS2004-UTF16-V
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS2004-UTF16-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS2004-UTF16-V	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS2004-UTF16-V	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS2004-UTF16-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS2004-UTF32-H
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS2004-UTF32-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS2004-UTF32-H	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS2004-UTF32-H	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS2004-UTF32-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS2004-UTF32-V
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS2004-UTF32-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS2004-UTF32-V	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS2004-UTF32-V	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS2004-UTF32-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS2004-UTF8-H
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS2004-UTF8-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS2004-UTF8-H	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS2004-UTF8-H	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS2004-UTF8-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS2004-UTF8-V
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS2004-UTF8-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS2004-UTF8-V	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS2004-UTF8-V	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS2004-UTF8-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISPro-UCS2-HW-V
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISPro-UCS2-HW-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISPro-UCS2-HW-V	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISPro-UCS2-HW-V	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISPro-UCS2-HW-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISPro-UCS2-V
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISPro-UCS2-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISPro-UCS2-V	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISPro-UCS2-V	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISPro-UCS2-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISPro-UTF8-V
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISPro-UTF8-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISPro-UTF8-V	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISPro-UTF8-V	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISPro-UTF8-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISX0213-UTF32-H
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISX0213-UTF32-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISX0213-UTF32-H	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISX0213-UTF32-H	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISX0213-UTF32-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISX0213-UTF32-V
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISX0213-UTF32-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISX0213-UTF32-V	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISX0213-UTF32-V	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISX0213-UTF32-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISX02132004-UTF32-H
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISX02132004-UTF32-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISX02132004-UTF32-H	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISX02132004-UTF32-H	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISX02132004-UTF32-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISX02132004-UTF32-V
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISX02132004-UTF32-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISX02132004-UTF32-V	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISX02132004-UTF32-V	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISX02132004-UTF32-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UCS2-H
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UCS2-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UCS2-H	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UCS2-H	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UCS2-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UCS2-V
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UCS2-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UCS2-V	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UCS2-V	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UCS2-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UTF16-H
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UTF16-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UTF16-H	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UTF16-H	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UTF16-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UTF16-V
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UTF16-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UTF16-V	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UTF16-V	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UTF16-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UTF32-H
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UTF32-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UTF32-H	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UTF32-H	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UTF32-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UTF32-V
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UTF32-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UTF32-V	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UTF32-V	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UTF32-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UTF8-H
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UTF8-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UTF8-H	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UTF8-H	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UTF8-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UTF8-V
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UTF8-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UTF8-V	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UTF8-V	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UTF8-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/V
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/V	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/V	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/WP-Symbol
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/CMap/WP-Symbol
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/WP-Symbol	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/WP-Symbol	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/WP-Symbol
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/ColorSpace/DefaultCMYK
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/ColorSpace/DefaultCMYK	                        (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/ColorSpace/DefaultCMYK	2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,40 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% 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.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc.,  7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA  94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% DefaultCMYK color space resource.
+
+currentglobal true setglobal
+
+/DefaultCMYK
+[ /CIEBasedDEFG
+  4 dict begin
+     /WhitePoint [ 0.9505 1.0 1.089 ] def
+     /Table [ 2 2 2 2
+            % AcrobatReader-compatible table :
+              [
+                [ < FFFFFF 000000 FFFF00 000000>
+                  < EA007F 000000 FC000F 000000> ]
+
+                [ < 00A0C8 000000 008436 000000>
+                  < 00007C 000000 000000 000000> ]
+              ]
+            ] def
+     /DecodeLMN [ { 1.8 exp } bind dup dup ] 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
+
+setglobal

Added: trunk/Master/tlpkg/tlgs/Resource/ColorSpace/DefaultGray
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/ColorSpace/DefaultGray	                        (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/ColorSpace/DefaultGray	2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,30 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% 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.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc.,  7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA  94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% DefaultGray color space resource.
+
+currentglobal true setglobal
+
+/DefaultGray
+[ /CIEBasedA
+  3 dict begin
+     /WhitePoint [ 0.9505 1.0 1.089 ] def
+     /DecodeLMN  [ { 1.8 exp } bind dup dup ] bind 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
+
+setglobal

Added: trunk/Master/tlpkg/tlgs/Resource/ColorSpace/DefaultRGB
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/ColorSpace/DefaultRGB	                        (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/ColorSpace/DefaultRGB	2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,36 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% 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.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc.,  7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA  94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% DefaultRGB color space resource.
+
+currentglobal true setglobal
+
+/DefaultRGB
+[ /CIEBasedABC
+	3 dict begin
+    /DecodeLMN [ {
+      dup 0.03928 le { 12.92321 div } { 0.055 add 1.055 div 2.4 exp } ifelse
+    } bind dup dup ] def
+    /MatrixLMN [
+      0.4360 0.2225 0.0139
+      0.3851 0.7169 0.09710
+      0.1431 0.0606 0.7139
+    ] def
+    /WhitePoint [0.9642 1.0 0.8249] def
+  currentdict end
+]
+/ColorSpace defineresource pop
+
+setglobal

Added: trunk/Master/tlpkg/tlgs/Resource/ColorSpace/TrivialCMYK
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/ColorSpace/TrivialCMYK	                        (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/ColorSpace/TrivialCMYK	2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,38 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% 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.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc.,  7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA  94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% Color space that simulates appearance of the standard CMYK to RGB conversion.
+
+currentglobal true setglobal
+
+/TrivialCMYK
+[ /CIEBasedDEFG
+  4 dict begin
+     /WhitePoint [ 0.9505 1.0 1.089 ] def
+     /Table [ 2 2 2 2
+              [
+                [ < FFFFFF 000000 FFFF00 000000>
+                  < FF00FF 000000 FF0000 000000> ]
+                [ < 00FFFF 000000 00FF00 000000>
+                  < 0000FF 000000 000000 000000> ]
+              ]
+            ] def
+     /DecodeLMN [ { 1.8 exp } bind dup dup ] 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
+
+setglobal

Added: trunk/Master/tlpkg/tlgs/Resource/ColorSpace/sGray
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/ColorSpace/sGray	                        (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/ColorSpace/sGray	2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,37 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% 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.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc.,  7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA  94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% One-component color space similar to sRGB color space.
+
+currentglobal true setglobal
+
+/sGray
+[ /CIEBasedA
+  3 dict begin
+    /WhitePoint [ 0.9505 1 1.0890 ] def % D65
+
+    /DecodeLMN [  % sRGB gamma transform 
+      { dup 0.03928 le { 12.92321 div } { 0.055 add 1.055 div 2.4 exp } ifelse }
+      bind dup dup ] def
+
+    /MatrixLMN [ % sRGB to XYZ (D65) matrix (ITU-R BT.709-2 Primaries)
+      0.412457 0.212673 0.019334
+      0.357576 0.715152 0.119192
+      0.180437 0.072175 0.950301 ] def
+  currentdict end
+] 
+/ColorSpace defineresource pop
+
+setglobal

Added: trunk/Master/tlpkg/tlgs/Resource/ColorSpace/sRGB
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/ColorSpace/sRGB	                        (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/ColorSpace/sRGB	2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,37 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% 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.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc.,  7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA  94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% sRGB color space derived from the public domain HP sample.
+
+currentglobal true setglobal
+
+/sRGB
+[ /CIEBasedABC
+  3 dict begin
+    /WhitePoint [ 0.9505 1 1.0890 ] def % D65
+
+    /DecodeLMN [  % sRGB gamma transform 
+      { dup 0.03928 le { 12.92321 div } { 0.055 add 1.055 div 2.4 exp } ifelse }
+      bind dup dup ] def
+
+    /MatrixLMN [ % sRGB to XYZ (D65) matrix (ITU-R BT.709-2 Primaries)
+      0.412457 0.212673 0.019334
+      0.357576 0.715152 0.119192
+      0.180437 0.072175 0.950301 ] def
+  currentdict end
+] 
+/ColorSpace defineresource pop
+
+setglobal

Added: trunk/Master/tlpkg/tlgs/Resource/Decoding/FCO_Dingbats
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Decoding/FCO_Dingbats	                        (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Decoding/FCO_Dingbats	2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,229 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% 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.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc.,  7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA  94903, U.S.A., +1(415)492-9861, for further information.
+%
+%
+% FCO_Symbol Decoding
+% Maps PS and TT names to Unicode UTF-16.
+
+/FCO_Dingbats     % resource name
+202             % tokens
+/ParseDecoding /ProcSet findresource /Parse get exec
+
+% Generated for FCO from ZapfDingbats font encoding with adding F000 
+% since MTFONTS/PS3/MT3/ps3___xh.fco wants so.
+
+16#0020 space   % Note : UFST uses 0x20 when others are 0xF0**.
+16#F021 a1
+16#F022 a2
+16#F023 a202
+16#F024 a3
+16#F025 a4
+16#F026 a5
+16#F027 a119
+16#F028 a118
+16#F029 a117
+16#F02A a11
+16#F02B a12
+16#F02C a13
+16#F02D a14
+16#F02E a15
+16#F02F a16
+16#F030 a105
+16#F031 a17
+16#F032 a18
+16#F033 a19
+16#F034 a20
+16#F035 a21
+16#F036 a22
+16#F037 a23
+16#F038 a24
+16#F039 a25
+16#F03A a26
+16#F03B a27
+16#F03C a28
+16#F03D a6
+16#F03E a7
+16#F03F a8
+16#F040 a9
+16#F041 a10
+16#F042 a29
+16#F043 a30
+16#F044 a31
+16#F045 a32
+16#F046 a33
+16#F047 a34
+16#F048 a35
+16#F049 a36
+16#F04A a37
+16#F04B a38
+16#F04C a39
+16#F04D a40
+16#F04E a41
+16#F04F a42
+16#F050 a43
+16#F051 a44
+16#F052 a45
+16#F053 a46
+16#F054 a47
+16#F055 a48
+16#F056 a49
+16#F057 a50
+16#F058 a51
+16#F059 a52
+16#F05A a53
+16#F05B a54
+16#F05C a55
+16#F05D a56
+16#F05E a57
+16#F05F a58
+16#F060 a59
+16#F061 a60
+16#F062 a61
+16#F063 a62
+16#F064 a63
+16#F065 a64
+16#F066 a65
+16#F067 a66
+16#F068 a67
+16#F069 a68
+16#F06A a69
+16#F06B a70
+16#F06C a71
+16#F06D a72
+16#F06E a73
+16#F06F a74
+16#F070 a203
+16#F071 a75
+16#F072 a204
+16#F073 a76
+16#F074 a77
+16#F075 a78
+16#F076 a79
+16#F077 a81
+16#F078 a82
+16#F079 a83
+16#F07A a84
+16#F07B a97
+16#F07C a98
+16#F07D a99
+16#F07E a100
+16#F080 a89
+16#F081 a90
+16#F082 a93
+16#F083 a94
+16#F084 a91
+16#F085 a92
+16#F086 a205
+16#F087 a85
+16#F088 a206
+16#F089 a86
+16#F08A a87
+16#F08B a88
+16#F08C a95
+16#F08D a96
+16#F0A1 a101
+16#F0A2 a102
+16#F0A3 a103
+16#F0A4 a104
+16#F0A5 a106
+16#F0A6 a107
+16#F0A7 a108
+16#F0A8 a112
+16#F0A9 a111
+16#F0AA a110
+16#F0AB a109
+16#F0AC a120
+16#F0AD a121
+16#F0AE a122
+16#F0AF a123
+16#F0B0 a124
+16#F0B1 a125
+16#F0B2 a126
+16#F0B3 a127
+16#F0B4 a128
+16#F0B5 a129
+16#F0B6 a130
+16#F0B7 a131
+16#F0B8 a132
+16#F0B9 a133
+16#F0BA a134
+16#F0BB a135
+16#F0BC a136
+16#F0BD a137
+16#F0BE a138
+16#F0BF a139
+16#F0C0 a140
+16#F0C1 a141
+16#F0C2 a142
+16#F0C3 a143
+16#F0C4 a144
+16#F0C5 a145
+16#F0C6 a146
+16#F0C7 a147
+16#F0C8 a148
+16#F0C9 a149
+16#F0CA a150
+16#F0CB a151
+16#F0CC a152
+16#F0CD a153
+16#F0CE a154
+16#F0CF a155
+16#F0D0 a156
+16#F0D1 a157
+16#F0D2 a158
+16#F0D3 a159
+16#F0D4 a160
+16#F0D5 a161
+16#F0D6 a163
+16#F0D7 a164
+16#F0D8 a196
+16#F0D9 a165
+16#F0DA a192
+16#F0DB a166
+16#F0DC a167
+16#F0DD a168
+16#F0DE a169
+16#F0DF a170
+16#F0E0 a171
+16#F0E1 a172
+16#F0E2 a173
+16#F0E3 a162
+16#F0E4 a174
+16#F0E5 a175
+16#F0E6 a176
+16#F0E7 a177
+16#F0E8 a178
+16#F0E9 a179
+16#F0EA a193
+16#F0EB a180
+16#F0EC a199
+16#F0ED a181
+16#F0EE a200
+16#F0EF a182
+16#F0F1 a201
+16#F0F2 a183
+16#F0F3 a184
+16#F0F4 a197
+16#F0F5 a185
+16#F0F6 a194
+16#F0F7 a198
+16#F0F8 a186
+16#F0F9 a195
+16#F0FA a187
+16#F0FB a188
+16#F0FC a189
+16#F0FD a190
+16#F0FE a191
+
+%EOF

Added: trunk/Master/tlpkg/tlgs/Resource/Decoding/FCO_Symbol
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Decoding/FCO_Symbol	                        (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Decoding/FCO_Symbol	2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,217 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% 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.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc.,  7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA  94903, U.S.A., +1(415)492-9861, for further information.
+%
+%
+% FCO_Symbol Decoding
+% Maps PS and TT names to Unicode UTF-16.
+
+/FCO_Symbol     % resource name
+200             % tokens
+/ParseDecoding /ProcSet findresource /Parse get exec
+
+
+% Generated for FCO from Symbol encoding with adding F000 
+% since MTFONTS/PS3/MT3/ps3___xh.fco wants so.
+
+16#0020 space   % Note : UFST uses 0x20 when others are 0xF0**.
+16#F021 exclam
+16#F022 universal
+16#F023 numbersign
+16#F024 existential
+16#F025 percent
+16#F026 ampersand
+16#F027 suchthat
+16#F028 parenleft
+16#F029 parenright
+16#F02A asteriskmath
+16#F02B plus
+16#F02C comma
+16#F02D minus
+16#F02E period
+16#F02F slash
+16#F030 zero
+16#F031 one
+16#F032 two
+16#F033 three
+16#F034 four
+16#F035 five
+16#F036 six
+16#F037 seven
+16#F038 eight
+16#F039 nine
+16#F03A colon
+16#F03B semicolon
+16#F03C less
+16#F03D equal
+16#F03E greater
+16#F03F question
+16#F040 congruent
+16#F041 Alpha
+16#F042 Beta
+16#F043 Chi
+16#F044 Delta
+16#F045 Epsilon
+16#F046 Phi
+16#F047 Gamma
+16#F048 Eta
+16#F049 Iota
+16#F04A theta1
+16#F04B Kappa
+16#F04C Lambda
+16#F04D Mu
+16#F04E Nu
+16#F04F Omicron
+16#F050 Pi
+16#F051 Theta
+16#F052 Rho
+16#F053 Sigma
+16#F054 Tau
+16#F055 Upsilon
+16#F056 sigma1
+16#F057 Omega
+16#F058 Xi
+16#F059 Psi
+16#F05A Zeta
+16#F05B bracketleft
+16#F05C therefore
+16#F05D bracketright
+16#F05E perpendicular
+16#F05F underscore
+16#F060 radicalex
+16#F061 alpha
+16#F062 beta
+16#F063 chi
+16#F064 delta
+16#F065 epsilon
+16#F066 phi
+16#F067 gamma
+16#F068 eta
+16#F069 iota
+16#F06A phi1
+16#F06B kappa
+16#F06C lambda
+16#F06D mu
+16#F06E nu
+16#F06F omicron
+16#F070 pi
+16#F071 theta
+16#F072 rho
+16#F073 sigma
+16#F074 tau
+16#F075 upsilon
+16#F076 omega1
+16#F077 omega
+16#F078 xi
+16#F079 psi
+16#F07A zeta
+16#F07B braceleft
+16#F07C bar
+16#F07D braceright
+16#F07E similar
+16#F0A0 Euro
+16#F0A1 Upsilon1
+16#F0A2 minute
+16#F0A3 lessequal
+16#F0A4 fraction
+16#F0A5 infinity
+16#F0A6 florin
+16#F0A7 club
+16#F0A8 diamond
+16#F0A9 heart
+16#F0AA spade
+16#F0AB arrowboth
+16#F0AC arrowleft
+16#F0AD arrowup
+16#F0AE arrowright
+16#F0AF arrowdown
+16#F0B0 degree
+16#F0B1 plusminus
+16#F0B2 second
+16#F0B3 greaterequal
+16#F0B4 multiply
+16#F0B5 proportional
+16#F0B6 partialdiff
+16#F0B7 bullet
+16#F0B8 divide
+16#F0B9 notequal
+16#F0BA equivalence
+16#F0BB approxequal
+16#F0BC ellipsis
+16#F0BD arrowvertex
+16#F0BE arrowhorizex
+16#F0BF carriagereturn
+16#F0C0 aleph
+16#F0C1 Ifraktur
+16#F0C2 Rfraktur
+16#F0C3 weierstrass
+16#F0C4 circlemultiply
+16#F0C5 circleplus
+16#F0C6 emptyset
+16#F0C7 intersection
+16#F0C8 union
+16#F0C9 propersuperset
+16#F0CA reflexsuperset
+16#F0CB notsubset
+16#F0CC propersubset
+16#F0CD reflexsubset
+16#F0CE element
+16#F0CF notelement
+16#F0D0 angle
+16#F0D1 gradient
+16#F0D2 registerserif
+16#F0D3 copyrightserif
+16#F0D4 trademarkserif
+16#F0D5 product
+16#F0D6 radical
+16#F0D7 dotmath
+16#F0D8 logicalnot
+16#F0D9 logicaland
+16#F0DA logicalor
+16#F0DB arrowdblboth
+16#F0DC arrowdblleft
+16#F0DD arrowdblup
+16#F0DE arrowdblright
+16#F0DF arrowdbldown
+16#F0E0 lozenge
+16#F0E1 angleleft
+16#F0E2 registersans
+16#F0E3 copyrightsans
+16#F0E4 trademarksans
+16#F0E5 summation
+16#F0E6 parenlefttp
+16#F0E7 parenleftex
+16#F0E8 parenleftbt
+16#F0E9 bracketlefttp
+16#F0EA bracketleftex
+16#F0EB bracketleftbt
+16#F0EC bracelefttp
+16#F0ED braceleftmid
+16#F0EE braceleftbt
+16#F0EF braceex
+16#F0F1 angleright
+16#F0F2 integral
+16#F0F3 integraltp
+16#F0F4 integralex
+16#F0F5 integralbt
+16#F0F6 parenrighttp
+16#F0F7 parenrightex
+16#F0F8 parenrightbt
+16#F0F9 bracketrighttp
+16#F0FA bracketrightex
+16#F0FB bracketrightbt
+16#F0FC bracerighttp
+16#F0FD bracerightmid
+16#F0FE bracerightbt
+
+%EOF

Added: trunk/Master/tlpkg/tlgs/Resource/Decoding/FCO_Unicode
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Decoding/FCO_Unicode	                        (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Decoding/FCO_Unicode	2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,2492 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% 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.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc.,  7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA  94903, U.S.A., +1(415)492-9861, for further information.
+%
+%
+% Unicode Decoding
+% Maps PS and TT names to Unicode UTF-16.
+
+% This file is in the same format as the "Unicode" Decoding resource, and includes
+% the same mappings, with the following exceptions:
+% - the set of names is smaller, no new names were added since SVN revision 6799;
+% - there are a few FCO-specific mapping differences (look for "%FCO-specific:");
+%   these are put in an extra, last column.
+
+/FCO_Unicode     % resource name
+3375             %  # of names
+/ParseDecoding /ProcSet findresource /Parse get exec
+
+16#0000        .null NUL
+16#0001        SOH
+16#0002        STX
+16#0003        ETX
+16#0004        EOT
+16#0005        ENQ
+16#0006        ACK
+16#0007        BEL
+16#0008        BS
+16#0009        HT
+16#000A        LF
+16#000B        VT
+16#000C        FF
+16#000D        CR nonmarkingreturn
+16#000E        SO
+16#000F        SI
+16#0010        DLE DC0
+16#0011        XON DC1
+16#0012        DC2
+16#0013        XOF DC3
+16#0014        DC4
+16#0015        NAK
+16#0016        SYN
+16#0017        ETB
+16#0018        CAN
+16#0019        EM
+16#001A        EOF SUB
+16#001B        ESC
+16#001C        IFS FS
+16#001D        IGS GS
+16#001E        IRS RS
+16#001F        IUS US
+16#0020  space      SP010000
+16#0021  exclam      SP020000
+16#0022  quotedbl      SP040000
+16#0023  numbersign      SM010000
+16#0024  dollar      SC030000 milreis escudo
+16#0025  percent      SM020000
+16#0026  ampersand      SM030000
+16#0027  quotesingle      SP050000
+16#0028  parenleft      SP060000
+16#0029  parenright      SP070000
+16#002A  asterisk      SM040000
+16#002B  plus      SA010000
+16#002C  comma      SP080000
+16#002D  hyphen      SP100000 hyphen-minus hyphenminus
+16#002E  period      SP110000
+16#002F  slash      SP120000
+16#0030  zero      ND100000 zerodot zeroslash
+16#0031  one      ND010000
+16#0032  two      ND020000
+16#0033  three      ND030000
+16#0034  four      ND040000
+16#0035  five      ND050000
+16#0036  six      ND060000
+16#0037  seven      ND070000
+16#0038  eight      ND080000
+16#0039  nine      ND090000
+16#003A  colon      SP130000
+16#003B  semicolon      SP140000
+16#003C  less      SA030000
+16#003D  equal      SA040000
+16#003E  greater      SA050000
+16#003F  question      SP150000
+16#0040  at      SM050000
+16#0041  A      LA020000
+16#0042  B      LB020000
+16#0043  C      LC020000
+16#0044  D      LD020000
+16#0045  E      LE020000
+16#0046  F      LF020000
+16#0047  G      LG020000
+16#0048  H      LH020000
+16#0049  I      LI020000 Inodot
+16#004A  J      LJ020000
+16#004B  K      LK020000
+16#004C  L      LL020000
+16#004D  M      LM020000
+16#004E  N      LN020000
+16#004F  O      LO020000
+16#0050  P      LP020000
+16#0051  Q      LQ020000
+16#0052  R      LR020000
+16#0053  S      LS020000
+16#0054  T      LT020000
+16#0055  U      LU020000
+16#0056  V      LV020000
+16#0057  W      LW020000
+16#0058  X      LX020000
+16#0059  Y      LY020000
+16#005A  Z      LZ020000
+16#005B  bracketleft      SM060000
+16#005C  backslash      SM070000
+16#005D  bracketright      SM080000
+16#005E  asciicircum      SD150000
+16#005F  underscore      SP090000
+16#0060  grave      SD130000
+16#0061  a      LA010000
+16#0062  b      LB010000
+16#0063  c      LC010000
+16#0064  d      LD010000
+16#0065  e      LE010000
+16#0066  f      LF010000
+16#0067  g      LG010000
+16#0068  h      LH010000
+16#0069  i      LI010000
+16#006A  j      LJ010000
+16#006B  k      LK010000
+16#006C  l      LL010000
+16#006D  m      LM010000
+16#006E  n      LN010000
+16#006F  o      LO010000
+16#0070  p      LP010000
+16#0071  q      LQ010000
+16#0072  r      LR010000
+16#0073  s      LS010000
+16#0074  t      LT010000
+16#0075  u      LU010000
+16#0076  v      LV010000
+16#0077  w      LW010000
+16#0078  x      LX010000
+16#0079  y      LY010000
+16#007A  z      LZ010000
+16#007B  braceleft      SM110000
+16#007C  bar      SM130000
+16#007D  braceright      SM140000
+16#007E  asciitilde      SD190000
+16#007F        DEL
+16#0080        SP300000 c128
+16#0081        SP030000 c129
+16#0082        SC040000
+16#0083        SC020000
+16#0084        SC010000
+16#0085        SC050000
+16#0086        SM650000
+16#0087        SM240000
+16#0088        SD170000 diaeresis
+16#0089        SM520000
+16#008A        SM210000
+16#008B        SP170000
+16#008C        SM660000
+16#008D        SP320000 c141
+16#008E        SM530000 c142
+16#008F        SM150000 overstore c143
+16#0090        SM190000
+16#0091        SA020000
+16#0092        ND021000
+16#0093        ND031000
+16#0094        SD110000
+16#0095        SM170000 micro
+16#0096        SM250000
+16#0097        SD630000 periodcentered.0
+16#0098        SD410000
+16#0099        ND011000
+16#009A        SM200000
+16#009B        SP180000
+16#009C        NF040000
+16#009D        NF010000
+16#009E        NF050000
+16#009F        SP160000
+16#00A0    nbspace    LA140000
+16#00A1  exclamdown      LA120000
+16#00A2  cent      LA160000
+16#00A3  sterling      LA200000
+16#00A4  currency      LA180000
+16#00A5  yen      LA280000
+16#00A6  brokenbar      LA520000
+16#00A7  section      LC420000
+16#00A8  dieresis      LE140000
+16#00A9  copyright      LE120000
+16#00AA  ordfeminine      LE160000
+16#00AB  guillemotleft      LE180000
+16#00AC  logicalnot      LI140000
+16#00AD    sfthyphen softhyphen    LI120000
+16#00AE  registered      LI160000
+16#00AF    overscore    LI180000		%FCO-specific: macron at 16#02C9, not 16#00AF
+16#00B0  degree
+16#00B1  plusminus      LN200000
+16#00B2    twosuperior    LO140000
+16#00B3    threesuperior    LO120000
+16#00B4  acute      LO160000
+16#00B5  mu      LO200000
+16#00B6  paragraph      LO180000
+16#00B7    middot    SA070000  periodcentered.1	%FCO-specific: periodcentered at 16#2022, 16#00B7 is periodcentered.1
+16#00B8  cedilla
+16#00B9    onesuperior    LU140000
+16#00BA  ordmasculine      LU120000
+16#00BB  guillemotright      LU160000
+16#00BC  onequarter      LU180000
+16#00BD  onehalf      LY120000
+16#00BE  threequarters      LT640000
+16#00BF  questiondown      LS610000
+16#00C0  Agrave      LA130000
+16#00C1  Aacute      LA110000
+16#00C2  Acircumflex      LA150000
+16#00C3  Atilde      LA190000
+16#00C4  Adieresis      LA170000
+16#00C5  Aring      LA270000
+16#00C6  AE      LA510000
+16#00C7  Ccedilla      LC410000
+16#00C8  Egrave      LE130000
+16#00C9  Eacute      LE110000
+16#00CA  Ecircumflex      LE150000
+16#00CB  Edieresis      LE170000
+16#00CC  Igrave      LI130000
+16#00CD  Iacute      LI110000
+16#00CE  Icircumflex      LI150000
+16#00CF  Idieresis      LI170000
+16#00D0  Eth      LD630000
+16#00D1  Ntilde      LN190000
+16#00D2  Ograve      LO130000
+16#00D3  Oacute      LO110000
+16#00D4  Ocircumflex      LO150000
+16#00D5  Otilde      LO190000
+16#00D6  Odieresis      LO170000
+16#00D7  multiply      SA060000
+16#00D8  Oslash
+16#00D9  Ugrave      LU130000
+16#00DA  Uacute      LU110000
+16#00DB  Ucircumflex      LU150000
+16#00DC  Udieresis      LU170000
+16#00DD  Yacute      LY110000
+16#00DE  Thorn      LT630000
+16#00DF  germandbls      LY170000
+16#00E0  agrave      LA620000
+16#00E1  aacute      LA610000
+16#00E2  acircumflex      LA240000
+16#00E3  atilde      LA230000
+16#00E4  adieresis      LA440000
+16#00E5  aring      LA430000
+16#00E6  ae      LC120000
+16#00E7  ccedilla      LC110000
+16#00E8  egrave      LC160000
+16#00E9  eacute      LC150000
+16#00EA  ecircumflex      LC300000
+16#00EB  edieresis      LC290000
+16#00EC  igrave      LC220000
+16#00ED  iacute      LC210000
+16#00EE  icircumflex      LD220000
+16#00EF  idieresis      LD210000 dquoteright
+16#00F0  eth      LD620000 Dbar Dmacron
+16#00F1  ntilde      LD610000 dbar
+16#00F2  ograve      LE620000
+16#00F3  oacute      LE610000
+16#00F4  ocircumflex      LE240000
+16#00F5  otilde      LE230000
+16#00F6  odieresis      LE300000
+16#00F7  divide      LE290000 c144
+16#00F8  oslash      LE440000
+16#00F9  ugrave      LE430000
+16#00FA  uacute      LE220000
+16#00FB  ucircumflex      LE210000
+16#00FC  udieresis      LG160000
+16#00FD  yacute      LG150000
+16#00FE  thorn      LG240000
+16#00FF  ydieresis      LG230000
+16#0100  Amacron      LG300000
+16#0101  amacron      LG290000 c158
+16#0102  Abreve      LG420000
+16#0103  abreve      LG110000
+16#0104  Aogonek      LH160000
+16#0105  aogonek      LH150000
+16#0106  Cacute      LH620000 Hmacron
+16#0107  cacute      LH610000 hmacron
+16#0108  Ccircumflex      LI200000
+16#0109  ccircumflex      LI190000
+16#010A  Cdotaccent  Cdot    LI620000
+16#010B  cdotaccent  cdot
+16#010C  Ccaron      LI240000
+16#010D  ccaron      LI230000
+16#010E  Dcaron      LI440000
+16#010F  dcaron      LI430000
+16#0110  Dcroat  Dslash    LI300000
+16#0111  dcroat  dmacron    LI610000 dslash
+16#0112  Emacron
+16#0113  emacron
+16#0114  Ebreve      LJ160000
+16#0115  ebreve      LJ150000
+16#0116  Edotaccent  Edot    LK420000
+16#0117  edotaccent  edot    LK410000
+16#0118  Eogonek      kra
+16#0119  eogonek      LL120000
+16#011A  Ecaron      LL110000
+16#011B  ecaron      LL420000
+16#011C  Gcircumflex      LL410000
+16#011D  gcircumflex      LL220000
+16#011E  Gbreve      LL210000
+16#011F  gbreve      LL640000
+16#0120  Gdotaccent  Gdot    LL630000
+16#0121  gdotaccent  gdot    LL620000
+16#0122    Gcedilla Gcommaaccent    LL610000
+16#0123    gcedilla gcommaaccent    LN120000
+16#0124  Hcircumflex      LN110000
+16#0125  hcircumflex      LN420000
+16#0126  Hbar      LN410000
+16#0127  hbar      LN220000
+16#0128  Itilde      LN210000
+16#0129  itilde      highcomman
+16#012A  Imacron
+16#012B  imacron
+16#012C  Ibreve      LO620000
+16#012D  ibreve      LO610000
+16#012E  Iogonek      LO240000
+16#012F  iogonek      LO230000
+16#0130  Idotaccent  Idot    LO260000
+16#0131  dotlessi      LO250000
+16#0132  IJ      LO520000
+16#0133  ij      LO510000
+16#0134  Jcircumflex      LR120000
+16#0135  jcircumflex      LR110000
+16#0136    Kcedilla Kcommaaccent    LR420000
+16#0137    kcedilla kcommaaccent    LR410000
+16#0138  kgreenlandic      LR220000
+16#0139  Lacute      LR210000
+16#013A  lacute      LS120000
+16#013B    Lcedilla Lcommaaccent    LS110000
+16#013C    lcedilla lcommaaccent    LS160000
+16#013D  Lcaron      LS150000
+16#013E  lcaron      LS420000
+16#013F  Ldot  Ldotaccent    LS410000
+16#0140  ldot  ldotaccent    LS220000
+16#0141  Lslash      LS210000
+16#0142  lslash      LT420000
+16#0143  Nacute      LT410000
+16#0144  nacute      LT220000
+16#0145    Ncedilla Ncommaaccent    LT210000 tquoteright
+16#0146    ncedilla ncommaaccent    LT620000 Tmacron
+16#0147  Ncaron      LT610000 tmacron
+16#0148  ncaron      LU200000
+16#0149  napostrophe      LU190000
+16#014A  Eng      LU620000
+16#014B  eng      LU610000
+16#014C  Omacron      LU240000
+16#014D  omacron      LU230000
+16#014E  Obreve      LU280000
+16#014F  obreve      LU270000
+16#0150  Ohungarumlaut  Odblacute    LU260000
+16#0151  ohungarumlaut  odblacute    LU250000
+16#0152  OE      LU440000
+16#0153  oe      LU430000
+16#0154  Racute      LW160000
+16#0155  racute      LW150000
+16#0156    Rcedilla Rcommaaccent    LY160000
+16#0157    rcedilla rcommaaccent    LY150000
+16#0158  Rcaron      LY180000
+16#0159  rcaron      LZ120000
+16#015A  Sacute      LZ110000
+16#015B  sacute      LZ300000
+16#015C  Scircumflex      LZ290000
+16#015D  scircumflex      LZ220000
+16#015E  Scedilla      LZ210000
+16#015F  scedilla
+16#0160  Scaron      bbar
+16#0161  scaron
+16#0162    Tcedilla Tcommaaccent
+16#0163    tcedilla tcommaaccent
+16#0164  Tcaron
+16#0165  tcaron
+16#0166  Tbar
+16#0167  tbar
+16#0168  Utilde
+16#0169  utilde      Dbar1
+16#016A  Umacron
+16#016B  umacron
+16#016C  Ubreve
+16#016D  ubreve      deltaturn
+16#016E  Uring      Eturn
+16#016F  uring
+16#0170  Uhungarumlaut  Udblacute    Epsilon1
+16#0171  uhungarumlaut  udblacute
+16#0172  Uogonek      SC070000 fscript
+16#0173  uogonek
+16#0174  Wcircumflex      Gamma1
+16#0175  wcircumflex
+16#0176  Ycircumflex      Iota1
+16#0177  ycircumflex      Ibar
+16#0178  Ydieresis
+16#0179  Zacute
+16#017A  zacute
+16#017B  Zdotaccent  Zdot    lambdabar
+16#017C  zdotaccent  zdot    mcapturn
+16#017D  Zcaron      Nhook
+16#017E  zcaron      nleg
+16#017F  longs  slong    Obar
+16#0181    Bhook
+16#0182    Btopbar    OI
+16#0183    btopbar
+16#0184    Tonesix
+16#0185    tonesix
+16#0186    Oopen    YR
+16#0187    Chook
+16#0188    chook
+16#018A    Dhook    eshlooprev
+16#018B    Dtopbar
+16#018C    dtopbar
+16#018E        Trthook
+16#018F    Schwa
+16#0191    Fhook    Upsilon2
+16#0192  florin      Vcursive
+16#0193    Ghook
+16#0195    hv    Zbar
+16#0196        zbar
+16#0197        Yogh
+16#0198    Khook    Yoghrev
+16#0199    khook    yoghrev
+16#019A    lbar    yoghtail
+16#019B        2bar
+16#019E        glottalstopbarinv
+16#01A0  Ohorn      pipe
+16#01A1  ohorn      pipedbl
+16#01A2        pipedblbar
+16#01A3    oi    exclam1
+16#01A4    Phook    DZhacek
+16#01A5    phook    Dzhacek
+16#01A6        dzhacek
+16#01A7    Tonetwo
+16#01A8    tonetwo
+16#01A9    Esh
+16#01AB    tpalatalhook
+16#01AC    Thook
+16#01AD    thook    Ahacek
+16#01AE        ahacek
+16#01AF  Uhorn      Ihacek
+16#01B0  uhorn      ihacek
+16#01B1        Ohacek
+16#01B2        ohacek
+16#01B3    Yhook    Uhacek
+16#01B4    yhook    uhacek
+16#01B9        Udieresishacek
+16#01BA        udieresishacek
+16#01BC    Tonefive
+16#01BD    tonefive    eturn
+16#01BF    wynn
+16#01C4        Gbar
+16#01C5        gbar
+16#01C6        Ghacek
+16#01C7    LJ    ghacek
+16#01C8    Lj    Khacek
+16#01C9    lj    khacek
+16#01CA    NJ
+16#01CB    Nj
+16#01CC    nj
+16#01CE        Yoghhacek
+16#01CF        yoghhacek
+16#01D0        jhacek
+16#01D5    Udieresismacron
+16#01D6    udieresismacron
+16#01D7    Udieresisacute
+16#01D8    udieresisacute
+16#01DA        Aacutering
+16#01DB    Udieresisgrave    aacutering
+16#01DC    udieresisgrave
+16#01DE    Adieresismacron
+16#01DF    adieresismacron
+16#01E0    Adotmacron    aturn
+16#01E1    adotmacron
+16#01E2    AEmacron    ascriptturn
+16#01E3    aemacron
+16#01E4        cturn
+16#01E6  Gcaron      drthook
+16#01E7  gcaron
+16#01E8        erev
+16#01EA    Oogonek
+16#01EB    oogonek    epsilon1
+16#01EC    Oogonekmacron    epsilon1rev
+16#01ED    oogonekmacron    epsilon1revhook
+16#01EE        epsilon1revclosed
+16#01EF        jdotlessbar
+16#01F1    DZ    gcursive
+16#01F2    Dz    Gsmallcap
+16#01F3    dz    gamma1
+16#01F4    Gacute    babygamma
+16#01F5    gacute    hturn
+16#01F8        ibar
+16#01F9        iota1
+16#01FA  Aringacute      Ismallcap
+16#01FB  aringacute      lmidtilde
+16#01FC  AEacute
+16#01FD  aeacute      lrthook
+16#01FE  Oslashacute      lyogh
+16#01FF  oslashacute      mturn
+16#0200        mturndescend
+16#0202        nlftlfthook
+16#0203        nrthook
+16#0204        Nsmallcap
+16#0205        obar
+16#0206        OEsmallcap
+16#0207        omegaclosed
+16#0209        rturn
+16#020A        rturnascend
+16#020B        rturnrthook rturnhook
+16#020C        rdescend
+16#020D        rrthook
+16#020F        rfishhookrev
+16#0210        Rsmallcap
+16#0211        Rsmallcapinv
+16#0212        srthook
+16#0214        jhookdblbar
+16#0215        eshshortrev
+16#0217        tturn
+16#0218    Scommaaccent    trthook
+16#0219    scommaaccent
+16#021B        vscript
+16#021C        vturn
+16#021D        wturn
+16#021E        yturn
+16#021F        Ysmallcap
+16#0220        zrthook
+16#0222        yogh
+16#0223        yoghcurl
+16#0225        glottalstoprevinv
+16#0226        glottalstopinv
+16#0227        cstretch
+16#0229        Bsmallcap
+16#022A        epsilonclosed
+16#022B        Gsmallcaphook
+16#022C        Hsmallcap
+16#022D        jcrosstail
+16#022E        kturn
+16#022F        Lsmallcap
+16#0231        glottalstopbar
+16#0232        glottalstopbarrev
+16#0234        dyogh
+16#0239        hsuper
+16#023A        hhooksuper
+16#023B        jsuper
+16#023C        rsuper
+16#023D        rturnsuper
+16#023E        rturnrthooksuper rturnhooksuper
+16#023F        Rturnsuper
+16#0240        wsuper
+16#0241        ysuper
+16#0243        primedblmod
+16#0244        quoteleftmod
+16#0245        apostrophe
+16#0246        apostropherev
+16#0247        ringrighthalfsuper
+16#0248        ringlefthalfsuper
+16#0249        glottal
+16#024A        glottalrev
+16#024B        fronted
+16#024C        backed
+16#024D        raised
+16#024E        lowered
+16#024F        SD150100
+16#0250        SD210000
+16#0251    ascript    linevert
+16#0252        SD310000 overscore1 macron1
+16#0253    bhook    acute1
+16#0254        grave1
+16#0255    ccurl    linevertsub
+16#0256        macronsub
+16#0257    dhook    gravesub
+16#0258        acutesub
+16#0259    schwa    length
+16#025A    schwahook    halflength
+16#025B        ringrighthalfcenter
+16#025C        ringlefthalfsup
+16#025D        tackupmid
+16#025E        tackdownmid
+16#0260    ghook
+16#0261    gscript    SD230000
+16#0262        SD290000
+16#0263        SD270000
+16#0264        SD430000
+16#0265        SD190100
+16#0266    hhook    SD250000
+16#0267    henghook    rhotichook
+16#0269        gammasuper
+16#026A        lsuper
+16#026B        ssuper
+16#026C    lbelt    xsuper
+16#026D        glottalrevsuper
+16#026E        toneextrahigh
+16#026F        tonehigh
+16#0270        tonemid
+16#0271    mhook    tonelow
+16#0272        toneextralow
+16#0273        gravenosp
+16#0274        acutenosp
+16#0275        circumflexnosp
+16#0276        tildenosp
+16#0277        macronnosp
+16#0278    philatin    overscorenosp
+16#0279        brevenosp
+16#027A        dotnosp
+16#027B        dieresisnosp
+16#027C        hooksupnosp
+16#027D        ringnosp
+16#027E    rfishhook    acutedblnosp
+16#027F        haceknosp
+16#0280        linevertnosp
+16#0281        linevertdblnosp
+16#0282        gravedblnosp
+16#0283    esh    candrabindunosp
+16#0284        breveinvnosp
+16#0285        commaturnsupnosp
+16#0286    eshcurl    apostrophesupnosp
+16#0287        commasuprevnosp
+16#0288        commasuprightnosp
+16#0289    ubar    gravesubnosp
+16#028A    upsilonlatin    acutesubnosp
+16#028B        tackleftsubnosp
+16#028C        tackrightsubnosp
+16#028D        anglesupnosp
+16#028E        hornnosp
+16#028F        ringlefthalfsubnosp
+16#0290        tackupsubnosp
+16#0291    zcurl    tackdownsubnosp
+16#0292        plussubnosp
+16#0293        minussubnosp
+16#0294    glottalstop    hooksubpalatnosp
+16#0295        hooksubretronosp
+16#0296        dotsubnosp
+16#0297        dotdblsubnosp
+16#0298        ringsubnosp
+16#0299        commasubnosp
+16#029A        cedillanosp
+16#029B        ogoneknosp
+16#029C        linevertsubnosp
+16#029D        bridgesubnosp
+16#029E        archdblsubnosp
+16#029F        haceksubnosp
+16#02A0    qhook    circumflexsubnosp
+16#02A1        brevesubnosp
+16#02A2        breveinvsubnosp
+16#02A3        tildesubnosp
+16#02A4        macronsubnosp
+16#02A5    dzcurl    underscorenosp
+16#02A6    ts    underscoredblnosp
+16#02A7    tesh    tildemidnosp
+16#02A8    tccurl    barmidshortnosp
+16#02A9        barmidlongnosp
+16#02AA        slashshortnosp
+16#02AB        slashlongnosp
+16#02AC        ringrighthalfsubnosp
+16#02AD        bridgeinvsubnosp
+16#02AE        squaresubnosp
+16#02AF        seagullsubnosp
+16#02B0        xsupnosp
+16#02B1        tildevertsupnosp
+16#02B2        overscoredblnosp
+16#02B3        graveleftnosp
+16#02B4        acuterightnosp
+16#02B7        diaeresistonosnosp
+16#02B8        iotasubnosp
+16#02B9    primemod
+16#02BC    afii57929
+16#02BD    afii64937    numeralgreek
+16#02BE        numeralgreeksub
+16#02C3        iotasub
+16#02C6  circumflex
+16#02C7  caron
+16#02C9          macron				%FCO-specific: macron at 16#02C9, not 16#00AF
+16#02CE        diaeresistonos
+16#02D6    plusmod
+16#02D7    minusmod
+16#02D8  breve
+16#02D9  dotaccent      iotadiaeresistonos
+16#02DA  ring      GA020000
+16#02DB  ogonek      GB020000
+16#02DC  tilde      GG020000
+16#02DD  hungarumlaut      GD020000
+16#02DE        GE020000
+16#02E1        GT620000
+16#02E9        GP020000
+16#02EC        GS020000
+16#02ED        GT020000
+16#02EF        GF020000
+16#02F2        GO320000
+16#02F3        Iotadiaeresis
+16#02F4        Upsilondiaeresis
+16#02F9        upsilondiaeresistonos
+16#02FA        GA010000
+16#02FB        GB010000
+16#02FC        GG010000
+16#02FD        GD010000
+16#02FE        GE010000
+16#0300  gravecomb
+16#0301  acutecomb      GT610000
+16#0303  tildecomb
+16#0309  hookabovecomb      GP010000
+16#030C        GS010000
+16#030D        GT010000
+16#030F        GF010000
+16#0312        GO310000
+16#0313        iotadiaeresis
+16#0314        upsilondiaeresis
+16#0319        beta1
+16#031C        Upsilon1tonos
+16#031D        Upsilon1diaeresis Upsilon1dieresis
+16#031F        pi1
+16#0323  dotbelowcomb      Stigma
+16#0325        Digamma
+16#0327        Koppa
+16#0329        Sampi
+16#0337        Dei
+16#0338        dei
+16#0339        kappa1
+16#033A        rho1
+16#033B        sigmalunate
+16#037E    questiongreek
+16#0384  tonos
+16#0385  dieresistonos
+16#0386  Alphatonos
+16#0387  anoteleia
+16#0388  Epsilontonos
+16#0389  Etatonos
+16#038A  Iotatonos
+16#038C  Omicrontonos
+16#038E  Upsilontonos
+16#038F  Omegatonos
+16#0390  iotadieresistonos
+16#0391  Alpha
+16#0392  Beta
+16#0393  Gamma
+16#0394          Delta				%FCO-specific: 16#0394 named Delta, not Deltagreek
+16#0395  Epsilon
+16#0396  Zeta
+16#0397  Eta
+16#0398  Theta
+16#0399  Iota
+16#039A  Kappa
+16#039B  Lambda
+16#039C  Mu
+16#039D  Nu
+16#039E  Xi      Yat
+16#039F  Omicron      yat
+16#03A0  Pi
+16#03A1  Rho
+16#03A3  Sigma
+16#03A4  Tau
+16#03A5  Upsilon
+16#03A6  Phi      Yusbig
+16#03A7  Chi      yusbig
+16#03A8  Psi
+16#03A9          Omega				%FCO-specific: 16#03A9 named Omega, not Omegagreek
+16#03AA  Iotadieresis
+16#03AB  Upsilondieresis
+16#03AC  alphatonos
+16#03AD  epsilontonos
+16#03AE  etatonos
+16#03AF  iotatonos
+16#03B0  upsilondieresistonos
+16#03B1  alpha
+16#03B2  beta
+16#03B3  gamma
+16#03B4  delta
+16#03B5  epsilon
+16#03B6  zeta
+16#03B7  eta
+16#03B8  theta
+16#03B9  iota
+16#03BA  kappa
+16#03BB  lambda
+16#03BD  nu
+16#03BE  xi
+16#03BF  omicron
+16#03C0  pi
+16#03C1  rho
+16#03C2  sigma1  sigmafinal
+16#03C3  sigma
+16#03C4  tau
+16#03C5  upsilon
+16#03C6  phi
+16#03C7  chi
+16#03C8  psi
+16#03C9  omega
+16#03CA  iotadieresis
+16#03CB  upsilondieresis
+16#03CC  omicrontonos
+16#03CD  upsilontonos
+16#03CE  omegatonos      Gebar
+16#03CF        gebar
+16#03D0        Gehook
+16#03D1  theta1      gehook
+16#03D2  Upsilon1      Zhertdes
+16#03D3        zhertdes
+16#03D4        Zecedilla
+16#03D5  phi1      zecedilla
+16#03D6  omega1      Kartdes
+16#03D7        kartdes
+16#03D8        Kavertbar
+16#03D9        kavertbar
+16#03DA        Kabar
+16#03DB        kabar
+16#03DC        GeKarev
+16#03DD        gekarev
+16#03DE        Enrtdes
+16#03DF        enrtdes
+16#03E0        EnGe
+16#03E1        enge
+16#03E2        Pehook
+16#03E3        pehook
+16#03E4        Ohook
+16#03E5        ohook
+16#03E6        Escedilla
+16#03E7        escedilla
+16#03E8        Tertdes
+16#03E9        tertdes
+16#03EA        Ustrt
+16#03EB        ustrt
+16#03EC        Ustrtbar
+16#03ED        ustrtbar
+16#03EE        Khartdes
+16#03EF        khartdes
+16#03F0        TeTse
+16#03F1        tetse
+16#03F2        Chertdes
+16#03F3        chertdes
+16#03F4        Chevertbar
+16#03F5        chevertbar
+16#03F6        Hcyril
+16#03F7        hcyril
+16#03F8        Iehook
+16#03F9        iehook
+16#03FA        Iehookogonek
+16#03FB        iehookogonek
+16#03FC        Icyril1
+16#03FD        Zhebreve
+16#03FE        zhebreve
+16#03FF        Kahook
+16#0400        kahook
+16#0401    afii10023    Io
+16#0402    afii10051    Dje
+16#0403    afii10052    Gje
+16#0404    afii10053    Ecyril
+16#0405    afii10054    Dze
+16#0406    afii10055    Icyril
+16#0407    afii10056    Yi
+16#0408    afii10057    Je
+16#0409    afii10058    Lje
+16#040A    afii10059    Nje
+16#040B    afii10060    Tshe
+16#040C    afii10061    Kje
+16#040E    afii10062    Ucyrilbreve
+16#040F    afii10145    Dzhe
+16#0410    afii10017    Acyril
+16#0411    afii10018    Be
+16#0412    afii10019    Ve
+16#0413    afii10020    Ge
+16#0414    afii10021    De
+16#0415    afii10022    Ie
+16#0416    afii10024    Zhe
+16#0417    afii10025    Ze
+16#0418    afii10026    Ii
+16#0419    afii10027    Iibreve
+16#041A    afii10028    Ka
+16#041B    afii10029    El
+16#041C    afii10030    Em
+16#041D    afii10031    En
+16#041E    afii10032    Ocyril
+16#041F    afii10033    Pecyril
+16#0420    afii10034    Er
+16#0421    afii10035    Es
+16#0422    afii10036    Te
+16#0423    afii10037    Ucyril
+16#0424    afii10038    Ef
+16#0425    afii10039    Kha
+16#0426    afii10040    Tse
+16#0427    afii10041    Che
+16#0428    afii10042    Sha
+16#0429    afii10043    Shcha
+16#042A    afii10044    Hard
+16#042B    afii10045    Yeri
+16#042C    afii10046    Soft
+16#042D    afii10047    Ecyrilrev
+16#042E    afii10048    Iu
+16#042F    afii10049    Ia
+16#0430    afii10065    acyril
+16#0431    afii10066    be
+16#0432    afii10067    ve
+16#0433    afii10068    ge
+16#0434    afii10069    de
+16#0435    afii10070    ie
+16#0436    afii10072    zhe
+16#0437    afii10073    ze
+16#0438    afii10074    ii
+16#0439    afii10075    iibreve
+16#043A    afii10076    ka
+16#043B    afii10077    el
+16#043C    afii10078    em
+16#043D    afii10079    en
+16#043E    afii10080    ocyril
+16#043F    afii10081    pecyril
+16#0440    afii10082    er
+16#0441    afii10083    es
+16#0442    afii10084    te
+16#0443    afii10085    ucyril
+16#0444    afii10086    ef
+16#0445    afii10087    kha
+16#0446    afii10088    tse
+16#0447    afii10089    che
+16#0448    afii10090    sha
+16#0449    afii10091    shcha
+16#044A    afii10092    hard
+16#044B    afii10093    yeri
+16#044C    afii10094    soft
+16#044D    afii10095    ecyrilrev
+16#044E    afii10096    iu
+16#044F    afii10097    ia
+16#0451    afii10071    io
+16#0452    afii10099    dje
+16#0453    afii10100    gje
+16#0454    afii10101    ecyril
+16#0455    afii10102    dze
+16#0456    afii10103    icyril
+16#0457    afii10104    yi
+16#0458    afii10105    je
+16#0459    afii10106    lje
+16#045A    afii10107    nje
+16#045B    afii10108    tshe
+16#045C    afii10109    kje
+16#045E    afii10110    ucyrilbreve
+16#045F    afii10193    dzhe
+16#0462    afii10146
+16#0463    afii10194
+16#0472    afii10147
+16#0473    afii10195
+16#0474    afii10148
+16#0475    afii10196    afii10190
+16#0490    afii10050    Geupturn
+16#0491    afii10098    geupturn
+16#04B5        Lcircumflex
+16#04B6        lcircumflex
+16#04D9    afii10846
+16#0579        SM300000
+16#057A        SM320000
+16#057B        SM310000
+16#057C        SM330000
+16#057D        SM780000 arrowlongboth
+16#057E        SM760000 arrowlongbothv
+16#057F        arrownorthwest
+16#0580        arrownortheast
+16#0581        arrowsoutheast
+16#0582        arrowsouthwest
+16#0583        arrowleftnot
+16#0584        arrowrightnot
+16#0585        arrowwaveleft
+16#0586        arrowwaveright
+16#0587        dblarrowheadleft
+16#0588        dblarrowheadup
+16#0589        dblarrowheadright
+16#058A        dblarrowheaddown
+16#058B        arrowtailleft
+16#058C        arrowtailright
+16#058D        arrowbarleft
+16#058E        arrowbarup
+16#058F        arrowbarright
+16#0590        arrowbardown
+16#0591        SM770000 arrowbothvbase
+16#0592        arrowhookleft
+16#0593        arrowhookright
+16#0594        arrowloopleft
+16#0595        arrowloopright
+16#0596        arrowwaveboth
+16#0597        arrowlongbothnot
+16#0598        arrowzigzag
+16#0599        null
+16#059A        startofhead
+16#059B        starttext
+16#059C        endtext
+16#059D        endtrans
+16#059E        enquiry
+16#059F        acknowledge
+16#05A0        bell
+16#05A1        backspace
+16#05A2        horiztab
+16#05A3        linefeed
+16#05A4        verttab
+16#05A5        formfeed
+16#05A7        shiftout
+16#05A8        shiftin
+16#05A9        datalinkescape devcon0
+16#05AA        auxiliaryon devcon1
+16#05AB        devcon2
+16#05AC        auxiliaryoff devcon3
+16#05AD        devcon4
+16#05AE        negacknowledge
+16#05AF        synch
+16#05B0    afii57799 sheva    endtransblock
+16#05B1    afii57801 hatafsegol    cancel
+16#05B2    afii57800 hatafpatah    endmedium
+16#05B3    afii57802 hatafqamats    substitute endoffile
+16#05B4    afii57793 hiriq    escape
+16#05B5    afii57794 tsere    fileseparator
+16#05B6    afii57795 segol    groupseparator
+16#05B7    afii57798 patah    recordseparator
+16#05B8    afii57797 qamats    unitseparator
+16#05B9    afii57806 holam    spaceliteral
+16#05BA        delete
+16#05BB    afii57796 qubuts    qibuts blankb
+16#05BC    afii57807 dagesh    spaceopenbox
+16#05BD    afii57839    meteg newline
+16#05BE    afii57645    maqaf
+16#05BF    afii57841 rafe
+16#05C0    afii57842    paseq
+16#05C1    afii57804    shindot
+16#05C2    afii57803    sindot
+16#05C3    afii57658    sofpasuq
+16#05D0    afii57664 alef
+16#05D1    afii57665 bet
+16#05D2    afii57666 gimel
+16#05D3    afii57667 dalet
+16#05D4    afii57668 he
+16#05D5    afii57669 vav
+16#05D6    afii57670 zayin
+16#05D7    afii57671 het
+16#05D8    afii57672 tet
+16#05D9    afii57673 yod
+16#05DA    afii57674    kaffinal
+16#05DB    afii57675 kaf
+16#05DC    afii57676 lamed
+16#05DD    afii57677    memfinal
+16#05DE    afii57678 mem
+16#05DF    afii57679    nunfinal
+16#05E0    afii57680 nun
+16#05E1    afii57681 samekh
+16#05E2    afii57682 ayin
+16#05E3    afii57683    pefinal
+16#05E4    afii57684 pe
+16#05E5    afii57685    tsadifinal
+16#05E6    afii57686 tsadi
+16#05E7    afii57687 qof
+16#05E8    afii57688 resh
+16#05E9    afii57689 shin
+16#05EA    afii57690 tav
+16#05F0    afii57716    vavdbl
+16#05F1    afii57717    vavyod
+16#05F2    afii57718    yoddbl
+16#05F3        geresh
+16#05F4        gershayim
+16#060C    afii57388    arabiccomma
+16#061B    afii57403    arabicsemicolon
+16#061F    afii57407    arabicquestionmark
+16#0621    afii57409    hamza
+16#0622    afii57410    alefwithmaddaabove
+16#0623    afii57411    alefwithhamzaabove
+16#0624    afii57412    wawwithhamzaabove
+16#0625    afii57413    alefwithhamzabelow
+16#0626    afii57414    yehwithhamzaabove
+16#0627    afii57415    arabicalef
+16#0628    afii57416    beh
+16#0629    afii57417    tehmarbuta
+16#062A    afii57418    teh
+16#062B    afii57419    theh
+16#062C    afii57420    jeem
+16#062D    afii57421    hah
+16#062E    afii57422    khah
+16#062F    afii57423    dal
+16#0630    afii57424    thal
+16#0631    afii57425    reh
+16#0632    afii57426    zain
+16#0633    afii57427    seen
+16#0634    afii57428    sheen
+16#0635    afii57429    sad
+16#0636    afii57430    dad
+16#0637    afii57431    tah
+16#0638    afii57432    zah
+16#0639    afii57433    ain
+16#063A    afii57434    ghain
+16#0640    afii57440    tatweel
+16#0641    afii57441    feh
+16#0642    afii57442    qaf
+16#0643    afii57443    arabickaf
+16#0644    afii57444    lam
+16#0645    afii57445    meem
+16#0646    afii57446    noon
+16#0647    afii57470    heh
+16#0648    afii57448    waw
+16#0649    afii57449    alefmaksura
+16#064A    afii57450    yeh
+16#064B    afii57451    fathatan
+16#064C    afii57452    dammatan
+16#064D    afii57453    kasratan
+16#064E    afii57454    fatha
+16#064F    afii57455    damma
+16#0650    afii57456    kasra
+16#0651    afii57457    shadda
+16#0652    afii57458    sukun
+16#0660    afii57392    arabicindicdigitzero
+16#0661    afii57393    arabicindicdigitone
+16#0662    afii57394    arabicindicdigittwo
+16#0663    afii57395    arabicindicdigitthree
+16#0664    afii57396    arabicindicdigitfour
+16#0665    afii57397    arabicindicdigitfive
+16#0666    afii57398    arabicindicdigitsix
+16#0667    afii57399    arabicindicdigitseven
+16#0668    afii57400    arabicindicdigiteight
+16#0669    afii57401    arabicindicdigitnine
+16#066A    afii57381    arabicpercentsign
+16#066D    afii63167    arabicfivepointedstar
+16#0670        superscriptalef
+16#0671        alefwasla
+16#0674        highhamza
+16#0679    afii57511
+16#067E    afii57506    peh
+16#0686    afii57507    tcheh
+16#0688    afii57512
+16#0691    afii57513
+16#0698    afii57508    jeh
+16#06A4    afii57505    veh
+16#06A9        keheh
+16#06AF    afii57509    gaf
+16#06BA    afii57514
+16#06CC        farsiyeh
+16#06D2    afii57519
+16#06D5    afii57534    arabicae
+16#06E4        smallhighmadda
+16#06F0        extendedarabicindicdigitzero
+16#06F1        extendedarabicindicdigitone
+16#06F2        extendedarabicindicdigittwo
+16#06F3        extendedarabicindicdigitthree
+16#06F4        extendedarabicindicdigitfour
+16#06F5        extendedarabicindicdigitfive
+16#06F6        extendedarabicindicdigitsix
+16#06F7        extendedarabicindicdigitseven
+16#06F8        extendedarabicindicdigiteight
+16#06F9        extendedarabicindicdigitnine
+16#0E00        0.0
+16#0E01        afii59681
+16#0E02        afii59682
+16#0E03        afii59683
+16#0E04        afii59684
+16#0E05        afii59685
+16#0E06        afii59686
+16#0E07        afii59687
+16#0E08        afii59688
+16#0E09        afii59689
+16#0E0A        afii59690
+16#0E0B        afii59691
+16#0E0C        afii59692
+16#0E0D        afii59693
+16#0E0E        afii59694
+16#0E0F        afii59695
+16#0E10        afii59696
+16#0E11        afii59697
+16#0E12        afii59698
+16#0E13        afii59699
+16#0E14        afii59700
+16#0E15        afii59701
+16#0E16        afii59702
+16#0E17        afii59703
+16#0E18        afii59704
+16#0E19        afii59705
+16#0E1A        afii59706
+16#0E1B        afii59707
+16#0E1C        afii59708
+16#0E1D        afii59709
+16#0E1E        afii59710
+16#0E1F        afii59711
+16#0E20        afii59712
+16#0E21        afii59713
+16#0E22        afii59714
+16#0E23        afii59715
+16#0E24        afii59716
+16#0E25        afii59717
+16#0E26        afii59718
+16#0E27        afii59719
+16#0E28        afii59720
+16#0E29        afii59721
+16#0E2A        afii59722
+16#0E2B        afii59723
+16#0E2C        afii59724
+16#0E2D        afii59725
+16#0E2E        afii59726
+16#0E2F        afii59727
+16#0E30        afii59729
+16#0E31        afii59728
+16#0E32        afii59730
+16#0E33        afii59731
+16#0E34        afii59732
+16#0E35        afii59733
+16#0E36        afii59734
+16#0E37        afii59735
+16#0E38        afii59736
+16#0E39        afii59737
+16#0E3A        afii59738
+16#0E3F        afii59743
+16#0E40        afii59744
+16#0E41        afii59745
+16#0E42        afii59746
+16#0E43        afii59747
+16#0E44        afii59748
+16#0E45        afii59749
+16#0E46        afii59750
+16#0E47        afii59751
+16#0E48        afii59752
+16#0E49        afii59753
+16#0E4A        afii59754
+16#0E4B        afii59755
+16#0E4C        afii59756
+16#0E4D        afii59757
+16#0E4E        afii59758
+16#0E4F        afii59759
+16#0E50        afii59760
+16#0E51        afii59761
+16#0E52        afii59762
+16#0E53        afii59763
+16#0E54        afii59764
+16#0E55        afii59765
+16#0E56        afii59766
+16#0E57        afii59767
+16#0E58        afii59768
+16#0E59        afii59769
+16#0E5A        afii59770
+16#0E5B        afii59771
+16#1E80  Wgrave
+16#1E81  wgrave
+16#1E82  Wacute
+16#1E83  wacute
+16#1E84  Wdieresis
+16#1E85  wdieresis
+16#1EF2  Ygrave
+16#1EF3  ygrave
+16#2000        enquad
+16#2001        emquad
+16#2002    enspace
+16#2003        emspace
+16#2004        threeperemspace
+16#2005        fourperemspace
+16#2006        sixperemspace
+16#2007        figurespace
+16#2008        punctuationspace
+16#2009        thinspace
+16#200A        hairspace
+16#200B        zerospace
+16#200C    afii61664    zeronojoin
+16#200D    afii301    zerojoin
+16#200E    afii299    lefttoright
+16#200F    afii300    righttoleft
+16#2010        hyphen1
+16#2011        hyphennobreak nbhyphen
+16#2012  figuredash
+16#2013  endash      SS680000
+16#2014  emdash      SM900000
+16#2015    afii00208    longdash quotedash
+16#2016        verticalbardbl vertlinedbl
+16#2017  underscoredbl      SM100000
+16#2018  quoteleft      SP190000 quotesinglleft
+16#2019  quoteright      SP200000 quotesinglright
+16#201A  quotesinglbase      SP260000
+16#201B  quotereversed      quotesinglrev
+16#201C  quotedblleft      SP210000
+16#201D  quotedblright      SP220000
+16#201E  quotedblbase      SP230000
+16#201F        quotedblrev
+16#2020  dagger      SM340000
+16#2021  daggerdbl      SM350000
+16#2022  bullet      SM570000  periodcentered	%FCO-specific: periodcentered at 16#2022, 16#00B7 is periodcentered.1
+16#2023        trianglebullet
+16#2024  onedotenleader      onedotlead onedotleader
+16#2025  twodotenleader  twodotleader    twodotlead
+16#2026  ellipsis      SV520000
+16#2027        hyphendot
+16#2028        lineseparator
+16#2029        paragraphseparator
+16#202A        lre
+16#202B        rle
+16#202C    afii61573    pdf
+16#202D    afii61574    lro
+16#202E    afii61575    rlo
+16#2030  perthousand      SM560000
+16#2031        pertenthousand
+16#2032  minute      prime1 prime
+16#2033  second      primedbl1 primedbl
+16#2034        primetripl1 primetripl
+16#2035        minuterev primerev1 primerev
+16#2036        primedblrev1 primedblrev secondrev
+16#2037        primetriplerev1 primetriplerev
+16#2038        caret
+16#2039  guilsinglleft      SP270000
+16#203A  guilsinglright      SP280000
+16#203B        refmark
+16#203C  exclamdbl      SP330000
+16#203D        interrobang
+16#203E    overline
+16#203F        undertie
+16#2040        tie tie1
+16#2041        caretinsert
+16#2042    asterism
+16#2043        hyphenbullet
+16#2044        fraction1			%FCO-specific: fraction at 16#2215, not 16#2044
+16#2045        bracketleftquill
+16#2046        bracketrightquill
+16#2070    zerosuperior
+16#2074    foursuperior
+16#2075    fivesuperior
+16#2076    sixsuperior
+16#2077    sevensuperior
+16#2078    eightsuperior
+16#2079    ninesuperior
+16#207A    plussuperior
+16#207B        minussuperior
+16#207C    equalsuperior
+16#207D    parenleftsuperior
+16#207E    parenrightsuperior
+16#207F    nsuperior    LN011000
+16#2080    zeroinferior    zerosub
+16#2081    oneinferior    onesub
+16#2082    twoinferior    twosub
+16#2083    threeinferior    threesub
+16#2084    fourinferior    foursub
+16#2085    fiveinferior    fivesub
+16#2086    sixinferior    sixsub
+16#2087    seveninferior    sevensub
+16#2088    eightinferior    eightsub
+16#2089    nineinferior    ninesub
+16#208A        plussub plusinferior
+16#208B        minussub minusinferior
+16#208C        equalsub equalinferior
+16#208D    parenleftinferior    parenleftsub
+16#208E    parenrightinferior    parenrightsub
+16#20A0        eurocurrency
+16#20A1  colonmonetary      coloncurrency Colonmonetary coloncur
+16#20A2    cruzeiro
+16#20A3  franc
+16#20A4  lira  afii08941
+16#20A5        mill
+16#20A6        naira
+16#20A7  peseta      SC060000 Pts pesetas
+16#20A8        rupees rupee
+16#20A9    won
+16#20AA    afii57636    newsheqel
+16#20AB  dong
+16#20AC  Euro
+16#2100        accountof
+16#2101        addresssubject
+16#2102        Cbb Cdblstruck
+16#2103        degreecentigrade celsius
+16#2104        centreline CL
+16#2105    afii61248 careof
+16#2106        cadauna
+16#2107        Euler
+16#2108        scruple
+16#2109    fahrenheit    degreefarenheit degreefahrenheit farenheit
+16#210A        gscriptmath
+16#210B        Hscript
+16#210C        Hfractur Hfraktur Hblackletter
+16#210D        Hdblstruck Hbb
+16#210E        planck
+16#210F        planckover2pi
+16#2110        Iscript
+16#2111  Ifraktur      Ifractur Iblackletter
+16#2112        Lscript
+16#2113    afii61289    lscript liter
+16#2114        lbbar
+16#2115        Ndblstruck Nbb
+16#2116    afii61352 numero
+16#2117        recordright soundcopyright
+16#2118  weierstrass      Pscript
+16#2119        Pdblstruck Pbb
+16#211A        Qdblstruck Qbb
+16#211B        Rscript
+16#211C  Rfraktur      Rblackletter Rfractur
+16#211D        Rdblstruck Rbb
+16#211E  prescription      Rx
+16#211F        response
+16#2120        servicemark
+16#2121    telephone    tel
+16#2122  trademark      SM540000
+16#2123        versicle
+16#2124        Zbb Zdblstruck
+16#2125        ounce
+16#2126        ohm				%FCO-specific: 16#03A9 named Omega, not Omegagreek
+16#2127        Omegainv ohminverted mho
+16#2128        Zfraktur Zblackletter Zfractur
+16#2129        iotaturn
+16#212A        kelvin degreekelvin
+16#212B    angstrom
+16#212C        Bscript
+16#212D        Cblackletter Cfraktur Cfractur
+16#212E  estimated
+16#212F        escript
+16#2130        Escript
+16#2131        Fscript
+16#2132        Fturn
+16#2133        Mscript
+16#2134        oscript 0script
+16#2135  aleph      alephmath
+16#2136        bethmath
+16#2137        gimelmath
+16#2138        dalethmath
+16#2153  onethird
+16#2154  twothirds
+16#2155        onefifth
+16#2156        twofifths
+16#2157        threefifths
+16#2158        fourfifths
+16#2159        onesixth
+16#215A        fivesixth
+16#215B  oneeighth
+16#215C  threeeighths
+16#215D  fiveeighths
+16#215E  seveneighths
+16#2190  arrowleft
+16#2191  arrowup
+16#2192  arrowright
+16#2193  arrowdown
+16#2194  arrowboth
+16#2195  arrowupdn
+16#2196    arrowupleft
+16#2197    arrowupright
+16#2198    arrowdownright
+16#2199    arrowdownleft
+16#21A8  arrowupdnbse
+16#21B4        arrowrightdown
+16#21B5  carriagereturn      carriagerreturn
+16#21B6        arrowsemanticlockw
+16#21B7        arrowsemclockw
+16#21B8        home
+16#21B9        tableftright
+16#21BA        arrowanticlockw
+16#21BB        arrowclockw
+16#21BC        arrowlefttophalf
+16#21BD        arrowleftbothalf
+16#21BE        harpoonupright
+16#21BF        harpoonupleft
+16#21C0        arrowrighttophalf
+16#21C1        arrowrightbothalf
+16#21C2        harpoondownright
+16#21C3        harpoondownleft
+16#21C4        arrowparrrightleft
+16#21C5        dblarrowupdown
+16#21C6        arrowparrleftright
+16#21C8        dblarrowup
+16#21CA        dblarrowdown
+16#21CB        harpoonleftright
+16#21CC        harpoonrightleft
+16#21CD        arrowdblleftnot
+16#21CE        arrowdbllongbothnot
+16#21CF        arrowdblrightnot
+16#21D0  arrowdblleft
+16#21D1  arrowdblup
+16#21D2  arrowdblright  dblarrowright
+16#21D3  arrowdbldown
+16#21D4  arrowdblboth  dblarrowleft    arrowdbllongboth
+16#21D5        arrowdbllongbothv
+16#21D6        arrowdblnw
+16#21D7        arrowdblne
+16#21D8        arrowdblse
+16#21D9        arrowdblsw
+16#21DA        arrowtripleleft
+16#21DB        arrowtripleright
+16#21DC        arrowsquiggleleft
+16#21DD        arrowsquiggleright
+16#21DE    pageup
+16#21DF    pagedown
+16#21E0    arrowdashleft
+16#21E1    arrowdashup
+16#21E2    arrowdashright
+16#21E3    arrowdashdown
+16#21E4    arrowtableft
+16#21E5    arrowtabright
+16#21E6        arrowopenleft
+16#21E7    arrowupwhite    arrowopenup
+16#21E8        arrowopenright
+16#21E9        arrowopendown
+16#21EA    capslock
+16#2200  universal
+16#2201        complement
+16#2202  partialdiff
+16#2203  existential
+16#2204        notexistential
+16#2205  emptyset
+16#2206    increment				%FCO-specific: 16#0394 named Delta, not Deltagreek
+16#2207  gradient  nabla
+16#2208  element
+16#2209  notelement
+16#220A        elementsmall smallelement
+16#220B  suchthat      owner contains
+16#220C    notcontains    notowner notsuchthat
+16#220D        ownersmall smallcontains
+16#220E        eop endofproof
+16#220F  product
+16#2210        coproduct
+16#2211  summation
+16#2212  minus
+16#2213    minusplus
+16#2214        dotplus
+16#2215        slashmath  fraction		%FCO-specific: fraction at 16#2215, not 16#2044
+16#2216        setminus backslashmath
+16#2217  asteriskmath
+16#2218        openbullet1 ringmath
+16#2219        productdot bulletmath
+16#221A  radical      squareroot
+16#221B        cuberoot
+16#221C        fourthroot
+16#221D  proportional
+16#221E  infinity
+16#221F  orthogonal  rightangle
+16#2220  angle
+16#2221        measuredangle
+16#2222        sphericalangle
+16#2223    divides    bar1
+16#2224        notbar notdivides
+16#2225    parallel    bardbl2
+16#2226    notparallel    notbardbl
+16#2227  logicaland
+16#2228  logicalor
+16#2229  intersection
+16#222A  union
+16#222B  integral
+16#222C        integraldbl doubleintegral
+16#222D        tripleintegral integraltrpl
+16#222E    contourintegral    contintegral
+16#222F        surfintegral surfaceintegral
+16#2230        volintegral volumeintegral
+16#2231        clwintegral
+16#2232        clwcontintegral
+16#2233        cclwcontintegral
+16#2234  therefore
+16#2235    because
+16#2236    ratio
+16#2237    proportion
+16#2238        dotminus
+16#2239        excess
+16#223A        geomproportion proportiongeom
+16#223B        homothetic
+16#223C  similar      tildemath
+16#223D        revsimilar tildereversed
+16#223E        Sinvlazy lazysinv
+16#223F        sine sinewave
+16#2240        wreathproduct
+16#2241        notsimilar
+16#2242        minustilde
+16#2243        similarequal approxequalalt asymptequal
+16#2244        notasymptequal
+16#2245  congruent      approxorequal
+16#2246        approxnotequal
+16#2247        notapproxequal
+16#2248  approxequal      almostequal
+16#2249        notalmostequal
+16#224A        almostorequal
+16#224B        tildetrpl
+16#224C    allequal
+16#224D        equivasymptotic
+16#224E        geomequivalent
+16#224F        difference
+16#2250        approachlimit
+16#2251        geomequal
+16#2252    approxequalorimage
+16#2253        imageorapproxequal
+16#2254        colonequal
+16#2255        equalcolon
+16#2256        ringinequal
+16#2257        ringequal
+16#2258        corresponds
+16#2259        estimates
+16#225A        equiangular
+16#225B        starequal
+16#225C        deltaequal
+16#225D        definequal
+16#225E        measurequal
+16#225F        questionequal
+16#2260  notequal
+16#2261  equivalence
+16#2262        notequivalence
+16#2263        strictequivalence
+16#2264  lessequal
+16#2265  greaterequal
+16#2266        lessdblequal
+16#2267        greaterdblequal
+16#2268        lessnotdblequal
+16#2269        greaternotdblequal
+16#226A        lessmuch
+16#226B        greatermuch
+16#226C        between
+16#226D        notequivasymptotic
+16#226E    notless
+16#226F    notgreater
+16#2270        notlessequal1
+16#2271        notgreaterequal1
+16#2272        lessequivlnt
+16#2273        greaterequivlnt
+16#2274        notlessequivlnt
+16#2275        notgreaterequivlnt
+16#2276    lessorgreater
+16#2277    greaterorless
+16#2278        notlessgreater
+16#2279        notgreaterless
+16#227A    precedes
+16#227B        follows
+16#227C        precedesequal1
+16#227D        followsequal1
+16#227E        precedequivlnt
+16#227F        followsequivlnt
+16#2280        notpreceeds
+16#2281        notfollows
+16#2282  propersubset
+16#2283  propersuperset
+16#2284  notsubset      notpropersubset
+16#2285    notsuperset    notpropersuperset
+16#2286  reflexsubset
+16#2287  reflexsuperset
+16#2288        notreflexsubset
+16#2289        notreflexsuperset
+16#228A    subsetnotequal
+16#228B    supersetnotequal
+16#228C        multiset
+16#228D        multiplymultiset
+16#228E        unionmulti
+16#228F        squareimage
+16#2290        squareoriginal
+16#2291        subsetsqequal
+16#2292        supersetsqequal
+16#2293        intersectionsq
+16#2294        unionsq
+16#2295  circleplus
+16#2296        circleminus
+16#2297  circlemultiply
+16#2298        circledivide
+16#2299        circledot
+16#229A        circlering
+16#229B        circleasterisk
+16#229C        circleequal
+16#229D        circleminus1
+16#229E        squareplus
+16#229F        squareminus
+16#22A0        squaremultiply
+16#22A1        squaredot
+16#22A2        turnstileleft
+16#22A3        turnstileright
+16#22A4        latticetop
+16#22A5  perpendicular
+16#22A6        assertion
+16#22A7        truestate
+16#22A8        satisfy
+16#22A9        force
+16#22AA        tacktrpl
+16#22AB        forceextr
+16#22AC        notturnstileleft
+16#22AD        notsatisfy
+16#22AE        notforce
+16#22AF        notforceextr
+16#22B0        lowerrank
+16#22B1        higherrank
+16#22B2        triangleright
+16#22B3        triangleleft
+16#22B4        triangleftequal
+16#22B5        triangrightequal
+16#22B6        original
+16#22B7        image
+16#22B8        multimap
+16#22B9        hermitconjmatrix
+16#22BA        intercal
+16#22BB        orunderscore xor
+16#22BC        nand
+16#22BD        nor
+16#22BE        rightanglearc
+16#22BF    righttriangle
+16#22C0        narylogicaland
+16#22C1        narylogicalor
+16#22C2        naryintersection
+16#22C3        naryunion
+16#22C4        diamondmath
+16#22C5  dotmath
+16#22C6        star
+16#22C7        divideonmultiply
+16#22C8        bowtie
+16#22C9        multicloseleft
+16#22CA        multicloseright
+16#22CB        multiopenleft
+16#22CC        multiopenright
+16#22CD        revasymptequal
+16#22CE        curlor
+16#22CF        curland
+16#22D0        subsetdbl
+16#22D1        supersetdbl
+16#22D2        uniondbl
+16#22D3        intersectiondbl
+16#22D4        fork
+16#22D5        equalparallel
+16#22D6        lessdot
+16#22D7        greaterdot
+16#22D8        verymuchless
+16#22D9        verymuchgreater
+16#22DA        lessequalgreater
+16#22DB        greaterequalless
+16#22DC        equalless
+16#22DD        equalgreater
+16#22DE        equalprecedes1
+16#22DF        equalfollows1
+16#22E0        preceedsnotequal
+16#22E1        followsnotequal
+16#22E2        notsubsetsqequal
+16#22E3        notsupersetsqequal
+16#22E4        sqimageornotequal
+16#22E5        sqoriginornotequal
+16#22E6        lessnotequivlnt
+16#22E7        greaternotequivlnt
+16#22E8        preceedsnotsimilar
+16#22E9        followsnotequivlnt
+16#22EA        nottriangleleft
+16#22EB        nottriangleright
+16#22EC        nottriangleleftequal
+16#22ED        nottrianglerightequal
+16#22EE        vertellipsis
+16#22EF        midhorizellipsis
+16#22F0        upslopeellipsis
+16#22F1        downslopeellipsis
+16#2302  house      SM790000
+16#2303    control
+16#2306        perspcorrespond
+16#2308        ceilingleft
+16#2309        ceilingright
+16#230A        floorleft
+16#230B        floorright
+16#2310  revlogicalnot
+16#2318    propellor
+16#2320  integraltp      SS260000
+16#2321  integralbt      SS270000
+16#2322        slurabove
+16#2323        slurbelow
+16#2325    option
+16#2326    deleteright
+16#2327    clear
+16#2329  angleleft
+16#232A  angleright
+16#232B    deleteleft
+16#2423    blank
+16#2500  SF100000
+16#2502  SF110000
+16#250A        250a
+16#250B        250b
+16#250C  SF010000      250c
+16#250D        250d
+16#250E        250e
+16#250F        250f
+16#2510  SF030000
+16#2514  SF020000
+16#2518  SF040000
+16#251A        251a
+16#251B        251b
+16#251C  SF080000      251c
+16#251D        251d
+16#251E        251e
+16#251F        251f
+16#2524  SF090000
+16#252A        252a
+16#252B        252b
+16#252C  SF060000      252c
+16#252D        252d
+16#252E        252e
+16#252F        252f
+16#2534  SF070000
+16#253A        253a
+16#253B        253b
+16#253C  SF050000      253c
+16#253D        253d
+16#253E        253e
+16#253F        253f
+16#254A        254a
+16#254B        254b
+16#254C        254c
+16#254D        254d
+16#254E        254e
+16#254F        254f
+16#2550  SF430000
+16#2551  SF240000
+16#2552  SF510000
+16#2553  SF520000
+16#2554  SF390000
+16#2555  SF220000
+16#2556  SF210000
+16#2557  SF250000
+16#2558  SF500000
+16#2559  SF490000
+16#255A  SF380000      255a
+16#255B  SF280000      255b
+16#255C  SF270000      255c
+16#255D  SF260000      255d
+16#255E  SF360000      255e
+16#255F  SF370000      255f
+16#2560  SF420000
+16#2561  SF190000
+16#2562  SF200000
+16#2563  SF230000
+16#2564  SF470000
+16#2565  SF480000
+16#2566  SF410000
+16#2567  SF450000
+16#2568  SF460000
+16#2569  SF400000
+16#256A  SF540000      256a
+16#256B  SF530000      256b
+16#256C  SF440000      256c
+16#256D        256d
+16#256E        256e
+16#256F        256f
+16#257A        257a
+16#257B        257b
+16#257C        257c
+16#257D        257d
+16#257E        257e
+16#257F        257f
+16#2580  upblock      SF600000
+16#2581        dneightblock
+16#2582        dnquarterblock
+16#2583        dnthreeeighthblock
+16#2584  dnblock      SF570000
+16#2585        dnfiveeighthblock
+16#2586        dnthreequarterblock
+16#2587        dnseveneighthblock
+16#2588  block      SF610000
+16#2589        lfseveneighthblock
+16#258A        lfthreequarterblock
+16#258B        lffiveeighthblock
+16#258C  lfblock      SF580000
+16#258D        lfthreeeighthblock
+16#258E        lfquarterblock
+16#258F        lfeighthblock
+16#2590  rtblock      SF590000
+16#2591  ltshade      SF140000
+16#2592  shade      SF150000
+16#2593  dkshade      SF160000
+16#2594        upeighthblock
+16#2595        rteighthblock
+16#25A0  filledbox      SM470000
+16#25A1  H22073      box
+16#25A2        boxrounded
+16#25A3        boxnested
+16#25A4        boxhorizhatch
+16#25A5        boxverthatch
+16#25A6        boxcrosshatch
+16#25A7        boxleftdiaghatch
+16#25A8        boxrtdiaghatch
+16#25A9        boxcrossdiaghatch
+16#25AA  H18543      smallboxfilled
+16#25AB  H18551      smallbox
+16#25AC  filledrect      SM700000
+16#25AD        rectangle
+16#25AE        filledvertrect
+16#25AF        vertrectangle
+16#25B0        filledparallelogram
+16#25B1        parallelogram
+16#25B2  triagup      SM600000
+16#25B3        triangle
+16#25B4        smalltrianglesld
+16#25B5        smalltriangle
+16#25B6        trianglerightsld1
+16#25B7        triangleright1
+16#25B8        smalltrianglerightsld
+16#25B9        smalltriangleright
+16#25BA  triagrt      SM590000
+16#25BB        triagrtopen
+16#25BC  triagdn      SV040000
+16#25BD        triangleinv
+16#25BE        smalltriangleinvsld
+16#25BF        smalltriangleinv
+16#25C0        triangleleftsld1
+16#25C1        triangleleft1
+16#25C2        smalltriangleleftsld
+16#25C3        smalltriangleleft
+16#25C4  triaglf      SM630000
+16#25C5        triaglfopen
+16#25C6        diamondrhombsolid
+16#25C7        diamondrhomb
+16#25C8        diamondrhombnested
+16#25C9    fisheye
+16#25CA  lozenge      SA660000
+16#25CB  circle      SM750000
+16#25CC        circledash
+16#25CD        circleverthatch
+16#25CE    bullseye    bullseye1
+16#25CF  H18533      SM580000 bulletaltone circlesolid
+16#25D0        circleleftsld
+16#25D1        circlerightsld
+16#25D2        circlebottomsld
+16#25D3        circletopsld
+16#25D4        circlenesld
+16#25D5        circlenwopen
+16#25D6        semicircleleftsld
+16#25D7        semicirclelertsld
+16#25D8  invbullet      SM570001
+16#25D9  invcircle      SM750002
+16#25DA        invsemicircleup
+16#25DB        invsemicircledn
+16#25DC        nwquadarc
+16#25DD        nequadarc
+16#25DE        sequadarc
+16#25DF        swquadarc
+16#25E0        toparc
+16#25E1        bottomarc
+16#25E2        trianglesesld
+16#25E3        triangleswsld
+16#25E4        tranglenwsld
+16#25E5        trianglenesld
+16#25E6  openbullet
+16#25E7        squareleftsld
+16#25E8        squarerightsld
+16#25E9        squarenwsld
+16#25EA        squaresesld
+16#25EB        squarevertbisect
+16#25EC        triangledot
+16#25ED        triangleleftsld
+16#25EE        trianglerightsld
+16#263A  smileface      SS000000
+16#263B  invsmileface      SS010000
+16#263C  sun      SM690000
+16#2640  female      SM290000
+16#2642  male      SM280000
+16#2643        u2643
+16#2660  spade      SS050000
+16#2663  club      SS040000
+16#2665  heart      SS020000
+16#2666  diamond      SS030000
+16#266A  musicalnote      SM930000
+16#266B  musicalnotedbl      SM910000
+16#266D        flat
+16#266E        natural
+16#266F        sharp
+16#E802        finalkafwithsheva
+16#E803        finalkafwithqamats
+16#E804        lamedwithholam
+16#E805        lamedwithdageshandholam
+16#E811        lamwithmeemwithjeeminitial
+16#E812        behwithhehinitial
+16#E813        pehwithhehinitial
+16#E814        tehwithhehinitial
+16#E815        noonwithhehinitial
+16#E816        rayaleflam
+16#E818        shaddawithfathatanisolated
+16#E820        fathalow
+16#E821        dammalow
+16#E822        sukunlow
+16#E823        fathatanlow
+16#E824        dammatanlow
+16#E825        shaddalow
+16#E826        kasralow
+16#E827        kasratanlow
+16#E828        shaddawithfathalow shaddawithfathaisolatedlow
+16#E829        shaddawithdammalow shaddawithdammaisolatedlow
+16#E82A        shaddawithfathatanisolatedlow shaddawithfathatanlow
+16#E82B        shaddawithdammatanisolatedlow shaddawithdammatanlow
+16#E82C        shaddawithkasraisolatedlow shaddawithkasralow
+16#E82D        shaddawithkasratanisolatedlow shaddawithkasratanlow
+16#E832        fathaonhamza
+16#E833        fathatanonhamza
+16#E834        sukunonhamza
+16#E835        dammaonhamza
+16#E836        dammatanonhamza
+16#F003        circumflex1
+16#F004        tilde1
+16#F005        dieresis1
+16#F006        breve1
+16#F007        ring1
+16#F008        cedilla1
+16#F009        hungarumlaut1
+16#F00A        caron1
+16#F00D        cedilla2
+16#F6BE    dotlessj
+16#F6BF    LL
+16#F6C0    ll
+16#F6C3    commaaccent
+16#F6C4    afii10063
+16#F6C5    afii10064
+16#F6C6    afii10192
+16#F6C7    afii10831
+16#F6C8    afii10832
+16#F6C9    Acute
+16#F6CA    Caron
+16#F6CB    Dieresis
+16#F6CC    DieresisAcute
+16#F6CD    DieresisGrave
+16#F6CE    Grave
+16#F6CF    Hungarumlaut
+16#F6D0    Macron
+16#F6D1    cyrBreve
+16#F6D2    cyrFlex
+16#F6D3    dblGrave
+16#F6D4    cyrbreve
+16#F6D5    cyrflex
+16#F6D6    dblgrave
+16#F6D7    dieresisacute
+16#F6D8    dieresisgrave
+16#F6D9    copyrightserif
+16#F6DA    registerserif
+16#F6DB    trademarkserif
+16#F6DC    onefitted
+16#F6DD    rupiah
+16#F6DE    threequartersemdash
+16#F6DF    centinferior
+16#F6E0    centsuperior
+16#F6E1    commainferior
+16#F6E2    commasuperior
+16#F6E3    dollarinferior
+16#F6E4    dollarsuperior
+16#F6E5    hypheninferior
+16#F6E6    hyphensuperior
+16#F6E7    periodinferior
+16#F6E8    periodsuperior
+16#F6E9    asuperior
+16#F6EA    bsuperior
+16#F6EB    dsuperior
+16#F6EC    esuperior
+16#F6ED    isuperior
+16#F6EE    lsuperior
+16#F6EF    msuperior
+16#F6F0    osuperior
+16#F6F1    rsuperior
+16#F6F2    ssuperior
+16#F6F3    tsuperior
+16#F6F4    Brevesmall
+16#F6F5    Caronsmall
+16#F6F6    Circumflexsmall
+16#F6F7    Dotaccentsmall
+16#F6F8    Hungarumlautsmall
+16#F6F9    Lslashsmall
+16#F6FA    OEsmall
+16#F6FB    Ogoneksmall
+16#F6FC    Ringsmall
+16#F6FD    Scaronsmall
+16#F6FE    Tildesmall
+16#F6FF    Zcaronsmall
+16#F700        f700
+16#F701        f701
+16#F702        f702
+16#F703        f703
+16#F704        f704
+16#F705        f705
+16#F706        f706
+16#F707        f707
+16#F708        f708
+16#F709        f709
+16#F70A        f70a
+16#F70B        f70b
+16#F70C        f70c
+16#F70D        f70d
+16#F70E        f70e
+16#F70F        f70f
+16#F710        f710
+16#F711        f711
+16#F712        f712
+16#F713        f713
+16#F714        f714
+16#F715        f715
+16#F716        f716
+16#F717        f717
+16#F718        f718
+16#F719        f719
+16#F71A        f71a
+16#F71C        f71c
+16#F71D        f71d
+16#F721    exclamsmall
+16#F724    dollaroldstyle
+16#F726    ampersandsmall
+16#F730    zerooldstyle
+16#F731    oneoldstyle
+16#F732    twooldstyle
+16#F733    threeoldstyle
+16#F734    fouroldstyle
+16#F735    fiveoldstyle
+16#F736    sixoldstyle
+16#F737    sevenoldstyle
+16#F738    eightoldstyle
+16#F739    nineoldstyle
+16#F73F    questionsmall
+16#F760    Gravesmall
+16#F761    Asmall
+16#F762    Bsmall
+16#F763    Csmall
+16#F764    Dsmall
+16#F765    Esmall
+16#F766    Fsmall
+16#F767    Gsmall
+16#F768    Hsmall
+16#F769    Ismall
+16#F76A    Jsmall
+16#F76B    Ksmall
+16#F76C    Lsmall
+16#F76D    Msmall
+16#F76E    Nsmall
+16#F76F    Osmall
+16#F770    Psmall
+16#F771    Qsmall
+16#F772    Rsmall
+16#F773    Ssmall
+16#F774    Tsmall
+16#F775    Usmall
+16#F776    Vsmall
+16#F777    Wsmall
+16#F778    Xsmall
+16#F779    Ysmall
+16#F77A    Zsmall
+16#F7A1    exclamdownsmall
+16#F7A2    centoldstyle
+16#F7A8    Dieresissmall
+16#F7AF    Macronsmall
+16#F7B4    Acutesmall
+16#F7B8    Cedillasmall
+16#F7BF    questiondownsmall
+16#F7E0    Agravesmall
+16#F7E1    Aacutesmall
+16#F7E2    Acircumflexsmall
+16#F7E3    Atildesmall
+16#F7E4    Adieresissmall
+16#F7E5    Aringsmall
+16#F7E6    AEsmall
+16#F7E7    Ccedillasmall
+16#F7E8    Egravesmall
+16#F7E9    Eacutesmall
+16#F7EA    Ecircumflexsmall
+16#F7EB    Edieresissmall
+16#F7EC    Igravesmall
+16#F7ED    Iacutesmall
+16#F7EE    Icircumflexsmall
+16#F7EF    Idieresissmall
+16#F7F0    Ethsmall
+16#F7F1    Ntildesmall
+16#F7F2    Ogravesmall
+16#F7F3    Oacutesmall
+16#F7F4    Ocircumflexsmall
+16#F7F5    Otildesmall
+16#F7F6    Odieresissmall
+16#F7F8    Oslashsmall
+16#F7F9    Ugravesmall
+16#F7FA    Uacutesmall
+16#F7FB    Ucircumflexsmall
+16#F7FC    Udieresissmall
+16#F7FD    Yacutesmall
+16#F7FE    Thornsmall
+16#F7FF    Ydieresissmall
+16#F810        Dcaron1
+16#F811        dcaron1
+16#F812        Lcaron1
+16#F813        lcaron1
+16#F814        Tcaron1
+16#F815        tcaron1 tcaronaltone
+16#F816        Scedilla1
+16#F817        scedilla1
+16#F818        Tcedilla1 Kcedilla1
+16#F819        kcedilla1 tcedilla1
+16#F81A        Lcedilla1 gcedilla1
+16#F81B        lcedilla1 peso1 pesoph
+16#F81C        Ncedilla1
+16#F81D        ncedilla1
+16#F81E        Rcedilla1
+16#F81F        rcedilla1
+16#F820        dotcircle1
+16#F821        ltshade1
+16#F822        shade1
+16#F823        dkshade1
+16#F830        logonek
+16#F831        Rcircumflex
+16#F832        rcircumflex
+16#F833        Ucedilla
+16#F834        ucedilla
+16#F8E5    radicalex
+16#F8E6    arrowvertex
+16#F8E7    arrowhorizex
+16#F8E8    registersans
+16#F8E9    copyrightsans
+16#F8EA    trademarksans
+16#F8EB    parenlefttp
+16#F8EC    parenleftex
+16#F8ED    parenleftbt
+16#F8EE    bracketlefttp
+16#F8EF    bracketleftex
+16#F8F0    bracketleftbt
+16#F8F1    bracelefttp
+16#F8F2    braceleftmid
+16#F8F3    braceleftbt
+16#F8F4    braceex
+16#F8F5    integralex
+16#F8F6    parenrighttp    help
+16#F8F7    parenrightex
+16#F8F8    parenrightbt
+16#F8F9    bracketrighttp    power
+16#F8FA    bracketrightex
+16#F8FB    bracketrightbt    contextmenu
+16#F8FC    bracerighttp    carriagereturnleft
+16#F8FD    bracerightmid    enter
+16#F8FE    bracerightbt    appleopen
+16#F8FF    apple
+16#FB00    ff
+16#FB01    fi
+16#FB02    fl
+16#FB03    ffi
+16#FB04    ffl
+16#FB05        slongt longst
+16#FB06        st
+16#FB1E        varika
+16#FB1F    afii57705
+16#FB20        alternativeayin
+16#FB2A    afii57694    shinwithshindot
+16#FB2B    afii57695    shinwithsindot
+16#FB2C        shinwithdageshandshindot
+16#FB2D        shinwithdageshandsindot
+16#FB2E        alefwithpatah
+16#FB2F        alefwithqamats
+16#FB30        alefwithmapiq
+16#FB31        betwithdagesh
+16#FB32        gimelwithdagesh
+16#FB33        daletwithdagesh
+16#FB34        hewithmapiq
+16#FB35    afii57723    vavwithdagesh
+16#FB36        zayinwithdagesh
+16#FB38        tetwithdagesh
+16#FB39        yodwithdagesh
+16#FB3A        finalkafwithdagesh
+16#FB3B        kafwithdagesh
+16#FB3C        lamedwithdagesh
+16#FB3E        memwithdagesh
+16#FB40        nunwithdagesh
+16#FB41        samekhwithdagesh
+16#FB43        finalpewithdagesh
+16#FB44        pewithdagesh
+16#FB46        tsadiwithdagesh
+16#FB47        qofwithdagesh
+16#FB48        reshwithdagesh
+16#FB49        shinwithdagesh
+16#FB4A        tavwithdagesh
+16#FB4B    afii57700    vavwithholam
+16#FB4C        betwithrafe
+16#FB4D        kafwithrafe
+16#FB4E        pewithrafe
+16#FB4F        aleflamed
+16#FB50        alefwaslaisolated
+16#FB51        alefwaslafinal
+16#FB56        pehisolated
+16#FB57        pehfinal
+16#FB58        pehinitial
+16#FB59        pehmedial
+16#FB6A        vehisolated
+16#FB6B        vehfinal
+16#FB6C        vehinitial
+16#FB6D        vehmedial
+16#FB7A        tchehisolated
+16#FB7B        tchehfinal
+16#FB7C        tchehinitial
+16#FB7D        tchehmedial
+16#FB8A        jehisolated
+16#FB8B        jehfinal
+16#FB8E        kehehisolated
+16#FB8F        kehehfinal
+16#FB90        kehehinitial
+16#FB91        kehehmedial
+16#FB92        gafisolated
+16#FB93        gaffinal
+16#FB94        gafinitial
+16#FB95        gafmedial
+16#FBFC        farsiyehisolated
+16#FBFD        farsiyehfinal
+16#FC08        behwithmeemisolated
+16#FC09        behwithalefmaksuraisolated
+16#FC0A        behwithyehisolated
+16#FC0E        tehwithmeemisolated
+16#FC10        tehwithyehisolated
+16#FC12        thehwithmeemisolated
+16#FC31        fehwithalefmaksuraisolated
+16#FC32        fehwithyehisolated
+16#FC3F        lamwithjeemisolated
+16#FC40        lamwithhahisolated
+16#FC41        lamwithkhahisolated
+16#FC42        lamwithmeemisolated
+16#FC43        lamwithalefmaksuraisolated
+16#FC44        lamwithyehisolated
+16#FC4E        noonwithmeemisolated
+16#FC4F        noonwithalefmaksuraisolated
+16#FC50        noonwithyehisolated
+16#FC58        yehwithmeemisolated
+16#FC59        yehwithalefmaksuraisolated
+16#FC5E        shaddawithdammatanisolated
+16#FC5F        shaddawithkasratanisolated
+16#FC60        shaddawithfathaisolated
+16#FC61        shaddawithdammaisolated
+16#FC62        shaddawithkasraisolated
+16#FC6A        behwithrehfinal
+16#FC6D        behwithnoonfinal
+16#FC6E        behwithalefmaksurafinal
+16#FC6F        behwithyehfinal
+16#FC70        noonwithzainfinal
+16#FC73        tehwithnoonfinal
+16#FC74        tehwithalefmaksurafinal
+16#FC75        tehwithyehfinal
+16#FC8E        noonwithalefmaksurafinal
+16#FC8F        noonwithyehfinal
+16#FC91        yehwithrehfinal
+16#FC94        yehwithnoonfinal
+16#FC95        yehwithalefmaksurafinal
+16#FC9C        behwithjeeminitial
+16#FC9D        behwithhahinitial
+16#FC9E        behwithkhahinitial
+16#FC9F        behwithmeeminitial
+16#FCA1        tehwithjeeminitial
+16#FCA2        tehwithhahinitial
+16#FCA3        tehwithkhahinitial
+16#FCA4        tehwithmeeminitial
+16#FCA6        thehwithmeeminitial
+16#FCA8        jeemwithmeeminitial
+16#FCAA        hahwithmeeminitial
+16#FCAC        khahwithmeeminitial
+16#FCB0        seenwithmeeminitial
+16#FCC9        lamwithjeeminitial
+16#FCCA        lamwithhahinitial
+16#FCCB        lamwithkhahinitial
+16#FCCC        lamwithmeeminitial
+16#FCCD        lamwithhehinitial
+16#FCCE        meemwithjeeminitial
+16#FCCF        meemwithhahinitial
+16#FCD0        meemwithkhahinitial
+16#FCD1        meemwithmeeminitial
+16#FCD2        noonwithjeeminitial
+16#FCD3        noonwithhahinitial
+16#FCD4        noonwithkhahinitial
+16#FCD5        noonwithmeeminitial
+16#FCD8        hehwithmeeminitial
+16#FCDA        yehwithjeeminitial
+16#FCDB        yehwithhahinitial
+16#FCDC        yehwithkhahinitial
+16#FCDD        yehwithmeeminitial
+16#FCF2        shaddawithfathamedial
+16#FCF3        shaddawithdammamedial
+16#FCF4        shaddawithkasramedial
+16#FD30        sheenwithmeeminitial
+16#FD3C        alefwithfathatanfinal
+16#FD3D        alefwithfathatanisolated
+16#FD3E        ornateleftparenthesis
+16#FD3F        ornaterightparenthesis
+16#FD88        lamwithmeemwithhahinitial
+16#FDF2        allahisolated
+16#FE70        fathatanisolated
+16#FE71        fathatanontatweel tatweelwithfathatanabove
+16#FE72        dammatanisolated
+16#FE74        kasratanisolated
+16#FE76        fathaisolated
+16#FE77        fathahontatweel fathamedial
+16#FE78        dammaisolated
+16#FE79        dammahontatweel dammamedial
+16#FE7A        kasraisolated
+16#FE7B        kasrahontatweel kasramedial
+16#FE7C        shaddaisolated
+16#FE7D        shaddahontatweel shaddamedial
+16#FE7E        sukunisolated
+16#FE7F        sukunontatweel sukunmedial
+16#FE80        hamzaisolated
+16#FE81        alefwithmaddaaboveisolated
+16#FE82        alefwithmaddaabovefinal
+16#FE83        alefwithhamzaaboveisolated
+16#FE84        alefwithhamzaabovefinal
+16#FE85        wawwithhamzaaboveisolated
+16#FE86        wawwithhamzaabovefinal
+16#FE87        alefwithhamzabelowisolated
+16#FE88        alefwithhamzabelowfinal
+16#FE89        yehwithhamzaaboveisolated
+16#FE8A        yehwithhamzaabovefinal
+16#FE8B        yehwithhamzaaboveinitial
+16#FE8C        yehwithhamzaabovemedial
+16#FE8D        alefisolated
+16#FE8E        aleffinal
+16#FE8F        behisolated
+16#FE90        behfinal
+16#FE91        behinitial
+16#FE92        behmedial
+16#FE93        tehmarbutaisolated
+16#FE94        tehmarbutafinal
+16#FE95        tehisolated
+16#FE96        tehfinal
+16#FE97        tehinitial
+16#FE98        tehmedial
+16#FE99        thehisolated
+16#FE9A        thehfinal
+16#FE9B        thehinitial
+16#FE9C        thehmedial
+16#FE9D        jeemisolated
+16#FE9E        jeemfinal
+16#FE9F        jeeminitial
+16#FEA0        jeemmedial
+16#FEA1        hahisolated
+16#FEA2        hahfinal
+16#FEA3        hahinitial
+16#FEA4        hahmedial
+16#FEA5        khahisolated
+16#FEA6        khahfinal
+16#FEA7        khahinitial
+16#FEA8        khahmedial
+16#FEA9        dalisolated
+16#FEAA        dalfinal
+16#FEAB        thalisolated
+16#FEAC        thalfinal
+16#FEAD        rehisolated
+16#FEAE        rehfinal
+16#FEAF        zainisolated
+16#FEB0        zainfinal
+16#FEB1        seenisolated
+16#FEB2        seenfinal
+16#FEB3        seeninitial
+16#FEB4        seenmedial
+16#FEB5        sheenisolated
+16#FEB6        sheenfinal
+16#FEB7        sheeninitial
+16#FEB8        sheenmedial
+16#FEB9        sadisolated
+16#FEBA        sadfinal
+16#FEBB        sadinitial
+16#FEBC        sadmedial
+16#FEBD        dadisolated
+16#FEBE        dadfinal
+16#FEBF        dadinitial
+16#FEC0        dadmedial
+16#FEC1        tahisolated
+16#FEC2        tahfinal
+16#FEC3        tahinitial
+16#FEC4        tahmedial
+16#FEC5        zahisolated
+16#FEC6        zahfinal
+16#FEC7        zahinitial
+16#FEC8        zahmedial
+16#FEC9        ainisolated
+16#FECA        ainfinal
+16#FECB        aininitial
+16#FECC        ainmedial
+16#FECD        ghainisolated
+16#FECE        ghainfinal
+16#FECF        ghaininitial
+16#FED0        ghainmedial
+16#FED1        fehisolated
+16#FED2        fehfinal
+16#FED3        fehinitial
+16#FED4        fehmedial
+16#FED5        qafisolated
+16#FED6        qaffinal
+16#FED7        qafinitial
+16#FED8        qafmedial
+16#FED9        kafisolated
+16#FEDA        arabickaffinal
+16#FEDB        kafinitial
+16#FEDC        kafmedial
+16#FEDD        lamisolated
+16#FEDE        lamfinal
+16#FEDF        laminitial
+16#FEE0        lammedial
+16#FEE1        meemisolated
+16#FEE2        meemfinal
+16#FEE3        meeminitial
+16#FEE4        meemmedial
+16#FEE5        noonisolated
+16#FEE6        noonfinal
+16#FEE7        nooninitial
+16#FEE8        noonmedial
+16#FEE9        hehisolated
+16#FEEA        hehfinal
+16#FEEB        hehinitial
+16#FEEC        hehmedial
+16#FEED        wawisolated
+16#FEEE        wawfinal
+16#FEEF        alefmaksuraisolated
+16#FEF0        alefmaksurafinal
+16#FEF1        yehisolated
+16#FEF2        yehfinal
+16#FEF3        yehinitial
+16#FEF4        yehmedial
+16#FEF5        lamwithalefmaddaaboveisolatedd
+16#FEF6        lamwithalefmaddaabovefinal
+16#FEF7        lamwithalefhamzaaboveisolatedd
+16#FEF8        lamwithalefhamzaabovefinal
+16#FEF9        lamwithalefhamzabelowisolated
+16#FEFA        lamwithalefhamzabelowfinal
+16#FEFB        lamwithalefisolated
+16#FEFC        lamwithaleffinal
+16#FEFF        zerowidthnobreakspace bom
+
+%EOF

Added: trunk/Master/tlpkg/tlgs/Resource/Decoding/FCO_Wingdings
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Decoding/FCO_Wingdings	                        (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Decoding/FCO_Wingdings	2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,252 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% 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.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc.,  7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA  94903, U.S.A., +1(415)492-9861, for further information.
+%
+%
+% FCO_Wingdings Decoding
+% Maps PS and TT names to Unicode UTF-16.
+
+/FCO_Wingdings  % resource name
+230             % tokens
+/ParseDecoding /ProcSet findresource /Parse get exec
+
+
+% Generated for FCO from Wingdings encoding with adding F000 
+% since MTFONTS/PS3/MT3/ps3___xh.fco wants so.
+
+16#0020 space   % Note : UFST uses 0x20 when others are 0xF0**.
+16#F021 pencil
+16#F022 scissors
+16#F023 scissorscutting
+16#F024 readingglasses
+16#F025 bell
+16#F026 book
+16#F027 candle
+16#F028 telephonesolid
+16#F029 telhandsetcirc
+16#F02A envelopeback
+16#F02B envelopefront
+16#F02C mailboxflagdwn
+16#F02D mailboxflagup
+16#F02E mailbxopnflgup
+16#F02F mailbxopnflgdwn
+16#F030 folder
+16#F031 folderopen
+16#F032 filetalltext1
+16#F033 filetalltext
+16#F034 filetalltext3
+16#F035 filecabinet
+16#F036 hourglass
+16#F037 keyboard
+16#F038 mouse2button
+16#F039 ballpoint
+16#F03A pc
+16#F03B harddisk
+16#F03C floppy3
+16#F03D floppy5
+16#F03E tapereel
+16#F03F handwrite
+16#F040 handwriteleft
+16#F041 handv
+16#F042 handok
+16#F043 thumbup
+16#F044 thumbdown
+16#F045 handptleft
+16#F046 handptright
+16#F047 handptup
+16#F048 handptdwn
+16#F049 handhalt
+16#F04A smileface
+16#F04B neutralface
+16#F04C frownface
+16#F04D bomb
+16#F04E skullcrossbones
+16#F04F flag
+16#F050 pennant
+16#F051 airplane
+16#F052 sunshine
+16#F053 droplet
+16#F054 snowflake
+16#F055 crossoutline
+16#F056 crossshadow
+16#F057 crossceltic
+16#F058 crossmaltese
+16#F059 starofdavid
+16#F05A crescentstar
+16#F05B yinyang
+16#F05C om
+16#F05D wheel
+16#F05E aries
+16#F05F taurus
+16#F060 gemini
+16#F061 cancer
+16#F062 leo
+16#F063 virgo
+16#F064 libra
+16#F065 scorpio
+16#F066 saggitarius
+16#F067 capricorn
+16#F068 aquarius
+16#F069 pisces
+16#F06A ampersanditlc
+16#F06B ampersandit
+16#F06C circle6
+16#F06D circleshadowdwn
+16#F06E square6
+16#F06F box3
+16#F070 box4
+16#F071 boxshadowdwn
+16#F072 boxshadowup
+16#F073 lozenge4
+16#F074 lozenge6
+16#F075 rhombus6
+16#F076 xrhombus
+16#F077 rhombus4
+16#F078 clear
+16#F079 escape
+16#F07A command
+16#F07B rosette
+16#F07C rosettesolid
+16#F07D quotedbllftbld
+16#F07E quotedblrtbld
+16#F080 zerosans
+16#F081 onesans
+16#F082 twosans
+16#F083 threesans
+16#F084 foursans
+16#F085 fivesans
+16#F086 sixsans
+16#F087 sevensans
+16#F088 eightsans
+16#F089 ninesans
+16#F08A tensans
+16#F08B zerosansinv
+16#F08C onesansinv
+16#F08D twosansinv
+16#F08E threesansinv
+16#F08F foursansinv
+16#F090 fivesansinv
+16#F091 sixsansinv
+16#F092 sevensansinv
+16#F093 eightsansinv
+16#F094 ninesansinv
+16#F095 tensansinv
+16#F096 budleafne
+16#F097 budleafnw
+16#F098 budleafsw
+16#F099 budleafse
+16#F09A vineleafboldne
+16#F09B vineleafboldnw
+16#F09C vineleafboldsw
+16#F09D vineleafboldse
+16#F09E circle2
+16#F09F circle4
+16#F0A0 square2
+16#F0A1 ring2
+16#F0A2 ring4
+16#F0A3 ring6
+16#F0A4 ringbutton2
+16#F0A5 target
+16#F0A6 circleshadowup
+16#F0A7 square4
+16#F0A8 box2
+16#F0A9 tristar2
+16#F0AA crosstar2
+16#F0AB pentastar2
+16#F0AC hexstar2
+16#F0AD octastar2
+16#F0AE dodecastar3
+16#F0AF octastar4
+16#F0B0 registersquare
+16#F0B1 registercircle
+16#F0B2 cuspopen
+16#F0B3 cuspopen1
+16#F0B4 query
+16#F0B5 circlestar
+16#F0B6 starshadow
+16#F0B7 oneoclock
+16#F0B8 twooclock
+16#F0B9 threeoclock
+16#F0BA fouroclock
+16#F0BB fiveoclock
+16#F0BC sixoclock
+16#F0BD sevenoclock
+16#F0BE eightoclock
+16#F0BF nineoclock
+16#F0C0 tenoclock
+16#F0C1 elevenoclock
+16#F0C2 twelveoclock
+16#F0C3 arrowdwnleft1
+16#F0C4 arrowdwnrt1
+16#F0C5 arrowupleft1
+16#F0C6 arrowuprt1
+16#F0C7 arrowleftup1
+16#F0C8 arrowrtup1
+16#F0C9 arrowleftdwn1
+16#F0CA arrowrtdwn1
+16#F0CB quiltsquare2
+16#F0CC quiltsquare2inv
+16#F0CD leafccwsw
+16#F0CE leafccwnw
+16#F0CF leafccwse
+16#F0D0 leafccwne
+16#F0D1 leafnw
+16#F0D2 leafsw
+16#F0D3 leafne
+16#F0D4 leafse
+16#F0D5 deleteleft
+16#F0D6 deleteright
+16#F0D7 head2left
+16#F0D8 head2right
+16#F0D9 head2up
+16#F0DA head2down
+16#F0DB circleleft
+16#F0DC circleright
+16#F0DD circleup
+16#F0DE circledown
+16#F0DF barb2left
+16#F0E0 barb2right
+16#F0E1 barb2up
+16#F0E2 barb2down
+16#F0E3 barb2nw
+16#F0E4 barb2ne
+16#F0E5 barb2sw
+16#F0E6 barb2se
+16#F0E7 barb4left
+16#F0E8 barb4right
+16#F0E9 barb4up
+16#F0EA barb4down
+16#F0EB barb4nw
+16#F0EC barb4ne
+16#F0ED barb4sw
+16#F0EE barb4se
+16#F0EF bleft
+16#F0F0 bright
+16#F0F1 bup
+16#F0F2 bdown
+16#F0F3 bleftright
+16#F0F4 bupdown
+16#F0F5 bnw
+16#F0F6 bne
+16#F0F7 bsw
+16#F0F8 bse
+16#F0F9 bdash1
+16#F0FA bdash2
+16#F0FB xmarkbld
+16#F0FC checkbld
+16#F0FD boxxmarkbld
+16#F0FE boxcheckbld
+16#F0FF windowslogo
+
+
+%EOF

Added: trunk/Master/tlpkg/tlgs/Resource/Decoding/Latin1
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Decoding/Latin1	                        (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Decoding/Latin1	2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,464 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% 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.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc.,  7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA  94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% Decoding for mapping PS names to codes for renderers which cannot
+% retrive characters by names.
+
+/Latin1
+<<
+/idot   105
+/Inodot 73
+/SM070000       92
+/LC420000       199
+/LG010000       103
+/LO120000       211
+/LR010000       114
+/LT640000       222
+/ND020000       50
+/SM140000       125
+/LE110000       233
+/SP030000       161
+/LO150000       244
+/SP130000       58
+/SP170000       171
+/LY170000       255
+/LE020000       69
+/ND031000       179
+/LP020000       80
+/SP180000       187
+/SM060000       91
+/LA520000       198
+/LF010000       102
+/LO140000       210
+/LQ010000       113
+/LY120000       221
+/ND010000       49
+/SM130000       124
+/LE130000       232
+/SP300000       160
+/LO110000       243
+/ND090000       57
+/SM210000       170
+/LT630000       254
+/LD020000       68
+/ND021000       178
+/LO020000       79
+/SM200000       186
+/LZ020000       90
+/LA280000       197
+/LE010000       101
+/LN200000       209
+/LP010000       112
+/LU180000       220
+/ND100000       48
+/SM110000       123
+/LC410000       231
+/c143   143
+/LO130000       242
+/ND080000       56
+/SM520000       169
+/LY110000       253
+/LC020000       67
+/SA020000       177
+/LN020000       78
+/ND011000       185
+/LY020000       89
+/LA180000       196
+/LD010000       100
+/LI180000       207
+/LO010000       111
+/LU160000       219
+/LZ010000       122
+/LA510000       230
+/c142   142
+/LN190000       241
+/ND070000       55
+/diaeresis      168
+/LU170000       252
+/LB020000       66
+/SM190000       176
+/LM020000       77
+/SD410000       184
+/LX020000       88
+/LA200000       195
+/LC010000       99
+/LI160000       206
+/LN010000       110
+/LU120000       218
+/LY010000       121
+/LA270000       229
+/c141   141
+/LD630000       240
+/ND060000       54
+/SD170000       168
+/LU150000       251
+/LA020000       65
+/overstore      175
+/LL020000       76
+/periodcentered.0       183
+/LW020000       87
+/LA160000       194
+/LB010000       98
+/LI120000       205
+/LM010000       109
+/LU140000       217
+/LX010000       120
+/LA170000       228
+/c129   129
+/LI170000       239
+/ND050000       53
+/SM240000       167
+/LU110000       250
+/SM050000       64
+/SM150000       175
+/LK020000       75
+/middot 183
+/LV020000       86
+/LA120000       193
+/LA010000       97
+/LI140000       204
+/LL010000       108
+/LW010000       119
+/LA190000       227
+/c128   128
+/LI150000       238
+/ND040000       52
+/SM650000       166
+/LU130000       249
+/SP150000       63
+/SM530000       174
+/LJ020000       74
+/SD630000       183
+/LU020000       85
+/LA140000       192
+/SD130000       96
+/LE180000       203
+/LK010000       107
+/SA070000       215
+/LV010000       118
+/LA150000       226
+/zerodot        48
+/LI110000       237
+/ND030000       51
+/SC050000       165
+/SA050000       62
+/softhyphen     173
+/LI020000       73
+/SM250000       182
+/LT020000       84
+/SP160000       191
+/SP090000       95
+/LE160000       202
+/LJ010000       106
+/LO180000       214
+/LU010000       117
+/LA110000       225
+/zeroslash      48
+/LI130000       236
+/SC010000       164
+/SA060000       247
+/SA040000       61
+/sfthyphen      173
+/LH020000       72
+/micro  181
+/LS020000       83
+/NF050000       190
+/SD150000       94
+/LE120000       201
+/LI010000       105
+/LO200000       213
+/LT010000       116
+/LA130000       224
+/DEL    127
+/LE170000       235
+/SC020000       163
+/LO170000       246
+/SA030000       60
+/SP320000       173
+/LG020000       71
+/SM170000       181
+/LR020000       82
+/NF010000       189
+/SM080000       93
+/LE140000       200
+/LH010000       104
+/LO160000       212
+/LS010000       115
+/LS610000       223
+/SD190000       126
+/LE150000       234
+/SC040000       162
+/LO190000       245
+/SP140000       59
+/SM660000       172
+/c144   247
+/LF020000       70
+/SD110000       180
+/LQ020000       81
+/NF040000       188
+/hyphen-minus   45
+/IUS    31
+/SC030000       36
+/SP100000       45
+/SM010000       35
+/SP080000       44
+/SP040000       34
+/SA010000       43
+/SP020000       33
+/SM040000       42
+/US     31
+/SP010000       32
+/SP070000       41
+/SP060000       40
+/SP050000       39
+/SM030000       38
+/SP120000       47
+/SM020000       37
+/SP110000       46
+/escudo 36
+/hyphenminus    45
+/milreis        36
+/nbspace        160
+/.null  0
+/IRS    30
+/RS     30
+/copyrightserif 169
+/copyrightsans  169
+/BS     8
+/GS     29
+/HT     9
+/CR     13
+/IGS    29
+/ESC    27
+/IFS    28
+/EOF    26
+/SUB    26
+/FS     28
+/SO     14
+/DLE    16
+/DC1    17
+/CAN    24
+/DC4    20
+/nonmarkingreturn       13
+/ETB    23
+/FF     12
+/XOF    19
+/VT     11
+/SYN    22
+/LF     10
+/NAK    21
+/DC3    19
+/DC2    18
+/BEL    7
+/XON    17
+/EM     25
+/DC0    16
+/ACK    6
+/SI     15
+/ENQ    5
+/germandbls     223
+/onesuperior    185
+/Egrave 200
+/Oacute 211
+/agrave 224
+/igrave 236
+/divide 247
+/Ccedilla       199
+/Ograve 210
+/Thorn  222
+/edieresis      235
+/odieresis      246
+/oslash 248
+/threesuperior  179
+/Aring  197
+/Ntilde 209
+/Yacute 221
+/ecircumflex    234
+/otilde 245
+/twosuperior    178
+/Adieresis      196
+/Eth    208
+/Udieresis      220
+/eacute 233
+/ocircumflex    244
+/plusminus      177
+/Atilde 195
+/Idieresis      207
+/Ucircumflex    219
+/egrave 232
+/oacute 243
+/ydieresis      255
+/ae     230
+/degree 176
+/Acircumflex    194
+/Icircumflex    206
+/Uacute 218
+/ccedilla       231
+/ograve 242
+/thorn  254
+/ordmasculine   186
+/registered     174
+/Aacute 193
+/Iacute 205
+/Ugrave 217
+/aring  229
+/ntilde 241
+/yacute 253
+/logicalnot     172
+/Agrave 192
+/Igrave 204
+/multiply       215
+/adieresis      228
+/eth    240
+/udieresis      252
+/Oslash 216
+/brokenbar      166
+/threequarters  190
+/Edieresis      203
+/Odieresis      214
+/atilde 227
+/idieresis      239
+/ucircumflex    251
+/onehalf        189
+/Ecircumflex    202
+/Otilde 213
+/acircumflex    226
+/icircumflex    238
+/uacute 250
+/ordfeminine    170
+/onequarter     188
+/Eacute 201
+/Ocircumflex    212
+/aacute 225
+/iacute 237
+/ugrave 249
+/AE     198
+/two    50
+/equal  61
+/bar    124
+/quotesingle    39
+/paragraph      182
+/ampersand      38
+/one    49
+/less   60
+/braceleft      123
+/currency       164
+/acute  180
+/EOT    4
+/percent        37
+/zero   48
+/semicolon      59
+/section        167
+/grave  96
+/dollar 36
+/slash  47
+/colon  58
+/underscore     95
+/questiondown   191
+/numbersign     35
+/ETX    3
+/period 46
+/nine   57
+/asciicircum    94
+/yen    165
+/cedilla        184
+/quotedbl       34
+/hyphen 45
+/eight  56
+/bracketright   93
+/exclam 33
+/comma  44
+/seven  55
+/backslash      92
+/sterling       163
+/guillemotright 187
+/dieresis       168
+/space  32
+/plus   43
+/six    54
+/bracketleft    91
+/cent   162
+/asterisk       42
+/five   53
+/at     64
+/exclamdown     161
+/parenright     41
+/four   52
+/question       63
+/asciitilde     126
+/guillemotleft  171
+/macron 175
+/parenleft      40
+/three  51
+/greater        62
+/braceright     125
+/NUL    0
+/STX    2
+/SOH    1
+/W      87
+/b      98
+/m      109
+/x      120
+/K      75
+/V      86
+/a      97
+/l      108
+/w      119
+/J      74
+/U      85
+/k      107
+/v      118
+/I      73
+/T      84
+/j      106
+/u      117
+/H      72
+/S      83
+/i      105
+/t      116
+/G      71
+/R      82
+/h      104
+/s      115
+/F      70
+/Q      81
+/g      103
+/r      114
+/E      69
+/P      80
+/f      102
+/copyright      169
+/q      113
+/D      68
+/O      79
+/Z      90
+/e      101
+/p      112
+/C      67
+/N      78
+/Y      89
+/d      100
+/o      111
+/z      122
+/B      66
+/M      77
+/X      88
+/c      99
+/n      110
+/y      121
+/A      65
+/L      76
+>> /Decoding defineresource pop
+

Added: trunk/Master/tlpkg/tlgs/Resource/Decoding/StandardEncoding
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Decoding/StandardEncoding	                        (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Decoding/StandardEncoding	2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,172 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% 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.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc.,  7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA  94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% Decoding for StandardEncoding
+% Maps StandardEncoding character codes to PS character names.
+
+/StandardEncoding
+<<
+/.notdef        0
+/space  32
+/exclam 33
+/quotedbl       34
+/numbersign     35
+/dollar 36
+/percent        37
+/ampersand      38
+/quoteright     39
+/parenleft      40
+/parenright     41
+/asterisk       42
+/plus   43
+/comma  44
+/hyphen 45
+/period 46
+/slash  47
+/zero   48
+/one    49
+/two    50
+/three  51
+/four   52
+/five   53
+/six    54
+/seven  55
+/eight  56
+/nine   57
+/colon  58
+/semicolon      59
+/less   60
+/equal  61
+/greater        62
+/question       63
+/at     64
+/A      65
+/B      66
+/C      67
+/D      68
+/E      69
+/F      70
+/G      71
+/H      72
+/I      73
+/J      74
+/K      75
+/L      76
+/M      77
+/N      78
+/O      79
+/P      80
+/Q      81
+/R      82
+/S      83
+/T      84
+/U      85
+/V      86
+/W      87
+/X      88
+/Y      89
+/Z      90
+/bracketleft    91
+/backslash      92
+/bracketright   93
+/asciicircum    94
+/underscore     95
+/quoteleft      96
+/a      97
+/b      98
+/c      99
+/d      100
+/e      101
+/f      102
+/g      103
+/h      104
+/i      105
+/j      106
+/k      107
+/l      108
+/m      109
+/n      110
+/o      111
+/p      112
+/q      113
+/r      114
+/s      115
+/t      116
+/u      117
+/v      118
+/w      119
+/x      120
+/y      121
+/z      122
+/braceleft      123
+/bar    124
+/braceright     125
+/asciitilde     126
+/exclamdown     161
+/cent   162
+/sterling       163
+/fraction       164
+/yen    165
+/florin 166
+/section        167
+/currency       168
+/quotesingle    169
+/quotedblleft   170
+/guillemotleft  171
+/guilsinglleft  172
+/guilsinglright 173
+/fi     174
+/fl     175
+/endash 177
+/dagger 178
+/daggerdbl      179
+/periodcentered 180
+/paragraph      182
+/bullet 183
+/quotesinglbase 184
+/quotedblbase   185
+/quotedblright  186
+/guillemotright 187
+/ellipsis       188
+/perthousand    189
+/questiondown   191
+/grave  193
+/acute  194
+/circumflex     195
+/tilde  196
+/macron 197
+/breve  198
+/dotaccent      199
+/dieresis       200
+/ring   202
+/cedilla        203
+/hungarumlaut   205
+/ogonek 206
+/caron  207
+/emdash 208
+/AE     225
+/ordfeminine    227
+/Lslash 232
+/Oslash 233
+/OE     234
+/ordmasculine   235
+/ae     241
+/dotlessi       245
+/lslash 248
+/oslash 249
+/oe     250
+/germandbls     251
+>>
+/Decoding defineresource pop

Added: trunk/Master/tlpkg/tlgs/Resource/Decoding/Unicode
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Decoding/Unicode	                        (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Decoding/Unicode	2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,4648 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% 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.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc.,  7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA  94903, U.S.A., +1(415)492-9861, for further information.
+%
+%
+% Unicode Decoding
+% Maps PS and TT names to Unicode UTF-16.
+
+% The file is in tabular format, with columns separated by exactly 2 spaces.
+% The 1st column is the Unicode value assigned to all names in that row.
+% The other columns contain glyph names based on the source these names 
+% came from; if a column contains more than 1 name, these are separated by 
+% exactly one space. So, WHITESPACE IS SIGNIFICANT (for documenting/editing purposes).
+%
+% The sources of glyph names in the current version of this file are, in column order:
+%
+% [AGLFN] Adobe Glyph List For New Fonts v1.7 dated November 6, 2008
+%         http://www.adobe.com/devnet-archive/opentype/archives/aglfn.txt
+% [AGLv2] Adobe Glyph List v2.0 dated September 20, 2002
+%         http://www.adobe.com/devnet-archive/opentype/archives/glyphlist.txt
+%         - this list is a strict superset of [AGLFN], and only names that are not
+%           already in [AGLFN] are present in this column.
+%         - mappings to sequences of UVs (decomposed ligatures) are
+%           commented out with a "%L#" at the beginning of the line.
+% [ZDGL2] ITC Zapf Dingbats Glyph List v2.0 dated September 20, 2002
+%         http://www.adobe.com/devnet-archive/opentype/archives/zapfdingbats.txt
+% [R9887] All names that were present in SVN revision 9887 of this file and
+%         are not included in any of the lists above.
+
+/Unicode         % resource name
+6514             % # of names
+/ParseDecoding /ProcSet findresource /Parse get exec
+
+16#0000        .null NUL
+16#0001    controlSTX    SOH
+16#0002    controlSOT    STX
+16#0003    controlETX    ETX
+16#0004    controlEOT    EOT
+16#0005    controlENQ    ENQ
+16#0006    controlACK    ACK
+16#0007    controlBEL    BEL
+16#0008    controlBS    BS
+16#0009    controlHT    HT
+16#000A    controlLF    LF
+16#000B    controlVT    VT
+16#000C    controlFF    FF
+16#000D    controlCR    CR nonmarkingreturn
+16#000E    controlSO    SO
+16#000F    controlSI    SI
+16#0010    controlDLE    DLE DC0
+16#0011    controlDC1    XON DC1
+16#0012    controlDC2    DC2
+16#0013    controlDC3    XOF DC3
+16#0014    controlDC4    DC4
+16#0015    controlNAK    NAK
+16#0016    controlSYN    SYN
+16#0017    controlETB    ETB
+16#0018    controlCAN    CAN
+16#0019    controlEM    EM
+16#001A    controlSUB    EOF SUB
+16#001B    controlESC    ESC
+16#001C    controlFS    IFS FS
+16#001D    controlGS    IGS GS
+16#001E    controlRS    IRS RS
+16#001F    controlUS    IUS US
+16#0020  space  spacehackarabic    SP010000
+16#0021  exclam      SP020000
+16#0022  quotedbl      SP040000
+16#0023  numbersign      SM010000
+16#0024  dollar      SC030000 milreis escudo
+16#0025  percent      SM020000
+16#0026  ampersand      SM030000
+16#0027  quotesingle      SP050000
+16#0028  parenleft      SP060000
+16#0029  parenright      SP070000
+16#002A  asterisk      SM040000
+16#002B  plus      SA010000
+16#002C  comma      SP080000
+16#002D  hyphen      SP100000 hyphen-minus hyphenminus
+16#002E  period      SP110000
+16#002F  slash      SP120000
+16#0030  zero      ND100000 zerodot zeroslash
+16#0031  one      ND010000
+16#0032  two      ND020000
+16#0033  three      ND030000
+16#0034  four      ND040000
+16#0035  five      ND050000
+16#0036  six      ND060000
+16#0037  seven      ND070000
+16#0038  eight      ND080000
+16#0039  nine      ND090000
+16#003A  colon      SP130000
+16#003B  semicolon      SP140000
+16#003C  less      SA030000
+16#003D  equal      SA040000
+16#003E  greater      SA050000
+16#003F  question      SP150000
+16#0040  at      SM050000
+16#0041  A      LA020000
+16#0042  B      LB020000
+16#0043  C      LC020000
+16#0044  D      LD020000
+16#0045  E      LE020000
+16#0046  F      LF020000
+16#0047  G      LG020000
+16#0048  H      LH020000
+16#0049  I      LI020000 Inodot
+16#004A  J      LJ020000
+16#004B  K      LK020000
+16#004C  L      LL020000
+16#004D  M      LM020000
+16#004E  N      LN020000
+16#004F  O      LO020000
+16#0050  P      LP020000
+16#0051  Q      LQ020000
+16#0052  R      LR020000
+16#0053  S      LS020000
+16#0054  T      LT020000
+16#0055  U      LU020000
+16#0056  V      LV020000
+16#0057  W      LW020000
+16#0058  X      LX020000
+16#0059  Y      LY020000
+16#005A  Z      LZ020000
+16#005B  bracketleft      SM060000
+16#005C  backslash      SM070000
+16#005D  bracketright      SM080000
+16#005E  asciicircum      SD150000
+16#005F  underscore      SP090000
+16#0060  grave      SD130000
+16#0061  a      LA010000
+16#0062  b      LB010000
+16#0063  c      LC010000
+16#0064  d      LD010000
+16#0065  e      LE010000
+16#0066  f      LF010000
+16#0067  g      LG010000
+16#0068  h      LH010000
+16#0069  i      LI010000
+16#006A  j      LJ010000
+16#006B  k      LK010000
+16#006C  l      LL010000
+16#006D  m      LM010000
+16#006E  n      LN010000
+16#006F  o      LO010000
+16#0070  p      LP010000
+16#0071  q      LQ010000
+16#0072  r      LR010000
+16#0073  s      LS010000
+16#0074  t      LT010000
+16#0075  u      LU010000
+16#0076  v      LV010000
+16#0077  w      LW010000
+16#0078  x      LX010000
+16#0079  y      LY010000
+16#007A  z      LZ010000
+16#007B  braceleft      SM110000
+16#007C  bar  verticalbar    SM130000
+16#007D  braceright      SM140000
+16#007E  asciitilde      SD190000
+16#007F    controlDEL    DEL
+16#0080        SP300000 c128
+16#0081        SP030000 c129
+16#0082        SC040000
+16#0083        SC020000
+16#0084        SC010000
+16#0085        SC050000
+16#0086        SM650000
+16#0087        SM240000
+16#0088        SD170000 diaeresis
+16#0089        SM520000
+16#008A        SM210000
+16#008B        SP170000
+16#008C        SM660000
+16#008D        SP320000 c141
+16#008E        SM530000 c142
+16#008F        SM150000 overstore c143
+16#0090        SM190000
+16#0091        SA020000
+16#0092        ND021000
+16#0093        ND031000
+16#0094        SD110000
+16#0095        SM170000 micro
+16#0096        SM250000
+16#0097        SD630000 periodcentered.0
+16#0098        SD410000
+16#0099        ND011000
+16#009A        SM200000
+16#009B        SP180000
+16#009C        NF040000
+16#009D        NF010000
+16#009E        NF050000
+16#009F        SP160000
+16#00A0    nbspace nonbreakingspace    LA140000
+16#00A1  exclamdown      LA120000
+16#00A2  cent      LA160000
+16#00A3  sterling      LA200000
+16#00A4  currency      LA180000
+16#00A5  yen      LA280000
+16#00A6  brokenbar      LA520000
+16#00A7  section      LC420000
+16#00A8  dieresis      LE140000
+16#00A9  copyright      LE120000
+16#00AA  ordfeminine      LE160000
+16#00AB  guillemotleft      LE180000
+16#00AC  logicalnot      LI140000
+16#00AD    sfthyphen softhyphen    LI120000
+16#00AE  registered      LI160000
+16#00AF  macron  overscore    LI180000
+16#00B0  degree
+16#00B1  plusminus      LN200000
+16#00B2    twosuperior    LO140000
+16#00B3    threesuperior    LO120000
+16#00B4  acute      LO160000
+16#00B5  mu  mu1    LO200000
+16#00B6  paragraph      LO180000
+16#00B7  periodcentered  middot    SA070000
+16#00B8  cedilla
+16#00B9    onesuperior    LU140000
+16#00BA  ordmasculine      LU120000
+16#00BB  guillemotright      LU160000
+16#00BC  onequarter      LU180000
+16#00BD  onehalf      LY120000
+16#00BE  threequarters      LT640000
+16#00BF  questiondown      LS610000
+16#00C0  Agrave      LA130000
+16#00C1  Aacute      LA110000
+16#00C2  Acircumflex      LA150000
+16#00C3  Atilde      LA190000
+16#00C4  Adieresis      LA170000
+16#00C5  Aring      LA270000
+16#00C6  AE      LA510000
+16#00C7  Ccedilla      LC410000
+16#00C8  Egrave      LE130000
+16#00C9  Eacute      LE110000
+16#00CA  Ecircumflex      LE150000
+16#00CB  Edieresis      LE170000
+16#00CC  Igrave      LI130000
+16#00CD  Iacute      LI110000
+16#00CE  Icircumflex      LI150000
+16#00CF  Idieresis      LI170000
+16#00D0  Eth      LD630000
+16#00D1  Ntilde      LN190000
+16#00D2  Ograve      LO130000
+16#00D3  Oacute      LO110000
+16#00D4  Ocircumflex      LO150000
+16#00D5  Otilde      LO190000
+16#00D6  Odieresis      LO170000
+16#00D7  multiply      SA060000
+16#00D8  Oslash
+16#00D9  Ugrave      LU130000
+16#00DA  Uacute      LU110000
+16#00DB  Ucircumflex      LU150000
+16#00DC  Udieresis      LU170000
+16#00DD  Yacute      LY110000
+16#00DE  Thorn      LT630000
+16#00DF  germandbls      LY170000
+16#00E0  agrave      LA620000
+16#00E1  aacute      LA610000
+16#00E2  acircumflex      LA240000
+16#00E3  atilde      LA230000
+16#00E4  adieresis      LA440000
+16#00E5  aring      LA430000
+16#00E6  ae      LC120000
+16#00E7  ccedilla      LC110000
+16#00E8  egrave      LC160000
+16#00E9  eacute      LC150000
+16#00EA  ecircumflex      LC300000
+16#00EB  edieresis      LC290000
+16#00EC  igrave      LC220000
+16#00ED  iacute      LC210000
+16#00EE  icircumflex      LD220000
+16#00EF  idieresis      LD210000 dquoteright
+16#00F0  eth      LD620000 Dbar Dmacron
+16#00F1  ntilde      LD610000 dbar
+16#00F2  ograve      LE620000
+16#00F3  oacute      LE610000
+16#00F4  ocircumflex      LE240000
+16#00F5  otilde      LE230000
+16#00F6  odieresis      LE300000
+16#00F7  divide      LE290000 c144
+16#00F8  oslash      LE440000
+16#00F9  ugrave      LE430000
+16#00FA  uacute      LE220000
+16#00FB  ucircumflex      LE210000
+16#00FC  udieresis      LG160000
+16#00FD  yacute      LG150000
+16#00FE  thorn      LG240000
+16#00FF  ydieresis      LG230000
+16#0100  Amacron      LG300000
+16#0101  amacron      LG290000 c158
+16#0102  Abreve      LG420000
+16#0103  abreve      LG110000
+16#0104  Aogonek      LH160000
+16#0105  aogonek      LH150000
+16#0106  Cacute      LH620000 Hmacron
+16#0107  cacute      LH610000 hmacron
+16#0108  Ccircumflex      LI200000
+16#0109  ccircumflex      LI190000
+16#010A  Cdotaccent  Cdot    LI620000
+16#010B  cdotaccent  cdot
+16#010C  Ccaron      LI240000
+16#010D  ccaron      LI230000
+16#010E  Dcaron      LI440000
+16#010F  dcaron      LI430000
+16#0110  Dcroat  Dslash    LI300000
+16#0111  dcroat  dmacron    LI610000 dslash
+16#0112  Emacron
+16#0113  emacron
+16#0114  Ebreve      LJ160000
+16#0115  ebreve      LJ150000
+16#0116  Edotaccent  Edot    LK420000
+16#0117  edotaccent  edot    LK410000
+16#0118  Eogonek      kra
+16#0119  eogonek      LL120000
+16#011A  Ecaron      LL110000
+16#011B  ecaron      LL420000
+16#011C  Gcircumflex      LL410000
+16#011D  gcircumflex      LL220000
+16#011E  Gbreve      LL210000
+16#011F  gbreve      LL640000
+16#0120  Gdotaccent  Gdot    LL630000
+16#0121  gdotaccent  gdot    LL620000
+16#0122    Gcedilla Gcommaaccent    LL610000
+16#0123    gcedilla gcommaaccent    LN120000
+16#0124  Hcircumflex      LN110000
+16#0125  hcircumflex      LN420000
+16#0126  Hbar      LN410000
+16#0127  hbar      LN220000
+16#0128  Itilde      LN210000
+16#0129  itilde      highcomman
+16#012A  Imacron
+16#012B  imacron
+16#012C  Ibreve      LO620000
+16#012D  ibreve      LO610000
+16#012E  Iogonek      LO240000
+16#012F  iogonek      LO230000
+16#0130  Idotaccent  Idot    LO260000
+16#0131  dotlessi      LO250000
+16#0132  IJ      LO520000
+16#0133  ij      LO510000
+16#0134  Jcircumflex      LR120000
+16#0135  jcircumflex      LR110000
+16#0136    Kcedilla Kcommaaccent    LR420000
+16#0137    kcedilla kcommaaccent    LR410000
+16#0138  kgreenlandic      LR220000
+16#0139  Lacute      LR210000
+16#013A  lacute      LS120000
+16#013B    Lcedilla Lcommaaccent    LS110000
+16#013C    lcedilla lcommaaccent    LS160000
+16#013D  Lcaron      LS150000
+16#013E  lcaron      LS420000
+16#013F  Ldot  Ldotaccent    LS410000
+16#0140  ldot  ldotaccent    LS220000
+16#0141  Lslash      LS210000
+16#0142  lslash      LT420000
+16#0143  Nacute      LT410000
+16#0144  nacute      LT220000
+16#0145    Ncedilla Ncommaaccent    LT210000 tquoteright
+16#0146    ncedilla ncommaaccent    LT620000 Tmacron
+16#0147  Ncaron      LT610000 tmacron
+16#0148  ncaron      LU200000
+16#0149  napostrophe  quoterightn    LU190000
+16#014A  Eng      LU620000
+16#014B  eng      LU610000
+16#014C  Omacron      LU240000
+16#014D  omacron      LU230000
+16#014E  Obreve      LU280000
+16#014F  obreve      LU270000
+16#0150  Ohungarumlaut  Odblacute    LU260000
+16#0151  ohungarumlaut  odblacute    LU250000
+16#0152  OE      LU440000
+16#0153  oe      LU430000
+16#0154  Racute      LW160000
+16#0155  racute      LW150000
+16#0156    Rcedilla Rcommaaccent    LY160000
+16#0157    rcedilla rcommaaccent    LY150000
+16#0158  Rcaron      LY180000
+16#0159  rcaron      LZ120000
+16#015A  Sacute      LZ110000
+16#015B  sacute      LZ300000
+16#015C  Scircumflex      LZ290000
+16#015D  scircumflex      LZ220000
+16#015E  Scedilla      LZ210000
+16#015F  scedilla
+16#0160  Scaron      bbar
+16#0161  scaron
+16#0162    Tcedilla Tcommaaccent
+16#0163    tcedilla tcommaaccent
+16#0164  Tcaron
+16#0165  tcaron
+16#0166  Tbar
+16#0167  tbar
+16#0168  Utilde
+16#0169  utilde      Dbar1
+16#016A  Umacron
+16#016B  umacron
+16#016C  Ubreve
+16#016D  ubreve      deltaturn
+16#016E  Uring      Eturn
+16#016F  uring
+16#0170  Uhungarumlaut  Udblacute    Epsilon1
+16#0171  uhungarumlaut  udblacute
+16#0172  Uogonek      SC070000 fscript
+16#0173  uogonek
+16#0174  Wcircumflex      Gamma1
+16#0175  wcircumflex
+16#0176  Ycircumflex      Iota1
+16#0177  ycircumflex      Ibar
+16#0178  Ydieresis
+16#0179  Zacute
+16#017A  zacute
+16#017B  Zdotaccent  Zdot    lambdabar
+16#017C  zdotaccent  zdot    mcapturn
+16#017D  Zcaron      Nhook
+16#017E  zcaron      nleg
+16#017F  longs  slong    Obar
+16#0180    bstroke
+16#0181    Bhook
+16#0182    Btopbar    OI
+16#0183    btopbar
+16#0184    Tonesix
+16#0185    tonesix
+16#0186    Oopen    YR
+16#0187    Chook
+16#0188    chook
+16#0189    Dafrican
+16#018A    Dhook    eshlooprev
+16#018B    Dtopbar
+16#018C    dtopbar
+16#018D    deltaturned
+16#018E    Ereversed    Trthook
+16#018F    Schwa
+16#0190    Eopen
+16#0191    Fhook    Upsilon2
+16#0192  florin      Vcursive
+16#0193    Ghook
+16#0194    Gammaafrican
+16#0195    hv    Zbar
+16#0196    Iotaafrican    zbar
+16#0197    Istroke    Yogh
+16#0198    Khook    Yoghrev
+16#0199    khook    yoghrev
+16#019A    lbar    yoghtail
+16#019B    lambdastroke    2bar
+16#019C    Mturned
+16#019D    Nhookleft
+16#019E    nlegrightlong    glottalstopbarinv
+16#019F    Ocenteredtilde
+16#01A0  Ohorn      pipe
+16#01A1  ohorn      pipedbl
+16#01A2    Oi    pipedblbar
+16#01A3    oi    exclam1
+16#01A4    Phook    DZhacek
+16#01A5    phook    Dzhacek
+16#01A6    yr    dzhacek
+16#01A7    Tonetwo
+16#01A8    tonetwo
+16#01A9    Esh
+16#01AA    eshreversedloop
+16#01AB    tpalatalhook
+16#01AC    Thook
+16#01AD    thook    Ahacek
+16#01AE    Tretroflexhook    ahacek
+16#01AF  Uhorn      Ihacek
+16#01B0  uhorn      ihacek
+16#01B1    Upsilonafrican    Ohacek
+16#01B2    Vhook    ohacek
+16#01B3    Yhook    Uhacek
+16#01B4    yhook    uhacek
+16#01B5    Zstroke
+16#01B6    zstroke
+16#01B7    Ezh
+16#01B8    Ezhreversed
+16#01B9    ezhreversed    Udieresishacek
+16#01BA    ezhtail    udieresishacek
+16#01BB    twostroke
+16#01BC    Tonefive
+16#01BD    tonefive    eturn
+16#01BE    glottalinvertedstroke
+16#01BF    wynn
+16#01C0    clickdental
+16#01C1    clicklateral
+16#01C2    clickalveolar
+16#01C3    clickretroflex
+16#01C4    DZcaron    Gbar
+16#01C5    Dzcaron    gbar
+16#01C6    dzcaron    Ghacek
+16#01C7    LJ    ghacek
+16#01C8    Lj    Khacek
+16#01C9    lj    khacek
+16#01CA    NJ
+16#01CB    Nj
+16#01CC    nj
+16#01CD    Acaron
+16#01CE    acaron    Yoghhacek
+16#01CF    Icaron    yoghhacek
+16#01D0    icaron    jhacek
+16#01D1    Ocaron
+16#01D2    ocaron
+16#01D3    Ucaron
+16#01D4    ucaron
+16#01D5    Udieresismacron
+16#01D6    udieresismacron
+16#01D7    Udieresisacute
+16#01D8    udieresisacute
+16#01D9    Udieresiscaron
+16#01DA    udieresiscaron    Aacutering
+16#01DB    Udieresisgrave    aacutering
+16#01DC    udieresisgrave
+16#01DD    eturned
+16#01DE    Adieresismacron
+16#01DF    adieresismacron
+16#01E0    Adotmacron    aturn
+16#01E1    adotmacron
+16#01E2    AEmacron    ascriptturn
+16#01E3    aemacron
+16#01E4    Gstroke    cturn
+16#01E5    gstroke
+16#01E6  Gcaron      drthook
+16#01E7  gcaron
+16#01E8    Kcaron    erev
+16#01E9    kcaron
+16#01EA    Oogonek
+16#01EB    oogonek    epsilon1
+16#01EC    Oogonekmacron    epsilon1rev
+16#01ED    oogonekmacron    epsilon1revhook
+16#01EE    Ezhcaron    epsilon1revclosed
+16#01EF    ezhcaron    jdotlessbar
+16#01F0    jcaron
+16#01F1    DZ    gcursive
+16#01F2    Dz    Gsmallcap
+16#01F3    dz    gamma1
+16#01F4    Gacute    babygamma
+16#01F5    gacute    hturn
+16#01F8        ibar
+16#01F9        iota1
+16#01FA  Aringacute      Ismallcap
+16#01FB  aringacute      lmidtilde
+16#01FC  AEacute
+16#01FD  aeacute      lrthook
+16#01FE  Oslashacute  Ostrokeacute    lyogh
+16#01FF  oslashacute  ostrokeacute    mturn
+16#0200    Adblgrave    mturndescend
+16#0201    adblgrave
+16#0202    Ainvertedbreve    nlftlfthook
+16#0203    ainvertedbreve    nrthook
+16#0204    Edblgrave    Nsmallcap
+16#0205    edblgrave    obar
+16#0206    Einvertedbreve    OEsmallcap
+16#0207    einvertedbreve    omegaclosed
+16#0208    Idblgrave
+16#0209    idblgrave    rturn
+16#020A    Iinvertedbreve    rturnascend
+16#020B    iinvertedbreve    rturnrthook rturnhook
+16#020C    Odblgrave    rdescend
+16#020D    odblgrave    rrthook
+16#020E    Oinvertedbreve
+16#020F    oinvertedbreve    rfishhookrev
+16#0210    Rdblgrave    Rsmallcap
+16#0211    rdblgrave    Rsmallcapinv
+16#0212    Rinvertedbreve    srthook
+16#0213    rinvertedbreve
+16#0214    Udblgrave    jhookdblbar
+16#0215    udblgrave    eshshortrev
+16#0216    Uinvertedbreve
+16#0217    uinvertedbreve    tturn
+16#0218    Scommaaccent    trthook
+16#0219    scommaaccent
+16#021B        vscript
+16#021C        vturn
+16#021D        wturn
+16#021E        yturn
+16#021F        Ysmallcap
+16#0220        zrthook
+16#0222        yogh
+16#0223        yoghcurl
+16#0225        glottalstoprevinv
+16#0226        glottalstopinv
+16#0227        cstretch
+16#0229        Bsmallcap
+16#022A        epsilonclosed
+16#022B        Gsmallcaphook
+16#022C        Hsmallcap
+16#022D        jcrosstail
+16#022E        kturn
+16#022F        Lsmallcap
+16#0231        glottalstopbar
+16#0232        glottalstopbarrev
+16#0234        dyogh
+16#0239        hsuper
+16#023A        hhooksuper
+16#023B        jsuper
+16#023C        rsuper
+16#023D        rturnsuper
+16#023E        rturnrthooksuper rturnhooksuper
+16#023F        Rturnsuper
+16#0240        wsuper
+16#0241        ysuper
+16#0243        primedblmod
+16#0244        quoteleftmod
+16#0245        apostrophe
+16#0246        apostropherev
+16#0247        ringrighthalfsuper
+16#0248        ringlefthalfsuper
+16#0249        glottal
+16#024A        glottalrev
+16#024B        fronted
+16#024C        backed
+16#024D        raised
+16#024E        lowered
+16#024F        SD150100
+16#0250    aturned    SD210000
+16#0251    ascript    linevert
+16#0252    ascriptturned    SD310000 overscore1 macron1
+16#0253    bhook    acute1
+16#0254    oopen    grave1
+16#0255    ccurl    linevertsub
+16#0256    dtail    macronsub
+16#0257    dhook    gravesub
+16#0258    ereversed    acutesub
+16#0259    schwa    length
+16#025A    schwahook    halflength
+16#025B    eopen    ringrighthalfcenter
+16#025C    eopenreversed    ringlefthalfsup
+16#025D    eopenreversedhook    tackupmid
+16#025E    eopenreversedclosed    tackdownmid
+16#025F    jdotlessstroke
+16#0260    ghook
+16#0261    gscript    SD230000
+16#0262        SD290000
+16#0263    gammalatinsmall    SD270000
+16#0264    ramshorn    SD430000
+16#0265    hturned    SD190100
+16#0266    hhook    SD250000
+16#0267    henghook    rhotichook
+16#0268    istroke
+16#0269    iotalatin    gammasuper
+16#026A        lsuper
+16#026B    lmiddletilde    ssuper
+16#026C    lbelt    xsuper
+16#026D    lhookretroflex    glottalrevsuper
+16#026E    lezh    toneextrahigh
+16#026F    mturned    tonehigh
+16#0270    mlonglegturned    tonemid
+16#0271    mhook    tonelow
+16#0272    nhookleft    toneextralow
+16#0273    nhookretroflex    gravenosp
+16#0274        acutenosp
+16#0275    obarred    circumflexnosp
+16#0276        tildenosp
+16#0277    omegalatinclosed    macronnosp
+16#0278    philatin    overscorenosp
+16#0279    rturned    brevenosp
+16#027A    rlonglegturned    dotnosp
+16#027B    rhookturned    dieresisnosp
+16#027C    rlongleg    hooksupnosp
+16#027D    rhook    ringnosp
+16#027E    rfishhook    acutedblnosp
+16#027F    rfishhookreversed    haceknosp
+16#0280        linevertnosp
+16#0281    Rsmallinverted    linevertdblnosp
+16#0282    shook    gravedblnosp
+16#0283    esh    candrabindunosp
+16#0284    dotlessjstrokehook    breveinvnosp
+16#0285    eshsquatreversed    commaturnsupnosp
+16#0286    eshcurl    apostrophesupnosp
+16#0287    tturned    commasuprevnosp
+16#0288    tretroflexhook    commasuprightnosp
+16#0289    ubar    gravesubnosp
+16#028A    upsilonlatin    acutesubnosp
+16#028B    vhook    tackleftsubnosp
+16#028C    vturned    tackrightsubnosp
+16#028D    wturned    anglesupnosp
+16#028E    yturned    hornnosp
+16#028F        ringlefthalfsubnosp
+16#0290    zretroflexhook    tackupsubnosp
+16#0291    zcurl    tackdownsubnosp
+16#0292    ezh    plussubnosp
+16#0293    ezhcurl    minussubnosp
+16#0294    glottalstop    hooksubpalatnosp
+16#0295    glottalstopreversed    hooksubretronosp
+16#0296    glottalstopinverted    dotsubnosp
+16#0297    cstretched    dotdblsubnosp
+16#0298    bilabialclick    ringsubnosp
+16#0299        commasubnosp
+16#029A    eopenclosed    cedillanosp
+16#029B    Gsmallhook    ogoneknosp
+16#029C        linevertsubnosp
+16#029D    jcrossedtail    bridgesubnosp
+16#029E    kturned    archdblsubnosp
+16#029F        haceksubnosp
+16#02A0    qhook    circumflexsubnosp
+16#02A1    glottalstopstroke    brevesubnosp
+16#02A2    glottalstopstrokereversed    breveinvsubnosp
+16#02A3    dzaltone    tildesubnosp
+16#02A4    dezh    macronsubnosp
+16#02A5    dzcurl    underscorenosp
+16#02A6    ts    underscoredblnosp
+16#02A7    tesh    tildemidnosp
+16#02A8    tccurl    barmidshortnosp
+16#02A9        barmidlongnosp
+16#02AA        slashshortnosp
+16#02AB        slashlongnosp
+16#02AC        ringrighthalfsubnosp
+16#02AD        bridgeinvsubnosp
+16#02AE        squaresubnosp
+16#02AF        seagullsubnosp
+16#02B0    hsuperior    xsupnosp
+16#02B1    hhooksuperior    tildevertsupnosp
+16#02B2    jsuperior    overscoredblnosp
+16#02B3        graveleftnosp
+16#02B4    rturnedsuperior    acuterightnosp
+16#02B5    rhookturnedsuperior
+16#02B6    Rsmallinvertedsuperior
+16#02B7    wsuperior    diaeresistonosnosp
+16#02B8    ysuperior    iotasubnosp
+16#02B9    primemod
+16#02BA    dblprimemod
+16#02BB    commaturnedmod
+16#02BC    afii57929 apostrophemod
+16#02BD    afii64937 commareversedmod    numeralgreek
+16#02BE    ringhalfright    numeralgreeksub
+16#02BF    ringhalfleft
+16#02C0    glottalstopmod
+16#02C1    glottalstopreversedmod
+16#02C2    arrowheadleftmod
+16#02C3    arrowheadrightmod    iotasub
+16#02C4    arrowheadupmod
+16#02C5    arrowheaddownmod
+16#02C6  circumflex
+16#02C7  caron
+16#02C8    verticallinemod
+16#02C9    firsttonechinese
+16#02CA    secondtonechinese
+16#02CB    fourthtonechinese
+16#02CC    verticallinelowmod
+16#02CD    macronlowmod
+16#02CE    gravelowmod    diaeresistonos
+16#02CF    acutelowmod
+16#02D0    colontriangularmod
+16#02D1    colontriangularhalfmod
+16#02D2    ringhalfrightcentered
+16#02D3    ringhalfleftcentered
+16#02D4    uptackmod
+16#02D5    downtackmod
+16#02D6    plusmod
+16#02D7    minusmod
+16#02D8  breve
+16#02D9  dotaccent      iotadiaeresistonos
+16#02DA  ring      GA020000
+16#02DB  ogonek      GB020000
+16#02DC  tilde  ilde    GG020000
+16#02DD  hungarumlaut      GD020000
+16#02DE    rhotichookmod    GE020000
+16#02E0    gammasuperior
+16#02E1        GT620000
+16#02E3    xsuperior
+16#02E4    glottalstopreversedsuperior
+16#02E5    tonebarextrahighmod
+16#02E6    tonebarhighmod
+16#02E7    tonebarmidmod
+16#02E8    tonebarlowmod
+16#02E9    tonebarextralowmod    GP020000
+16#02EC        GS020000
+16#02ED        GT020000
+16#02EF        GF020000
+16#02F2        GO320000
+16#02F3        Iotadiaeresis
+16#02F4        Upsilondiaeresis
+16#02F9        upsilondiaeresistonos
+16#02FA        GA010000
+16#02FB        GB010000
+16#02FC        GG010000
+16#02FD        GD010000
+16#02FE        GE010000
+16#0300  gravecomb  gravecmb
+16#0301  acutecomb  acutecmb    GT610000
+16#0302    circumflexcmb
+16#0303  tildecomb  tildecmb
+16#0304    macroncmb
+16#0305    overlinecmb
+16#0306    brevecmb
+16#0307    dotaccentcmb
+16#0308    dieresiscmb
+16#0309  hookabovecomb  hookcmb    GP010000
+16#030A    ringcmb
+16#030B    hungarumlautcmb
+16#030C    caroncmb    GS010000
+16#030D    verticallineabovecmb    GT010000
+16#030E    dblverticallineabovecmb
+16#030F    dblgravecmb    GF010000
+16#0310    candrabinducmb
+16#0311    breveinvertedcmb
+16#0312    commaturnedabovecmb    GO310000
+16#0313    commaabovecmb    iotadiaeresis
+16#0314    commareversedabovecmb    upsilondiaeresis
+16#0315    commaaboverightcmb
+16#0316    gravebelowcmb
+16#0317    acutebelowcmb
+16#0318    lefttackbelowcmb
+16#0319    righttackbelowcmb    beta1
+16#031A    leftangleabovecmb
+16#031B    horncmb
+16#031C    ringhalfleftbelowcmb    Upsilon1tonos
+16#031D    uptackbelowcmb    Upsilon1diaeresis Upsilon1dieresis
+16#031E    downtackbelowcmb
+16#031F    plusbelowcmb    pi1
+16#0320    minusbelowcmb
+16#0321    hookpalatalizedbelowcmb
+16#0322    hookretroflexbelowcmb
+16#0323  dotbelowcomb  dotbelowcmb    Stigma
+16#0324    dieresisbelowcmb
+16#0325    ringbelowcmb    Digamma
+16#0327    cedillacmb    Koppa
+16#0328    ogonekcmb
+16#0329    verticallinebelowcmb    Sampi
+16#032A    bridgebelowcmb
+16#032B    dblarchinvertedbelowcmb
+16#032C    caronbelowcmb
+16#032D    circumflexbelowcmb
+16#032E    brevebelowcmb
+16#032F    breveinvertedbelowcmb
+16#0330    tildebelowcmb
+16#0331    macronbelowcmb
+16#0332    lowlinecmb
+16#0333    dbllowlinecmb
+16#0334    tildeoverlaycmb
+16#0335    strokeshortoverlaycmb
+16#0336    strokelongoverlaycmb
+16#0337    solidusshortoverlaycmb    Dei
+16#0338    soliduslongoverlaycmb    dei
+16#0339    ringhalfrightbelowcmb    kappa1
+16#033A    bridgeinvertedbelowcmb    rho1
+16#033B    squarebelowcmb    sigmalunate
+16#033C    seagullbelowcmb
+16#033D    xabovecmb
+16#033E    tildeverticalcmb
+16#033F    dbloverlinecmb
+16#0340    gravetonecmb
+16#0341    acutetonecmb
+16#0342    perispomenigreekcmb
+16#0343    koroniscmb
+16#0344    dialytikatonoscmb
+16#0345    ypogegrammenigreekcmb
+16#0360    tildedoublecmb
+16#0361    breveinverteddoublecmb
+16#0374    numeralsigngreek
+16#0375    numeralsignlowergreek
+16#037A    ypogegrammeni
+16#037E    questiongreek
+16#0384  tonos
+16#0385  dieresistonos  dialytikatonos
+16#0386  Alphatonos
+16#0387  anoteleia
+16#0388  Epsilontonos
+16#0389  Etatonos
+16#038A  Iotatonos
+16#038C  Omicrontonos
+16#038E  Upsilontonos
+16#038F  Omegatonos
+16#0390  iotadieresistonos
+16#0391  Alpha
+16#0392  Beta
+16#0393  Gamma
+16#0394    Deltagreek
+16#0395  Epsilon
+16#0396  Zeta
+16#0397  Eta
+16#0398  Theta
+16#0399  Iota
+16#039A  Kappa
+16#039B  Lambda
+16#039C  Mu
+16#039D  Nu
+16#039E  Xi      Yat
+16#039F  Omicron      yat
+16#03A0  Pi
+16#03A1  Rho
+16#03A3  Sigma
+16#03A4  Tau
+16#03A5  Upsilon
+16#03A6  Phi      Yusbig
+16#03A7  Chi      yusbig
+16#03A8  Psi
+16#03A9    Omegagreek
+16#03AA  Iotadieresis
+16#03AB  Upsilondieresis
+16#03AC  alphatonos
+16#03AD  epsilontonos
+16#03AE  etatonos
+16#03AF  iotatonos
+16#03B0  upsilondieresistonos
+16#03B1  alpha
+16#03B2  beta
+16#03B3  gamma
+16#03B4  delta
+16#03B5  epsilon
+16#03B6  zeta
+16#03B7  eta
+16#03B8  theta
+16#03B9  iota
+16#03BA  kappa
+16#03BB  lambda
+16#03BC    mugreek
+16#03BD  nu
+16#03BE  xi
+16#03BF  omicron
+16#03C0  pi
+16#03C1  rho
+16#03C2  sigma1  sigmafinal
+16#03C3  sigma
+16#03C4  tau
+16#03C5  upsilon
+16#03C6  phi
+16#03C7  chi
+16#03C8  psi
+16#03C9  omega
+16#03CA  iotadieresis
+16#03CB  upsilondieresis
+16#03CC  omicrontonos
+16#03CD  upsilontonos
+16#03CE  omegatonos      Gebar
+16#03CF        gebar
+16#03D0    betasymbolgreek    Gehook
+16#03D1  theta1  thetasymbolgreek    gehook
+16#03D2  Upsilon1  Upsilonhooksymbol    Zhertdes
+16#03D3    Upsilonacutehooksymbolgreek    zhertdes
+16#03D4    Upsilondieresishooksymbolgreek    Zecedilla
+16#03D5  phi1  phisymbolgreek    zecedilla
+16#03D6  omega1  pisymbolgreek    Kartdes
+16#03D7        kartdes
+16#03D8        Kavertbar
+16#03D9        kavertbar
+16#03DA    Stigmagreek    Kabar
+16#03DB        kabar
+16#03DC    Digammagreek    GeKarev
+16#03DD        gekarev
+16#03DE    Koppagreek    Enrtdes
+16#03DF        enrtdes
+16#03E0    Sampigreek    EnGe
+16#03E1        enge
+16#03E2    Sheicoptic    Pehook
+16#03E3    sheicoptic    pehook
+16#03E4    Feicoptic    Ohook
+16#03E5    feicoptic    ohook
+16#03E6    Kheicoptic    Escedilla
+16#03E7    kheicoptic    escedilla
+16#03E8    Horicoptic    Tertdes
+16#03E9    horicoptic    tertdes
+16#03EA    Gangiacoptic    Ustrt
+16#03EB    gangiacoptic    ustrt
+16#03EC    Shimacoptic    Ustrtbar
+16#03ED    shimacoptic    ustrtbar
+16#03EE    Deicoptic    Khartdes
+16#03EF    deicoptic    khartdes
+16#03F0    kappasymbolgreek    TeTse
+16#03F1    rhosymbolgreek    tetse
+16#03F2    sigmalunatesymbolgreek    Chertdes
+16#03F3    yotgreek    chertdes
+16#03F4        Chevertbar
+16#03F5        chevertbar
+16#03F6        Hcyril
+16#03F7        hcyril
+16#03F8        Iehook
+16#03F9        iehook
+16#03FA        Iehookogonek
+16#03FB        iehookogonek
+16#03FC        Icyril1
+16#03FD        Zhebreve
+16#03FE        zhebreve
+16#03FF        Kahook
+16#0400        kahook
+16#0401    afii10023 Iocyrillic    Io
+16#0402    afii10051 Djecyrillic    Dje
+16#0403    afii10052 Gjecyrillic    Gje
+16#0404    afii10053 Ecyrillic    Ecyril
+16#0405    afii10054 Dzecyrillic    Dze
+16#0406    afii10055 Icyrillic    Icyril
+16#0407    afii10056 Yicyrillic    Yi
+16#0408    afii10057 Jecyrillic    Je
+16#0409    afii10058 Ljecyrillic    Lje
+16#040A    afii10059 Njecyrillic    Nje
+16#040B    afii10060 Tshecyrillic    Tshe
+16#040C    afii10061 Kjecyrillic    Kje
+16#040E    afii10062 Ushortcyrillic    Ucyrilbreve
+16#040F    afii10145 Dzhecyrillic    Dzhe
+16#0410    Acyrillic afii10017    Acyril
+16#0411    afii10018 Becyrillic    Be
+16#0412    afii10019 Vecyrillic    Ve
+16#0413    afii10020 Gecyrillic    Ge
+16#0414    afii10021 Decyrillic    De
+16#0415    afii10022 Iecyrillic    Ie
+16#0416    afii10024 Zhecyrillic    Zhe
+16#0417    afii10025 Zecyrillic    Ze
+16#0418    afii10026 Iicyrillic    Ii
+16#0419    afii10027 Iishortcyrillic    Iibreve
+16#041A    afii10028 Kacyrillic    Ka
+16#041B    afii10029 Elcyrillic    El
+16#041C    afii10030 Emcyrillic    Em
+16#041D    afii10031 Encyrillic    En
+16#041E    afii10032 Ocyrillic    Ocyril
+16#041F    afii10033 Pecyrillic    Pecyril
+16#0420    afii10034 Ercyrillic    Er
+16#0421    afii10035 Escyrillic    Es
+16#0422    afii10036 Tecyrillic    Te
+16#0423    afii10037 Ucyrillic    Ucyril
+16#0424    afii10038 Efcyrillic    Ef
+16#0425    afii10039 Khacyrillic    Kha
+16#0426    afii10040 Tsecyrillic    Tse
+16#0427    afii10041 Checyrillic    Che
+16#0428    afii10042 Shacyrillic    Sha
+16#0429    afii10043 Shchacyrillic    Shcha
+16#042A    afii10044 Hardsigncyrillic    Hard
+16#042B    afii10045 Yericyrillic    Yeri
+16#042C    afii10046 Softsigncyrillic    Soft
+16#042D    afii10047 Ereversedcyrillic    Ecyrilrev
+16#042E    afii10048 IUcyrillic    Iu
+16#042F    afii10049 IAcyrillic    Ia
+16#0430    acyrillic afii10065    acyril
+16#0431    afii10066 becyrillic    be
+16#0432    afii10067 vecyrillic    ve
+16#0433    afii10068 gecyrillic    ge
+16#0434    afii10069 decyrillic    de
+16#0435    afii10070 iecyrillic    ie
+16#0436    afii10072 zhecyrillic    zhe
+16#0437    afii10073 zecyrillic    ze
+16#0438    afii10074 iicyrillic    ii
+16#0439    afii10075 iishortcyrillic    iibreve
+16#043A    afii10076 kacyrillic    ka
+16#043B    afii10077 elcyrillic    el
+16#043C    afii10078 emcyrillic    em
+16#043D    afii10079 encyrillic    en
+16#043E    afii10080 ocyrillic    ocyril
+16#043F    afii10081 pecyrillic    pecyril
+16#0440    afii10082 ercyrillic    er
+16#0441    afii10083 escyrillic    es
+16#0442    afii10084 tecyrillic    te
+16#0443    afii10085 ucyrillic    ucyril
+16#0444    afii10086 efcyrillic    ef
+16#0445    afii10087 khacyrillic    kha
+16#0446    afii10088 tsecyrillic    tse
+16#0447    afii10089 checyrillic    che
+16#0448    afii10090 shacyrillic    sha
+16#0449    afii10091 shchacyrillic    shcha
+16#044A    afii10092 hardsigncyrillic    hard
+16#044B    afii10093 yericyrillic    yeri
+16#044C    afii10094 softsigncyrillic    soft
+16#044D    afii10095 ereversedcyrillic    ecyrilrev
+16#044E    afii10096 iucyrillic    iu
+16#044F    afii10097 iacyrillic    ia
+16#0451    afii10071 iocyrillic    io
+16#0452    afii10099 djecyrillic    dje
+16#0453    afii10100 gjecyrillic    gje
+16#0454    afii10101 ecyrillic    ecyril
+16#0455    afii10102 dzecyrillic    dze
+16#0456    afii10103 icyrillic    icyril
+16#0457    afii10104 yicyrillic    yi
+16#0458    afii10105 jecyrillic    je
+16#0459    afii10106 ljecyrillic    lje
+16#045A    afii10107 njecyrillic    nje
+16#045B    afii10108 tshecyrillic    tshe
+16#045C    afii10109 kjecyrillic    kje
+16#045E    afii10110 ushortcyrillic    ucyrilbreve
+16#045F    afii10193 dzhecyrillic    dzhe
+16#0460    Omegacyrillic
+16#0461    omegacyrillic
+16#0462    afii10146 Yatcyrillic
+16#0463    afii10194 yatcyrillic
+16#0464    Eiotifiedcyrillic
+16#0465    eiotifiedcyrillic
+16#0466    Yuslittlecyrillic
+16#0467    yuslittlecyrillic
+16#0468    Yuslittleiotifiedcyrillic
+16#0469    yuslittleiotifiedcyrillic
+16#046A    Yusbigcyrillic
+16#046B    yusbigcyrillic
+16#046C    Yusbigiotifiedcyrillic
+16#046D    yusbigiotifiedcyrillic
+16#046E    Ksicyrillic
+16#046F    ksicyrillic
+16#0470    Psicyrillic
+16#0471    psicyrillic
+16#0472    afii10147 Fitacyrillic
+16#0473    afii10195 fitacyrillic
+16#0474    afii10148 Izhitsacyrillic
+16#0475    afii10196 izhitsacyrillic    afii10190
+16#0476    Izhitsadblgravecyrillic
+16#0477    izhitsadblgravecyrillic
+16#0478    Ukcyrillic
+16#0479    ukcyrillic
+16#047A    Omegaroundcyrillic
+16#047B    omegaroundcyrillic
+16#047C    Omegatitlocyrillic
+16#047D    omegatitlocyrillic
+16#047E    Otcyrillic
+16#047F    otcyrillic
+16#0480    Koppacyrillic
+16#0481    koppacyrillic
+16#0482    thousandcyrillic
+16#0483    titlocyrilliccmb
+16#0484    palatalizationcyrilliccmb
+16#0485    dasiapneumatacyrilliccmb
+16#0486    psilipneumatacyrilliccmb
+16#0490    afii10050 Gheupturncyrillic    Geupturn
+16#0491    afii10098 gheupturncyrillic    geupturn
+16#0492    Ghestrokecyrillic
+16#0493    ghestrokecyrillic
+16#0494    Ghemiddlehookcyrillic
+16#0495    ghemiddlehookcyrillic
+16#0496    Zhedescendercyrillic
+16#0497    zhedescendercyrillic
+16#0498    Zedescendercyrillic
+16#0499    zedescendercyrillic
+16#049A    Kadescendercyrillic
+16#049B    kadescendercyrillic
+16#049C    Kaverticalstrokecyrillic
+16#049D    kaverticalstrokecyrillic
+16#049E    Kastrokecyrillic
+16#049F    kastrokecyrillic
+16#04A0    Kabashkircyrillic
+16#04A1    kabashkircyrillic
+16#04A2    Endescendercyrillic
+16#04A3    endescendercyrillic
+16#04A4    Enghecyrillic
+16#04A5    enghecyrillic
+16#04A6    Pemiddlehookcyrillic
+16#04A7    pemiddlehookcyrillic
+16#04A8    Haabkhasiancyrillic
+16#04A9    haabkhasiancyrillic
+16#04AA    Esdescendercyrillic
+16#04AB    esdescendercyrillic
+16#04AC    Tedescendercyrillic
+16#04AD    tedescendercyrillic
+16#04AE    Ustraightcyrillic
+16#04AF    ustraightcyrillic
+16#04B0    Ustraightstrokecyrillic
+16#04B1    ustraightstrokecyrillic
+16#04B2    Hadescendercyrillic
+16#04B3    hadescendercyrillic
+16#04B4    Tetsecyrillic
+16#04B5    tetsecyrillic    Lcircumflex
+16#04B6    Chedescendercyrillic    lcircumflex
+16#04B7    chedescendercyrillic
+16#04B8    Cheverticalstrokecyrillic
+16#04B9    cheverticalstrokecyrillic
+16#04BA    Shhacyrillic
+16#04BB    shhacyrillic
+16#04BC    Cheabkhasiancyrillic
+16#04BD    cheabkhasiancyrillic
+16#04BE    Chedescenderabkhasiancyrillic
+16#04BF    chedescenderabkhasiancyrillic
+16#04C0    palochkacyrillic
+16#04C1    Zhebrevecyrillic
+16#04C2    zhebrevecyrillic
+16#04C3    Kahookcyrillic
+16#04C4    kahookcyrillic
+16#04C7    Enhookcyrillic
+16#04C8    enhookcyrillic
+16#04CB    Chekhakassiancyrillic
+16#04CC    chekhakassiancyrillic
+16#04D0    Abrevecyrillic
+16#04D1    abrevecyrillic
+16#04D2    Adieresiscyrillic
+16#04D3    adieresiscyrillic
+16#04D4    Aiecyrillic
+16#04D5    aiecyrillic
+16#04D6    Iebrevecyrillic
+16#04D7    iebrevecyrillic
+16#04D8    Schwacyrillic
+16#04D9    afii10846 schwacyrillic
+16#04DA    Schwadieresiscyrillic
+16#04DB    schwadieresiscyrillic
+16#04DC    Zhedieresiscyrillic
+16#04DD    zhedieresiscyrillic
+16#04DE    Zedieresiscyrillic
+16#04DF    zedieresiscyrillic
+16#04E0    Dzeabkhasiancyrillic
+16#04E1    dzeabkhasiancyrillic
+16#04E2    Imacroncyrillic
+16#04E3    imacroncyrillic
+16#04E4    Idieresiscyrillic
+16#04E5    idieresiscyrillic
+16#04E6    Odieresiscyrillic
+16#04E7    odieresiscyrillic
+16#04E8    Obarredcyrillic
+16#04E9    obarredcyrillic
+16#04EA    Obarreddieresiscyrillic
+16#04EB    obarreddieresiscyrillic
+16#04EE    Umacroncyrillic
+16#04EF    umacroncyrillic
+16#04F0    Udieresiscyrillic
+16#04F1    udieresiscyrillic
+16#04F2    Uhungarumlautcyrillic
+16#04F3    uhungarumlautcyrillic
+16#04F4    Chedieresiscyrillic
+16#04F5    chedieresiscyrillic
+16#04F8    Yerudieresiscyrillic
+16#04F9    yerudieresiscyrillic
+16#0531    Aybarmenian
+16#0532    Benarmenian
+16#0533    Gimarmenian
+16#0534    Daarmenian
+16#0535    Echarmenian
+16#0536    Zaarmenian
+16#0537    Eharmenian
+16#0538    Etarmenian
+16#0539    Toarmenian
+16#053A    Zhearmenian
+16#053B    Iniarmenian
+16#053C    Liwnarmenian
+16#053D    Xeharmenian
+16#053E    Caarmenian
+16#053F    Kenarmenian
+16#0540    Hoarmenian
+16#0541    Jaarmenian
+16#0542    Ghadarmenian
+16#0543    Cheharmenian
+16#0544    Menarmenian
+16#0545    Yiarmenian
+16#0546    Nowarmenian
+16#0547    Shaarmenian
+16#0548    Voarmenian
+16#0549    Chaarmenian
+16#054A    Peharmenian
+16#054B    Jheharmenian
+16#054C    Raarmenian
+16#054D    Seharmenian
+16#054E    Vewarmenian
+16#054F    Tiwnarmenian
+16#0550    Reharmenian
+16#0551    Coarmenian
+16#0552    Yiwnarmenian
+16#0553    Piwrarmenian
+16#0554    Keharmenian
+16#0555    Oharmenian
+16#0556    Feharmenian
+16#0559    ringhalfleftarmenian
+16#055A    apostrophearmenian
+16#055B    emphasismarkarmenian
+16#055C    exclamarmenian
+16#055D    commaarmenian
+16#055E    questionarmenian
+16#055F    abbreviationmarkarmenian
+16#0561    aybarmenian
+16#0562    benarmenian
+16#0563    gimarmenian
+16#0564    daarmenian
+16#0565    echarmenian
+16#0566    zaarmenian
+16#0567    eharmenian
+16#0568    etarmenian
+16#0569    toarmenian
+16#056A    zhearmenian
+16#056B    iniarmenian
+16#056C    liwnarmenian
+16#056D    xeharmenian
+16#056E    caarmenian
+16#056F    kenarmenian
+16#0570    hoarmenian
+16#0571    jaarmenian
+16#0572    ghadarmenian
+16#0573    cheharmenian
+16#0574    menarmenian
+16#0575    yiarmenian
+16#0576    nowarmenian
+16#0577    shaarmenian
+16#0578    voarmenian
+16#0579    chaarmenian    SM300000
+16#057A    peharmenian    SM320000
+16#057B    jheharmenian    SM310000
+16#057C    raarmenian    SM330000
+16#057D    seharmenian    SM780000 arrowlongboth
+16#057E    vewarmenian    SM760000 arrowlongbothv
+16#057F    tiwnarmenian    arrownorthwest
+16#0580    reharmenian    arrownortheast
+16#0581    coarmenian    arrowsoutheast
+16#0582    yiwnarmenian    arrowsouthwest
+16#0583    piwrarmenian    arrowleftnot
+16#0584    keharmenian    arrowrightnot
+16#0585    oharmenian    arrowwaveleft
+16#0586    feharmenian    arrowwaveright
+16#0587    echyiwnarmenian    dblarrowheadleft
+16#0588        dblarrowheadup
+16#0589    periodarmenian    dblarrowheadright
+16#058A        dblarrowheaddown
+16#058B        arrowtailleft
+16#058C        arrowtailright
+16#058D        arrowbarleft
+16#058E        arrowbarup
+16#058F        arrowbarright
+16#0590        arrowbardown
+16#0591    etnahtafoukhhebrew etnahtafoukhlefthebrew etnahtahebrew etnahtalefthebrew    SM770000 arrowbothvbase
+16#0592    segoltahebrew    arrowhookleft
+16#0593    shalshelethebrew    arrowhookright
+16#0594    zaqefqatanhebrew    arrowloopleft
+16#0595    zaqefgadolhebrew    arrowloopright
+16#0596    tipehahebrew tipehalefthebrew    arrowwaveboth
+16#0597    reviahebrew reviamugrashhebrew    arrowlongbothnot
+16#0598    zarqahebrew    arrowzigzag
+16#0599    pashtahebrew    null
+16#059A    yetivhebrew    startofhead
+16#059B    tevirhebrew tevirlefthebrew    starttext
+16#059C    gereshaccenthebrew    endtext
+16#059D    gereshmuqdamhebrew    endtrans
+16#059E    gershayimaccenthebrew    enquiry
+16#059F    qarneyparahebrew    acknowledge
+16#05A0    telishagedolahebrew    bell
+16#05A1    pazerhebrew    backspace
+16#05A2        horiztab
+16#05A3    munahhebrew munahlefthebrew    linefeed
+16#05A4    mahapakhhebrew mahapakhlefthebrew    verttab
+16#05A5    merkhahebrew merkhalefthebrew    formfeed
+16#05A6    merkhakefulahebrew merkhakefulalefthebrew
+16#05A7    dargahebrew dargalefthebrew    shiftout
+16#05A8    qadmahebrew    shiftin
+16#05A9    telishaqetanahebrew    datalinkescape devcon0
+16#05AA    yerahbenyomohebrew yerahbenyomolefthebrew    auxiliaryon devcon1
+16#05AB    olehebrew    devcon2
+16#05AC    iluyhebrew    auxiliaryoff devcon3
+16#05AD    dehihebrew    devcon4
+16#05AE    zinorhebrew    negacknowledge
+16#05AF    masoracirclehebrew    synch
+16#05B0    afii57799 sheva sheva115 sheva15 sheva22 sheva2e shevahebrew shevanarrowhebrew shevaquarterhebrew shevawidehebrew    endtransblock
+16#05B1    afii57801 hatafsegol hatafsegol17 hatafsegol24 hatafsegol30 hatafsegolhebrew hatafsegolnarrowhebrew hatafsegolquarterhebrew hatafsegolwidehebrew    cancel
+16#05B2    afii57800 hatafpatah hatafpatah16 hatafpatah23 hatafpatah2f hatafpatahhebrew hatafpatahnarrowhebrew hatafpatahquarterhebrew hatafpatahwidehebrew    endmedium
+16#05B3    afii57802 hatafqamats hatafqamats1b hatafqamats28 hatafqamats34 hatafqamatshebrew hatafqamatsnarrowhebrew hatafqamatsquarterhebrew hatafqamatswidehebrew    substitute endoffile
+16#05B4    afii57793 hiriq hiriq14 hiriq21 hiriq2d hiriqhebrew hiriqnarrowhebrew hiriqquarterhebrew hiriqwidehebrew    escape
+16#05B5    afii57794 tsere tsere12 tsere1e tsere2b tserehebrew tserenarrowhebrew tserequarterhebrew tserewidehebrew    fileseparator
+16#05B6    afii57795 segol segol13 segol1f segol2c segolhebrew segolnarrowhebrew segolquarterhebrew segolwidehebrew    groupseparator
+16#05B7    afii57798 patah patah11 patah1d patah2a patahhebrew patahnarrowhebrew patahquarterhebrew patahwidehebrew    recordseparator
+16#05B8    afii57797 qamats qamats10 qamats1a qamats1c qamats27 qamats29 qamats33 qamatsde qamatshebrew qamatsnarrowhebrew qamatsqatanhebrew qamatsqatannarrowhebrew qamatsqatanquarterhebrew qamatsqatanwidehebrew qamatsquarterhebrew qamatswidehebrew    unitseparator
+16#05B9    afii57806 holam holam19 holam26 holam32 holamhebrew holamnarrowhebrew holamquarterhebrew holamwidehebrew    spaceliteral
+16#05BA        delete
+16#05BB    afii57796 qubuts qubuts18 qubuts25 qubuts31 qubutshebrew qubutsnarrowhebrew qubutsquarterhebrew qubutswidehebrew    qibuts blankb
+16#05BC    afii57807 dagesh dageshhebrew    spaceopenbox
+16#05BD    afii57839 siluqhebrew siluqlefthebrew    meteg newline
+16#05BE    afii57645 maqafhebrew    maqaf
+16#05BF    afii57841 rafe rafehebrew
+16#05C0    afii57842 paseqhebrew    paseq
+16#05C1    afii57804 shindothebrew    shindot
+16#05C2    afii57803 sindothebrew    sindot
+16#05C3    afii57658 sofpasuqhebrew    sofpasuq
+16#05C4    upperdothebrew
+16#05D0    afii57664 alef alefhebrew
+16#05D1    afii57665 bet bethebrew
+16#05D2    afii57666 gimel gimelhebrew
+16#05D3    afii57667 dalet dalethebrew
+%L#05D3_05B0    daletsheva daletshevahebrew
+%L#05D3_05B1    dalethatafsegol dalethatafsegolhebrew
+%L#05D3_05B2    dalethatafpatah dalethatafpatahhebrew
+%L#05D3_05B4    dalethiriq dalethiriqhebrew
+%L#05D3_05B5    dalettsere dalettserehebrew
+%L#05D3_05B6    daletsegol daletsegolhebrew
+%L#05D3_05B7    daletpatah daletpatahhebrew
+%L#05D3_05B8    daletqamats daletqamatshebrew
+%L#05D3_05B9    daletholam daletholamhebrew
+%L#05D3_05BB    daletqubuts daletqubutshebrew
+16#05D4    afii57668 he hehebrew
+16#05D5    afii57669 vav vavhebrew
+16#05D6    afii57670 zayin zayinhebrew
+16#05D7    afii57671 het hethebrew
+16#05D8    afii57672 tet tethebrew
+16#05D9    afii57673 yod yodhebrew
+16#05DA    afii57674 finalkaf finalkafhebrew    kaffinal
+%L#05DA_05B0    finalkafsheva finalkafshevahebrew
+%L#05DA_05B8    finalkafqamats finalkafqamatshebrew
+16#05DB    afii57675 kaf kafhebrew
+16#05DC    afii57676 lamed lamedhebrew
+%L#05DC_05B9    lamedholam lamedholamhebrew
+%L#05DC_05B9_05BC    lamedholamdagesh lamedholamdageshhebrew
+16#05DD    afii57677 finalmem finalmemhebrew    memfinal
+16#05DE    afii57678 mem memhebrew
+16#05DF    afii57679 finalnun finalnunhebrew    nunfinal
+16#05E0    afii57680 nun nunhebrew
+16#05E1    afii57681 samekh samekhhebrew
+16#05E2    afii57682 ayin ayinhebrew
+16#05E3    afii57683 finalpe finalpehebrew    pefinal
+16#05E4    afii57684 pe pehebrew
+16#05E5    afii57685 finaltsadi finaltsadihebrew    tsadifinal
+16#05E6    afii57686 tsadi tsadihebrew
+16#05E7    afii57687 qof qofhebrew
+%L#05E7_05B0    qofsheva qofshevahebrew
+%L#05E7_05B1    qofhatafsegol qofhatafsegolhebrew
+%L#05E7_05B2    qofhatafpatah qofhatafpatahhebrew
+%L#05E7_05B4    qofhiriq qofhiriqhebrew
+%L#05E7_05B5    qoftsere qoftserehebrew
+%L#05E7_05B6    qofsegol qofsegolhebrew
+%L#05E7_05B7    qofpatah qofpatahhebrew
+%L#05E7_05B8    qofqamats qofqamatshebrew
+%L#05E7_05B9    qofholam qofholamhebrew
+%L#05E7_05BB    qofqubuts qofqubutshebrew
+16#05E8    afii57688 resh reshhebrew
+%L#05E8_05B0    reshsheva reshshevahebrew
+%L#05E8_05B1    reshhatafsegol reshhatafsegolhebrew
+%L#05E8_05B2    reshhatafpatah reshhatafpatahhebrew
+%L#05E8_05B4    reshhiriq reshhiriqhebrew
+%L#05E8_05B5    reshtsere reshtserehebrew
+%L#05E8_05B6    reshsegol reshsegolhebrew
+%L#05E8_05B7    reshpatah reshpatahhebrew
+%L#05E8_05B8    reshqamats reshqamatshebrew
+%L#05E8_05B9    reshholam reshholamhebrew
+%L#05E8_05BB    reshqubuts reshqubutshebrew
+16#05E9    afii57689 shin shinhebrew
+16#05EA    afii57690 tav tavhebrew
+16#05F0    afii57716 vavvavhebrew    vavdbl
+16#05F1    afii57717 vavyodhebrew    vavyod
+16#05F2    afii57718 yodyodhebrew    yoddbl
+16#05F3    gereshhebrew    geresh
+16#05F4    gershayimhebrew    gershayim
+16#060C    afii57388 commaarabic    arabiccomma
+16#061B    afii57403 semicolonarabic    arabicsemicolon
+16#061F    afii57407 questionarabic    arabicquestionmark
+16#0621    afii57409 hamzaarabic hamzalowarabic    hamza
+%L#0621_064B    hamzafathatanarabic
+%L#0621_064C    hamzadammatanarabic
+%L#0621_064D    hamzalowkasratanarabic
+%L#0621_064E    hamzafathaarabic
+%L#0621_064F    hamzadammaarabic
+%L#0621_0650    hamzalowkasraarabic
+%L#0621_0652    hamzasukunarabic
+16#0622    afii57410 alefmaddaabovearabic    alefwithmaddaabove
+16#0623    afii57411 alefhamzaabovearabic    alefwithhamzaabove
+16#0624    afii57412 wawhamzaabovearabic    wawwithhamzaabove
+16#0625    afii57413 alefhamzabelowarabic    alefwithhamzabelow
+16#0626    afii57414 yehhamzaabovearabic    yehwithhamzaabove
+16#0627    afii57415 alefarabic    arabicalef
+16#0628    afii57416 beharabic    beh
+16#0629    afii57417 tehmarbutaarabic    tehmarbuta
+16#062A    afii57418 teharabic    teh
+16#062B    afii57419 theharabic    theh
+16#062C    afii57420 jeemarabic    jeem
+16#062D    afii57421 haharabic    hah
+16#062E    afii57422 khaharabic    khah
+16#062F    afii57423 dalarabic    dal
+16#0630    afii57424 thalarabic    thal
+16#0631    afii57425 reharabic    reh
+%L#0631_FEF3_FE8E_0644    rehyehaleflamarabic
+16#0632    afii57426 zainarabic    zain
+16#0633    afii57427 seenarabic    seen
+16#0634    afii57428 sheenarabic    sheen
+16#0635    afii57429 sadarabic    sad
+16#0636    afii57430 dadarabic    dad
+16#0637    afii57431 taharabic    tah
+16#0638    afii57432 zaharabic    zah
+16#0639    afii57433 ainarabic    ain
+16#063A    afii57434 ghainarabic    ghain
+16#0640    afii57440 kashidaautoarabic kashidaautonosidebearingarabic tatweelarabic    tatweel
+16#0641    afii57441 feharabic    feh
+16#0642    afii57442 qafarabic    qaf
+16#0643    afii57443 kafarabic    arabickaf
+16#0644    afii57444 lamarabic    lam
+16#0645    afii57445 meemarabic    meem
+16#0646    afii57446 noonarabic    noon
+16#0647    afii57470 heharabic    heh
+16#0648    afii57448 wawarabic    waw
+16#0649    afii57449 alefmaksuraarabic    alefmaksura
+16#064A    afii57450 yeharabic    yeh
+16#064B    afii57451 fathatanarabic    fathatan
+16#064C    afii57452 dammatanaltonearabic dammatanarabic    dammatan
+16#064D    afii57453 kasratanarabic    kasratan
+16#064E    afii57454 fathaarabic fathalowarabic    fatha
+16#064F    afii57455 dammaarabic dammalowarabic    damma
+16#0650    afii57456 kasraarabic    kasra
+16#0651    afii57457 shaddaarabic    shadda
+%L#0651_064B    shaddafathatanarabic
+16#0652    afii57458 sukunarabic    sukun
+16#0660    afii57392 zeroarabic zerohackarabic    arabicindicdigitzero
+16#0661    afii57393 onearabic onehackarabic    arabicindicdigitone
+16#0662    afii57394 twoarabic twohackarabic    arabicindicdigittwo
+16#0663    afii57395 threearabic threehackarabic    arabicindicdigitthree
+16#0664    afii57396 fourarabic fourhackarabic    arabicindicdigitfour
+16#0665    afii57397 fivearabic fivehackarabic    arabicindicdigitfive
+16#0666    afii57398 sixarabic sixhackarabic    arabicindicdigitsix
+16#0667    afii57399 sevenarabic sevenhackarabic    arabicindicdigitseven
+16#0668    afii57400 eightarabic eighthackarabic    arabicindicdigiteight
+16#0669    afii57401 ninearabic ninehackarabic    arabicindicdigitnine
+16#066A    afii57381 percentarabic    arabicpercentsign
+16#066B    decimalseparatorarabic decimalseparatorpersian
+16#066C    thousandsseparatorarabic thousandsseparatorpersian
+16#066D    afii63167 asteriskaltonearabic asteriskarabic    arabicfivepointedstar
+16#0670        superscriptalef
+16#0671        alefwasla
+16#0674        highhamza
+16#0679    afii57511 tteharabic
+16#067E    afii57506 peharabic    peh
+16#0686    afii57507 tcheharabic    tcheh
+16#0688    afii57512 ddalarabic
+16#0691    afii57513 rreharabic
+16#0698    afii57508 jeharabic    jeh
+16#06A4    afii57505 veharabic    veh
+16#06A9        keheh
+16#06AF    afii57509 gafarabic    gaf
+16#06BA    afii57514 noonghunnaarabic
+16#06C1    haaltonearabic hehaltonearabic
+16#06CC        farsiyeh
+16#06D1    yehthreedotsbelowarabic
+16#06D2    afii57519 yehbarreearabic
+16#06D5    afii57534    arabicae
+16#06E4        smallhighmadda
+16#06F0    zeropersian    extendedarabicindicdigitzero
+16#06F1    onepersian    extendedarabicindicdigitone
+16#06F2    twopersian    extendedarabicindicdigittwo
+16#06F3    threepersian    extendedarabicindicdigitthree
+16#06F4    fourpersian    extendedarabicindicdigitfour
+16#06F5    fivepersian    extendedarabicindicdigitfive
+16#06F6    sixpersian    extendedarabicindicdigitsix
+16#06F7    sevenpersian    extendedarabicindicdigitseven
+16#06F8    eightpersian    extendedarabicindicdigiteight
+16#06F9    ninepersian    extendedarabicindicdigitnine
+16#0901    candrabindudeva
+16#0902    anusvaradeva
+16#0903    visargadeva
+16#0905    adeva
+16#0906    aadeva
+16#0907    ideva
+16#0908    iideva
+16#0909    udeva
+16#090A    uudeva
+16#090B    rvocalicdeva
+16#090C    lvocalicdeva
+16#090D    ecandradeva
+16#090E    eshortdeva
+16#090F    edeva
+16#0910    aideva
+16#0911    ocandradeva
+16#0912    oshortdeva
+16#0913    odeva
+16#0914    audeva
+16#0915    kadeva
+16#0916    khadeva
+16#0917    gadeva
+16#0918    ghadeva
+16#0919    ngadeva
+16#091A    cadeva
+16#091B    chadeva
+16#091C    jadeva
+16#091D    jhadeva
+16#091E    nyadeva
+16#091F    ttadeva
+16#0920    tthadeva
+16#0921    ddadeva
+16#0922    ddhadeva
+16#0923    nnadeva
+16#0924    tadeva
+16#0925    thadeva
+16#0926    dadeva
+16#0927    dhadeva
+16#0928    nadeva
+16#0929    nnnadeva
+16#092A    padeva
+16#092B    phadeva
+16#092C    badeva
+16#092D    bhadeva
+16#092E    madeva
+16#092F    yadeva
+16#0930    radeva
+16#0931    rradeva
+16#0932    ladeva
+16#0933    lladeva
+16#0934    llladeva
+16#0935    vadeva
+16#0936    shadeva
+16#0937    ssadeva
+16#0938    sadeva
+16#0939    hadeva
+16#093C    nuktadeva
+16#093D    avagrahadeva
+16#093E    aavowelsigndeva
+16#093F    ivowelsigndeva
+16#0940    iivowelsigndeva
+16#0941    uvowelsigndeva
+16#0942    uuvowelsigndeva
+16#0943    rvocalicvowelsigndeva
+16#0944    rrvocalicvowelsigndeva
+16#0945    ecandravowelsigndeva
+16#0946    eshortvowelsigndeva
+16#0947    evowelsigndeva
+16#0948    aivowelsigndeva
+16#0949    ocandravowelsigndeva
+16#094A    oshortvowelsigndeva
+16#094B    ovowelsigndeva
+16#094C    auvowelsigndeva
+16#094D    viramadeva
+16#0950    omdeva
+16#0951    udattadeva
+16#0952    anudattadeva
+16#0953    gravedeva
+16#0954    acutedeva
+16#0958    qadeva
+16#0959    khhadeva
+16#095A    ghhadeva
+16#095B    zadeva
+16#095C    dddhadeva
+16#095D    rhadeva
+16#095E    fadeva
+16#095F    yyadeva
+16#0960    rrvocalicdeva
+16#0961    llvocalicdeva
+16#0962    lvocalicvowelsigndeva
+16#0963    llvocalicvowelsigndeva
+16#0964    danda
+16#0965    dbldanda
+16#0966    zerodeva
+16#0967    onedeva
+16#0968    twodeva
+16#0969    threedeva
+16#096A    fourdeva
+16#096B    fivedeva
+16#096C    sixdeva
+16#096D    sevendeva
+16#096E    eightdeva
+16#096F    ninedeva
+16#0970    abbreviationsigndeva
+16#0981    candrabindubengali
+16#0982    anusvarabengali
+16#0983    visargabengali
+16#0985    abengali
+16#0986    aabengali
+16#0987    ibengali
+16#0988    iibengali
+16#0989    ubengali
+16#098A    uubengali
+16#098B    rvocalicbengali
+16#098C    lvocalicbengali
+16#098F    ebengali
+16#0990    aibengali
+16#0993    obengali
+16#0994    aubengali
+16#0995    kabengali
+16#0996    khabengali
+16#0997    gabengali
+16#0998    ghabengali
+16#0999    ngabengali
+16#099A    cabengali
+16#099B    chabengali
+16#099C    jabengali
+16#099D    jhabengali
+16#099E    nyabengali
+16#099F    ttabengali
+16#09A0    tthabengali
+16#09A1    ddabengali
+16#09A2    ddhabengali
+16#09A3    nnabengali
+16#09A4    tabengali
+16#09A5    thabengali
+16#09A6    dabengali
+16#09A7    dhabengali
+16#09A8    nabengali
+16#09AA    pabengali
+16#09AB    phabengali
+16#09AC    babengali
+16#09AD    bhabengali
+16#09AE    mabengali
+16#09AF    yabengali
+16#09B0    rabengali
+16#09B2    labengali
+16#09B6    shabengali
+16#09B7    ssabengali
+16#09B8    sabengali
+16#09B9    habengali
+16#09BC    nuktabengali
+16#09BE    aavowelsignbengali
+16#09BF    ivowelsignbengali
+16#09C0    iivowelsignbengali
+16#09C1    uvowelsignbengali
+16#09C2    uuvowelsignbengali
+16#09C3    rvocalicvowelsignbengali
+16#09C4    rrvocalicvowelsignbengali
+16#09C7    evowelsignbengali
+16#09C8    aivowelsignbengali
+16#09CB    ovowelsignbengali
+16#09CC    auvowelsignbengali
+16#09CD    viramabengali
+16#09D7    aulengthmarkbengali
+16#09DC    rrabengali
+16#09DD    rhabengali
+16#09DF    yyabengali
+16#09E0    rrvocalicbengali
+16#09E1    llvocalicbengali
+16#09E2    lvocalicvowelsignbengali
+16#09E3    llvocalicvowelsignbengali
+16#09E6    zerobengali
+16#09E7    onebengali
+16#09E8    twobengali
+16#09E9    threebengali
+16#09EA    fourbengali
+16#09EB    fivebengali
+16#09EC    sixbengali
+16#09ED    sevenbengali
+16#09EE    eightbengali
+16#09EF    ninebengali
+16#09F0    ramiddlediagonalbengali
+16#09F1    ralowerdiagonalbengali
+16#09F2    rupeemarkbengali
+16#09F3    rupeesignbengali
+16#09F4    onenumeratorbengali
+16#09F5    twonumeratorbengali
+16#09F6    threenumeratorbengali
+16#09F7    fournumeratorbengali
+16#09F8    denominatorminusonenumeratorbengali
+16#09F9    sixteencurrencydenominatorbengali
+16#09FA    issharbengali
+16#0A02    bindigurmukhi
+16#0A05    agurmukhi
+16#0A06    aagurmukhi
+16#0A07    igurmukhi
+16#0A08    iigurmukhi
+16#0A09    ugurmukhi
+16#0A0A    uugurmukhi
+16#0A0F    eegurmukhi
+16#0A10    aigurmukhi
+16#0A13    oogurmukhi
+16#0A14    augurmukhi
+16#0A15    kagurmukhi
+16#0A16    khagurmukhi
+16#0A17    gagurmukhi
+16#0A18    ghagurmukhi
+16#0A19    ngagurmukhi
+16#0A1A    cagurmukhi
+16#0A1B    chagurmukhi
+16#0A1C    jagurmukhi
+16#0A1D    jhagurmukhi
+16#0A1E    nyagurmukhi
+16#0A1F    ttagurmukhi
+16#0A20    tthagurmukhi
+16#0A21    ddagurmukhi
+16#0A22    ddhagurmukhi
+16#0A23    nnagurmukhi
+16#0A24    tagurmukhi
+16#0A25    thagurmukhi
+16#0A26    dagurmukhi
+16#0A27    dhagurmukhi
+16#0A28    nagurmukhi
+16#0A2A    pagurmukhi
+16#0A2B    phagurmukhi
+16#0A2C    bagurmukhi
+16#0A2D    bhagurmukhi
+16#0A2E    magurmukhi
+16#0A2F    yagurmukhi
+16#0A30    ragurmukhi
+16#0A32    lagurmukhi
+16#0A35    vagurmukhi
+16#0A36    shagurmukhi
+16#0A38    sagurmukhi
+16#0A39    hagurmukhi
+16#0A3C    nuktagurmukhi
+16#0A3E    aamatragurmukhi
+16#0A3F    imatragurmukhi
+16#0A40    iimatragurmukhi
+16#0A41    umatragurmukhi
+16#0A42    uumatragurmukhi
+16#0A47    eematragurmukhi
+16#0A48    aimatragurmukhi
+16#0A4B    oomatragurmukhi
+16#0A4C    aumatragurmukhi
+16#0A4D    halantgurmukhi
+16#0A59    khhagurmukhi
+16#0A5A    ghhagurmukhi
+16#0A5B    zagurmukhi
+16#0A5C    rragurmukhi
+16#0A5E    fagurmukhi
+16#0A66    zerogurmukhi
+16#0A67    onegurmukhi
+16#0A68    twogurmukhi
+16#0A69    threegurmukhi
+16#0A6A    fourgurmukhi
+16#0A6B    fivegurmukhi
+16#0A6C    sixgurmukhi
+16#0A6D    sevengurmukhi
+16#0A6E    eightgurmukhi
+16#0A6F    ninegurmukhi
+16#0A70    tippigurmukhi
+16#0A71    addakgurmukhi
+16#0A72    irigurmukhi
+16#0A73    uragurmukhi
+16#0A74    ekonkargurmukhi
+16#0A81    candrabindugujarati
+16#0A82    anusvaragujarati
+16#0A83    visargagujarati
+16#0A85    agujarati
+16#0A86    aagujarati
+16#0A87    igujarati
+16#0A88    iigujarati
+16#0A89    ugujarati
+16#0A8A    uugujarati
+16#0A8B    rvocalicgujarati
+16#0A8D    ecandragujarati
+16#0A8F    egujarati
+16#0A90    aigujarati
+16#0A91    ocandragujarati
+16#0A93    ogujarati
+16#0A94    augujarati
+16#0A95    kagujarati
+16#0A96    khagujarati
+16#0A97    gagujarati
+16#0A98    ghagujarati
+16#0A99    ngagujarati
+16#0A9A    cagujarati
+16#0A9B    chagujarati
+16#0A9C    jagujarati
+16#0A9D    jhagujarati
+16#0A9E    nyagujarati
+16#0A9F    ttagujarati
+16#0AA0    tthagujarati
+16#0AA1    ddagujarati
+16#0AA2    ddhagujarati
+16#0AA3    nnagujarati
+16#0AA4    tagujarati
+16#0AA5    thagujarati
+16#0AA6    dagujarati
+16#0AA7    dhagujarati
+16#0AA8    nagujarati
+16#0AAA    pagujarati
+16#0AAB    phagujarati
+16#0AAC    bagujarati
+16#0AAD    bhagujarati
+16#0AAE    magujarati
+16#0AAF    yagujarati
+16#0AB0    ragujarati
+16#0AB2    lagujarati
+16#0AB3    llagujarati
+16#0AB5    vagujarati
+16#0AB6    shagujarati
+16#0AB7    ssagujarati
+16#0AB8    sagujarati
+16#0AB9    hagujarati
+16#0ABC    nuktagujarati
+16#0ABE    aavowelsigngujarati
+16#0ABF    ivowelsigngujarati
+16#0AC0    iivowelsigngujarati
+16#0AC1    uvowelsigngujarati
+16#0AC2    uuvowelsigngujarati
+16#0AC3    rvocalicvowelsigngujarati
+16#0AC4    rrvocalicvowelsigngujarati
+16#0AC5    ecandravowelsigngujarati
+16#0AC7    evowelsigngujarati
+16#0AC8    aivowelsigngujarati
+16#0AC9    ocandravowelsigngujarati
+16#0ACB    ovowelsigngujarati
+16#0ACC    auvowelsigngujarati
+16#0ACD    viramagujarati
+16#0AD0    omgujarati
+16#0AE0    rrvocalicgujarati
+16#0AE6    zerogujarati
+16#0AE7    onegujarati
+16#0AE8    twogujarati
+16#0AE9    threegujarati
+16#0AEA    fourgujarati
+16#0AEB    fivegujarati
+16#0AEC    sixgujarati
+16#0AED    sevengujarati
+16#0AEE    eightgujarati
+16#0AEF    ninegujarati
+16#0E00        0.0
+16#0E01    kokaithai    afii59681
+16#0E02    khokhaithai    afii59682
+16#0E03    khokhuatthai    afii59683
+16#0E04    khokhwaithai    afii59684
+16#0E05    khokhonthai    afii59685
+16#0E06    khorakhangthai    afii59686
+16#0E07    ngonguthai    afii59687
+16#0E08    chochanthai    afii59688
+16#0E09    chochingthai    afii59689
+16#0E0A    chochangthai    afii59690
+16#0E0B    sosothai    afii59691
+16#0E0C    chochoethai    afii59692
+16#0E0D    yoyingthai    afii59693
+16#0E0E    dochadathai    afii59694
+16#0E0F    topatakthai    afii59695
+16#0E10    thothanthai    afii59696
+16#0E11    thonangmonthothai    afii59697
+16#0E12    thophuthaothai    afii59698
+16#0E13    nonenthai    afii59699
+16#0E14    dodekthai    afii59700
+16#0E15    totaothai    afii59701
+16#0E16    thothungthai    afii59702
+16#0E17    thothahanthai    afii59703
+16#0E18    thothongthai    afii59704
+16#0E19    nonuthai    afii59705
+16#0E1A    bobaimaithai    afii59706
+16#0E1B    poplathai    afii59707
+16#0E1C    phophungthai    afii59708
+16#0E1D    fofathai    afii59709
+16#0E1E    phophanthai    afii59710
+16#0E1F    fofanthai    afii59711
+16#0E20    phosamphaothai    afii59712
+16#0E21    momathai    afii59713
+16#0E22    yoyakthai    afii59714
+16#0E23    roruathai    afii59715
+16#0E24    ruthai    afii59716
+16#0E25    lolingthai    afii59717
+16#0E26    luthai    afii59718
+16#0E27    wowaenthai    afii59719
+16#0E28    sosalathai    afii59720
+16#0E29    sorusithai    afii59721
+16#0E2A    sosuathai    afii59722
+16#0E2B    hohipthai    afii59723
+16#0E2C    lochulathai    afii59724
+16#0E2D    oangthai    afii59725
+16#0E2E    honokhukthai    afii59726
+16#0E2F    paiyannoithai    afii59727
+16#0E30    saraathai    afii59729
+16#0E31    maihanakatthai    afii59728
+16#0E32    saraaathai    afii59730
+16#0E33    saraamthai    afii59731
+16#0E34    saraithai    afii59732
+16#0E35    saraiithai    afii59733
+16#0E36    sarauethai    afii59734
+16#0E37    saraueethai    afii59735
+16#0E38    sarauthai    afii59736
+16#0E39    sarauuthai    afii59737
+16#0E3A    phinthuthai    afii59738
+16#0E3F    bahtthai    afii59743
+16#0E40    saraethai    afii59744
+16#0E41    saraaethai    afii59745
+16#0E42    saraothai    afii59746
+16#0E43    saraaimaimuanthai    afii59747
+16#0E44    saraaimaimalaithai    afii59748
+16#0E45    lakkhangyaothai    afii59749
+16#0E46    maiyamokthai    afii59750
+16#0E47    maitaikhuthai    afii59751
+16#0E48    maiekthai    afii59752
+16#0E49    maithothai    afii59753
+16#0E4A    maitrithai    afii59754
+16#0E4B    maichattawathai    afii59755
+16#0E4C    thanthakhatthai    afii59756
+16#0E4D    nikhahitthai    afii59757
+16#0E4E    yamakkanthai    afii59758
+16#0E4F    fongmanthai    afii59759
+16#0E50    zerothai    afii59760
+16#0E51    onethai    afii59761
+16#0E52    twothai    afii59762
+16#0E53    threethai    afii59763
+16#0E54    fourthai    afii59764
+16#0E55    fivethai    afii59765
+16#0E56    sixthai    afii59766
+16#0E57    seventhai    afii59767
+16#0E58    eightthai    afii59768
+16#0E59    ninethai    afii59769
+16#0E5A    angkhankhuthai    afii59770
+16#0E5B    khomutthai    afii59771
+16#1E00    Aringbelow
+16#1E01    aringbelow
+16#1E02    Bdotaccent
+16#1E03    bdotaccent
+16#1E04    Bdotbelow
+16#1E05    bdotbelow
+16#1E06    Blinebelow
+16#1E07    blinebelow
+16#1E08    Ccedillaacute
+16#1E09    ccedillaacute
+16#1E0A    Ddotaccent
+16#1E0B    ddotaccent
+16#1E0C    Ddotbelow
+16#1E0D    ddotbelow
+16#1E0E    Dlinebelow
+16#1E0F    dlinebelow
+16#1E10    Dcedilla
+16#1E11    dcedilla
+16#1E12    Dcircumflexbelow
+16#1E13    dcircumflexbelow
+16#1E14    Emacrongrave
+16#1E15    emacrongrave
+16#1E16    Emacronacute
+16#1E17    emacronacute
+16#1E18    Ecircumflexbelow
+16#1E19    ecircumflexbelow
+16#1E1A    Etildebelow
+16#1E1B    etildebelow
+16#1E1C    Ecedillabreve
+16#1E1D    ecedillabreve
+16#1E1E    Fdotaccent
+16#1E1F    fdotaccent
+16#1E20    Gmacron
+16#1E21    gmacron
+16#1E22    Hdotaccent
+16#1E23    hdotaccent
+16#1E24    Hdotbelow
+16#1E25    hdotbelow
+16#1E26    Hdieresis
+16#1E27    hdieresis
+16#1E28    Hcedilla
+16#1E29    hcedilla
+16#1E2A    Hbrevebelow
+16#1E2B    hbrevebelow
+16#1E2C    Itildebelow
+16#1E2D    itildebelow
+16#1E2E    Idieresisacute
+16#1E2F    idieresisacute
+16#1E30    Kacute
+16#1E31    kacute
+16#1E32    Kdotbelow
+16#1E33    kdotbelow
+16#1E34    Klinebelow
+16#1E35    klinebelow
+16#1E36    Ldotbelow
+16#1E37    ldotbelow
+16#1E38    Ldotbelowmacron
+16#1E39    ldotbelowmacron
+16#1E3A    Llinebelow
+16#1E3B    llinebelow
+16#1E3C    Lcircumflexbelow
+16#1E3D    lcircumflexbelow
+16#1E3E    Macute
+16#1E3F    macute
+16#1E40    Mdotaccent
+16#1E41    mdotaccent
+16#1E42    Mdotbelow
+16#1E43    mdotbelow
+16#1E44    Ndotaccent
+16#1E45    ndotaccent
+16#1E46    Ndotbelow
+16#1E47    ndotbelow
+16#1E48    Nlinebelow
+16#1E49    nlinebelow
+16#1E4A    Ncircumflexbelow
+16#1E4B    ncircumflexbelow
+16#1E4C    Otildeacute
+16#1E4D    otildeacute
+16#1E4E    Otildedieresis
+16#1E4F    otildedieresis
+16#1E50    Omacrongrave
+16#1E51    omacrongrave
+16#1E52    Omacronacute
+16#1E53    omacronacute
+16#1E54    Pacute
+16#1E55    pacute
+16#1E56    Pdotaccent
+16#1E57    pdotaccent
+16#1E58    Rdotaccent
+16#1E59    rdotaccent
+16#1E5A    Rdotbelow
+16#1E5B    rdotbelow
+16#1E5C    Rdotbelowmacron
+16#1E5D    rdotbelowmacron
+16#1E5E    Rlinebelow
+16#1E5F    rlinebelow
+16#1E60    Sdotaccent
+16#1E61    sdotaccent
+16#1E62    Sdotbelow
+16#1E63    sdotbelow
+16#1E64    Sacutedotaccent
+16#1E65    sacutedotaccent
+16#1E66    Scarondotaccent
+16#1E67    scarondotaccent
+16#1E68    Sdotbelowdotaccent
+16#1E69    sdotbelowdotaccent
+16#1E6A    Tdotaccent
+16#1E6B    tdotaccent
+16#1E6C    Tdotbelow
+16#1E6D    tdotbelow
+16#1E6E    Tlinebelow
+16#1E6F    tlinebelow
+16#1E70    Tcircumflexbelow
+16#1E71    tcircumflexbelow
+16#1E72    Udieresisbelow
+16#1E73    udieresisbelow
+16#1E74    Utildebelow
+16#1E75    utildebelow
+16#1E76    Ucircumflexbelow
+16#1E77    ucircumflexbelow
+16#1E78    Utildeacute
+16#1E79    utildeacute
+16#1E7A    Umacrondieresis
+16#1E7B    umacrondieresis
+16#1E7C    Vtilde
+16#1E7D    vtilde
+16#1E7E    Vdotbelow
+16#1E7F    vdotbelow
+16#1E80  Wgrave
+16#1E81  wgrave
+16#1E82  Wacute
+16#1E83  wacute
+16#1E84  Wdieresis
+16#1E85  wdieresis
+16#1E86    Wdotaccent
+16#1E87    wdotaccent
+16#1E88    Wdotbelow
+16#1E89    wdotbelow
+16#1E8A    Xdotaccent
+16#1E8B    xdotaccent
+16#1E8C    Xdieresis
+16#1E8D    xdieresis
+16#1E8E    Ydotaccent
+16#1E8F    ydotaccent
+16#1E90    Zcircumflex
+16#1E91    zcircumflex
+16#1E92    Zdotbelow
+16#1E93    zdotbelow
+16#1E94    Zlinebelow
+16#1E95    zlinebelow
+16#1E96    hlinebelow
+16#1E97    tdieresis
+16#1E98    wring
+16#1E99    yring
+16#1E9A    arighthalfring
+16#1E9B    slongdotaccent
+16#1EA0    Adotbelow
+16#1EA1    adotbelow
+16#1EA2    Ahookabove
+16#1EA3    ahookabove
+16#1EA4    Acircumflexacute
+16#1EA5    acircumflexacute
+16#1EA6    Acircumflexgrave
+16#1EA7    acircumflexgrave
+16#1EA8    Acircumflexhookabove
+16#1EA9    acircumflexhookabove
+16#1EAA    Acircumflextilde
+16#1EAB    acircumflextilde
+16#1EAC    Acircumflexdotbelow
+16#1EAD    acircumflexdotbelow
+16#1EAE    Abreveacute
+16#1EAF    abreveacute
+16#1EB0    Abrevegrave
+16#1EB1    abrevegrave
+16#1EB2    Abrevehookabove
+16#1EB3    abrevehookabove
+16#1EB4    Abrevetilde
+16#1EB5    abrevetilde
+16#1EB6    Abrevedotbelow
+16#1EB7    abrevedotbelow
+16#1EB8    Edotbelow
+16#1EB9    edotbelow
+16#1EBA    Ehookabove
+16#1EBB    ehookabove
+16#1EBC    Etilde
+16#1EBD    etilde
+16#1EBE    Ecircumflexacute
+16#1EBF    ecircumflexacute
+16#1EC0    Ecircumflexgrave
+16#1EC1    ecircumflexgrave
+16#1EC2    Ecircumflexhookabove
+16#1EC3    ecircumflexhookabove
+16#1EC4    Ecircumflextilde
+16#1EC5    ecircumflextilde
+16#1EC6    Ecircumflexdotbelow
+16#1EC7    ecircumflexdotbelow
+16#1EC8    Ihookabove
+16#1EC9    ihookabove
+16#1ECA    Idotbelow
+16#1ECB    idotbelow
+16#1ECC    Odotbelow
+16#1ECD    odotbelow
+16#1ECE    Ohookabove
+16#1ECF    ohookabove
+16#1ED0    Ocircumflexacute
+16#1ED1    ocircumflexacute
+16#1ED2    Ocircumflexgrave
+16#1ED3    ocircumflexgrave
+16#1ED4    Ocircumflexhookabove
+16#1ED5    ocircumflexhookabove
+16#1ED6    Ocircumflextilde
+16#1ED7    ocircumflextilde
+16#1ED8    Ocircumflexdotbelow
+16#1ED9    ocircumflexdotbelow
+16#1EDA    Ohornacute
+16#1EDB    ohornacute
+16#1EDC    Ohorngrave
+16#1EDD    ohorngrave
+16#1EDE    Ohornhookabove
+16#1EDF    ohornhookabove
+16#1EE0    Ohorntilde
+16#1EE1    ohorntilde
+16#1EE2    Ohorndotbelow
+16#1EE3    ohorndotbelow
+16#1EE4    Udotbelow
+16#1EE5    udotbelow
+16#1EE6    Uhookabove
+16#1EE7    uhookabove
+16#1EE8    Uhornacute
+16#1EE9    uhornacute
+16#1EEA    Uhorngrave
+16#1EEB    uhorngrave
+16#1EEC    Uhornhookabove
+16#1EED    uhornhookabove
+16#1EEE    Uhorntilde
+16#1EEF    uhorntilde
+16#1EF0    Uhorndotbelow
+16#1EF1    uhorndotbelow
+16#1EF2  Ygrave
+16#1EF3  ygrave
+16#1EF4    Ydotbelow
+16#1EF5    ydotbelow
+16#1EF6    Yhookabove
+16#1EF7    yhookabove
+16#1EF8    Ytilde
+16#1EF9    ytilde
+16#2000        enquad
+16#2001        emquad
+16#2002    enspace
+16#2003        emspace
+16#2004        threeperemspace
+16#2005        fourperemspace
+16#2006        sixperemspace
+16#2007        figurespace
+16#2008        punctuationspace
+16#2009        thinspace
+16#200A        hairspace
+16#200B    zerowidthspace    zerospace
+16#200C    afii61664 zerowidthnonjoiner    zeronojoin
+16#200D    afii301    zerojoin
+16#200E    afii299    lefttoright
+16#200F    afii300    righttoleft
+16#2010    hyphentwo    hyphen1
+16#2011        hyphennobreak nbhyphen
+16#2012  figuredash
+16#2013  endash      SS680000
+16#2014  emdash      SM900000
+16#2015    afii00208 horizontalbar    longdash quotedash
+16#2016    dblverticalbar    verticalbardbl vertlinedbl
+16#2017  underscoredbl  dbllowline    SM100000
+16#2018  quoteleft      SP190000 quotesinglleft
+16#2019  quoteright      SP200000 quotesinglright
+16#201A  quotesinglbase      SP260000
+16#201B  quotereversed  quoteleftreversed    quotesinglrev
+16#201C  quotedblleft      SP210000
+16#201D  quotedblright      SP220000
+16#201E  quotedblbase      SP230000
+16#201F        quotedblrev
+16#2020  dagger      SM340000
+16#2021  daggerdbl      SM350000
+16#2022  bullet      SM570000
+16#2023        trianglebullet
+16#2024  onedotenleader      onedotlead onedotleader
+16#2025  twodotenleader  twodotleader    twodotlead
+16#2026  ellipsis      SV520000
+16#2027        hyphendot
+16#2028        lineseparator
+16#2029        paragraphseparator
+16#202A        lre
+16#202B        rle
+16#202C    afii61573    pdf
+16#202D    afii61574    lro
+16#202E    afii61575    rlo
+16#2030  perthousand      SM560000
+16#2031        pertenthousand
+16#2032  minute      prime1 prime
+16#2033  second      primedbl1 primedbl
+16#2034        primetripl1 primetripl
+16#2035    primereversed    minuterev primerev1 primerev
+16#2036        primedblrev1 primedblrev secondrev
+16#2037        primetriplerev1 primetriplerev
+16#2038        caret
+16#2039  guilsinglleft      SP270000
+16#203A  guilsinglright      SP280000
+16#203B    referencemark    refmark
+16#203C  exclamdbl      SP330000
+16#203D        interrobang
+16#203E    overline
+16#203F        undertie
+16#2040        tie tie1
+16#2041        caretinsert
+16#2042    asterism
+16#2043        hyphenbullet
+16#2044  fraction      fraction1
+16#2045        bracketleftquill
+16#2046        bracketrightquill
+16#2070    zerosuperior
+16#2074    foursuperior
+16#2075    fivesuperior
+16#2076    sixsuperior
+16#2077    sevensuperior
+16#2078    eightsuperior
+16#2079    ninesuperior
+16#207A    plussuperior
+16#207B        minussuperior
+16#207C    equalsuperior
+16#207D    parenleftsuperior
+16#207E    parenrightsuperior
+16#207F    nsuperior    LN011000
+16#2080    zeroinferior    zerosub
+16#2081    oneinferior    onesub
+16#2082    twoinferior    twosub
+16#2083    threeinferior    threesub
+16#2084    fourinferior    foursub
+16#2085    fiveinferior    fivesub
+16#2086    sixinferior    sixsub
+16#2087    seveninferior    sevensub
+16#2088    eightinferior    eightsub
+16#2089    nineinferior    ninesub
+16#208A        plussub plusinferior
+16#208B        minussub minusinferior
+16#208C        equalsub equalinferior
+16#208D    parenleftinferior    parenleftsub
+16#208E    parenrightinferior    parenrightsub
+16#20A0        eurocurrency
+16#20A1  colonmonetary  colonsign    coloncurrency Colonmonetary coloncur
+16#20A2    cruzeiro
+16#20A3  franc
+16#20A4  lira  afii08941
+16#20A5        mill
+16#20A6        naira
+16#20A7  peseta      SC060000 Pts pesetas
+16#20A8        rupees rupee
+16#20A9    won
+16#20AA    afii57636 newsheqelsign sheqel sheqelhebrew    newsheqel
+16#20AB  dong
+16#20AC  Euro  euro
+16#2100        accountof
+16#2101        addresssubject
+16#2102        Cbb Cdblstruck
+16#2103    centigrade    degreecentigrade celsius
+16#2104        centreline CL
+16#2105    afii61248 careof
+16#2106        cadauna
+16#2107        Euler
+16#2108        scruple
+16#2109    fahrenheit    degreefarenheit degreefahrenheit farenheit
+16#210A        gscriptmath
+16#210B        Hscript
+16#210C        Hfractur Hfraktur Hblackletter
+16#210D        Hdblstruck Hbb
+16#210E        planck
+16#210F        planckover2pi
+16#2110        Iscript
+16#2111  Ifraktur      Ifractur Iblackletter
+16#2112        Lscript
+16#2113    afii61289 lsquare    lscript liter
+16#2114        lbbar
+16#2115        Ndblstruck Nbb
+16#2116    afii61352 numero
+16#2117        recordright soundcopyright
+16#2118  weierstrass      Pscript
+16#2119        Pdblstruck Pbb
+16#211A        Qdblstruck Qbb
+16#211B        Rscript
+16#211C  Rfraktur      Rblackletter Rfractur
+16#211D        Rdblstruck Rbb
+16#211E  prescription      Rx
+16#211F        response
+16#2120        servicemark
+16#2121    telephone    tel
+16#2122  trademark      SM540000
+16#2123        versicle
+16#2124        Zbb Zdblstruck
+16#2125        ounce
+16#2126  Omega  Ohm    ohm
+16#2127        Omegainv ohminverted mho
+16#2128        Zfraktur Zblackletter Zfractur
+16#2129        iotaturn
+16#212A        kelvin degreekelvin
+16#212B    angstrom
+16#212C        Bscript
+16#212D        Cblackletter Cfraktur Cfractur
+16#212E  estimated
+16#212F        escript
+16#2130        Escript
+16#2131        Fscript
+16#2132        Fturn
+16#2133        Mscript
+16#2134        oscript 0script
+16#2135  aleph      alephmath
+16#2136        bethmath
+16#2137        gimelmath
+16#2138        dalethmath
+16#2153  onethird
+16#2154  twothirds
+16#2155        onefifth
+16#2156        twofifths
+16#2157        threefifths
+16#2158        fourfifths
+16#2159        onesixth
+16#215A        fivesixth
+16#215B  oneeighth
+16#215C  threeeighths
+16#215D  fiveeighths
+16#215E  seveneighths
+16#2160    Oneroman
+16#2161    Tworoman
+16#2162    Threeroman
+16#2163    Fourroman
+16#2164    Fiveroman
+16#2165    Sixroman
+16#2166    Sevenroman
+16#2167    Eightroman
+16#2168    Nineroman
+16#2169    Tenroman
+16#216A    Elevenroman
+16#216B    Twelveroman
+16#2170    oneroman
+16#2171    tworoman
+16#2172    threeroman
+16#2173    fourroman
+16#2174    fiveroman
+16#2175    sixroman
+16#2176    sevenroman
+16#2177    eightroman
+16#2178    nineroman
+16#2179    tenroman
+16#217A    elevenroman
+16#217B    twelveroman
+16#2190  arrowleft
+16#2191  arrowup
+16#2192  arrowright    a161
+16#2193  arrowdown
+16#2194  arrowboth    a163
+16#2195  arrowupdn    a164
+16#2196    arrowupleft
+16#2197    arrowupright
+16#2198    arrowdownright
+16#2199    arrowdownleft
+16#21A8  arrowupdnbse  arrowupdownbase
+16#21B4        arrowrightdown
+16#21B5  carriagereturn      carriagerreturn
+16#21B6        arrowsemanticlockw
+16#21B7        arrowsemclockw
+16#21B8        home
+16#21B9        tableftright
+16#21BA        arrowanticlockw
+16#21BB        arrowclockw
+16#21BC    harpoonleftbarbup    arrowlefttophalf
+16#21BD        arrowleftbothalf
+16#21BE        harpoonupright
+16#21BF        harpoonupleft
+16#21C0    harpoonrightbarbup    arrowrighttophalf
+16#21C1        arrowrightbothalf
+16#21C2        harpoondownright
+16#21C3        harpoondownleft
+16#21C4    arrowrightoverleft    arrowparrrightleft
+16#21C5    arrowupleftofdown    dblarrowupdown
+16#21C6    arrowleftoverright    arrowparrleftright
+16#21C8        dblarrowup
+16#21CA        dblarrowdown
+16#21CB        harpoonleftright
+16#21CC        harpoonrightleft
+16#21CD    arrowleftdblstroke    arrowdblleftnot
+16#21CE        arrowdbllongbothnot
+16#21CF    arrowrightdblstroke    arrowdblrightnot
+16#21D0  arrowdblleft  arrowleftdbl
+16#21D1  arrowdblup
+16#21D2  arrowdblright  dblarrowright
+16#21D3  arrowdbldown
+16#21D4  arrowdblboth  dblarrowleft    arrowdbllongboth
+16#21D5        arrowdbllongbothv
+16#21D6        arrowdblnw
+16#21D7        arrowdblne
+16#21D8        arrowdblse
+16#21D9        arrowdblsw
+16#21DA        arrowtripleleft
+16#21DB        arrowtripleright
+16#21DC        arrowsquiggleleft
+16#21DD        arrowsquiggleright
+16#21DE    pageup
+16#21DF    pagedown
+16#21E0    arrowdashleft
+16#21E1    arrowdashup
+16#21E2    arrowdashright
+16#21E3    arrowdashdown
+16#21E4    arrowtableft
+16#21E5    arrowtabright
+16#21E6    arrowleftwhite    arrowopenleft
+16#21E7    arrowupwhite    arrowopenup
+16#21E8    arrowrightwhite    arrowopenright
+16#21E9    arrowdownwhite    arrowopendown
+16#21EA    capslock
+16#2200  universal  forall
+16#2201        complement
+16#2202  partialdiff
+16#2203  existential  thereexists
+16#2204        notexistential
+16#2205  emptyset
+16#2206  Delta  increment
+16#2207  gradient  nabla
+16#2208  element
+16#2209  notelement  notelementof
+16#220A        elementsmall smallelement
+16#220B  suchthat      owner contains
+16#220C    notcontains    notowner notsuchthat
+16#220D        ownersmall smallcontains
+16#220E        eop endofproof
+16#220F  product
+16#2210        coproduct
+16#2211  summation
+16#2212  minus
+16#2213    minusplus
+16#2214        dotplus
+16#2215    divisionslash    slashmath
+16#2216        setminus backslashmath
+16#2217  asteriskmath
+16#2218        openbullet1 ringmath
+16#2219    bulletoperator    productdot bulletmath
+16#221A  radical      squareroot
+16#221B        cuberoot
+16#221C        fourthroot
+16#221D  proportional
+16#221E  infinity
+16#221F  orthogonal  rightangle
+16#2220  angle
+16#2221        measuredangle
+16#2222        sphericalangle
+16#2223    divides    bar1
+16#2224        notbar notdivides
+16#2225    parallel    bardbl2
+16#2226    notparallel    notbardbl
+16#2227  logicaland
+16#2228  logicalor
+16#2229  intersection
+16#222A  union
+16#222B  integral
+16#222C    dblintegral    integraldbl doubleintegral
+16#222D        tripleintegral integraltrpl
+16#222E    contourintegral    contintegral
+16#222F        surfintegral surfaceintegral
+16#2230        volintegral volumeintegral
+16#2231        clwintegral
+16#2232        clwcontintegral
+16#2233        cclwcontintegral
+16#2234  therefore
+16#2235    because
+16#2236    ratio
+16#2237    proportion
+16#2238        dotminus
+16#2239        excess
+16#223A        geomproportion proportiongeom
+16#223B        homothetic
+16#223C  similar  tildeoperator    tildemath
+16#223D    reversedtilde    revsimilar tildereversed
+16#223E        Sinvlazy lazysinv
+16#223F        sine sinewave
+16#2240        wreathproduct
+16#2241        notsimilar
+16#2242        minustilde
+16#2243    asymptoticallyequal    similarequal approxequalalt asymptequal
+16#2244        notasymptequal
+16#2245  congruent  approximatelyequal    approxorequal
+16#2246        approxnotequal
+16#2247        notapproxequal
+16#2248  approxequal      almostequal
+16#2249        notalmostequal
+16#224A        almostorequal
+16#224B        tildetrpl
+16#224C    allequal
+16#224D        equivasymptotic
+16#224E        geomequivalent
+16#224F        difference
+16#2250    approaches    approachlimit
+16#2251    geometricallyequal    geomequal
+16#2252    approxequalorimage
+16#2253    imageorapproximatelyequal    imageorapproxequal
+16#2254        colonequal
+16#2255        equalcolon
+16#2256        ringinequal
+16#2257        ringequal
+16#2258        corresponds
+16#2259        estimates
+16#225A        equiangular
+16#225B        starequal
+16#225C        deltaequal
+16#225D        definequal
+16#225E        measurequal
+16#225F        questionequal
+16#2260  notequal
+16#2261  equivalence
+16#2262    notidentical    notequivalence
+16#2263        strictequivalence
+16#2264  lessequal
+16#2265  greaterequal
+16#2266    lessoverequal    lessdblequal
+16#2267    greateroverequal    greaterdblequal
+16#2268        lessnotdblequal
+16#2269        greaternotdblequal
+16#226A    muchless    lessmuch
+16#226B    muchgreater    greatermuch
+16#226C        between
+16#226D        notequivasymptotic
+16#226E    notless
+16#226F    notgreater
+16#2270    notlessnorequal    notlessequal1
+16#2271    notgreaternorequal    notgreaterequal1
+16#2272    lessorequivalent    lessequivlnt
+16#2273    greaterorequivalent    greaterequivlnt
+16#2274        notlessequivlnt
+16#2275        notgreaterequivlnt
+16#2276    lessorgreater
+16#2277    greaterorless
+16#2278        notlessgreater
+16#2279    notgreaternorless    notgreaterless
+16#227A    precedes
+16#227B    succeeds    follows
+16#227C        precedesequal1
+16#227D        followsequal1
+16#227E        precedequivlnt
+16#227F        followsequivlnt
+16#2280    notprecedes    notpreceeds
+16#2281    notsucceeds    notfollows
+16#2282  propersubset  subset
+16#2283  propersuperset  superset
+16#2284  notsubset      notpropersubset
+16#2285    notsuperset    notpropersuperset
+16#2286  reflexsubset  subsetorequal
+16#2287  reflexsuperset  supersetorequal
+16#2288        notreflexsubset
+16#2289        notreflexsuperset
+16#228A    subsetnotequal
+16#228B    supersetnotequal
+16#228C        multiset
+16#228D        multiplymultiset
+16#228E        unionmulti
+16#228F        squareimage
+16#2290        squareoriginal
+16#2291        subsetsqequal
+16#2292        supersetsqequal
+16#2293        intersectionsq
+16#2294        unionsq
+16#2295  circleplus  pluscircle
+16#2296    minuscircle    circleminus
+16#2297  circlemultiply  timescircle
+16#2298        circledivide
+16#2299    circleot    circledot
+16#229A        circlering
+16#229B        circleasterisk
+16#229C        circleequal
+16#229D        circleminus1
+16#229E        squareplus
+16#229F        squareminus
+16#22A0        squaremultiply
+16#22A1        squaredot
+16#22A2        turnstileleft
+16#22A3    tackleft    turnstileright
+16#22A4    tackdown    latticetop
+16#22A5  perpendicular
+16#22A6        assertion
+16#22A7        truestate
+16#22A8        satisfy
+16#22A9        force
+16#22AA        tacktrpl
+16#22AB        forceextr
+16#22AC        notturnstileleft
+16#22AD        notsatisfy
+16#22AE        notforce
+16#22AF        notforceextr
+16#22B0        lowerrank
+16#22B1        higherrank
+16#22B2        triangleright
+16#22B3        triangleleft
+16#22B4        triangleftequal
+16#22B5        triangrightequal
+16#22B6        original
+16#22B7        image
+16#22B8        multimap
+16#22B9        hermitconjmatrix
+16#22BA        intercal
+16#22BB        orunderscore xor
+16#22BC        nand
+16#22BD        nor
+16#22BE        rightanglearc
+16#22BF    righttriangle
+16#22C0        narylogicaland
+16#22C1        narylogicalor
+16#22C2        naryintersection
+16#22C3        naryunion
+16#22C4        diamondmath
+16#22C5  dotmath
+16#22C6        star
+16#22C7        divideonmultiply
+16#22C8        bowtie
+16#22C9        multicloseleft
+16#22CA        multicloseright
+16#22CB        multiopenleft
+16#22CC        multiopenright
+16#22CD        revasymptequal
+16#22CE    curlyor    curlor
+16#22CF    curlyand    curland
+16#22D0        subsetdbl
+16#22D1        supersetdbl
+16#22D2        uniondbl
+16#22D3        intersectiondbl
+16#22D4        fork
+16#22D5        equalparallel
+16#22D6        lessdot
+16#22D7        greaterdot
+16#22D8        verymuchless
+16#22D9        verymuchgreater
+16#22DA    lessequalorgreater    lessequalgreater
+16#22DB    greaterequalorless    greaterequalless
+16#22DC        equalless
+16#22DD        equalgreater
+16#22DE        equalprecedes1
+16#22DF        equalfollows1
+16#22E0        preceedsnotequal
+16#22E1        followsnotequal
+16#22E2        notsubsetsqequal
+16#22E3        notsupersetsqequal
+16#22E4        sqimageornotequal
+16#22E5        sqoriginornotequal
+16#22E6        lessnotequivlnt
+16#22E7        greaternotequivlnt
+16#22E8        preceedsnotsimilar
+16#22E9        followsnotequivlnt
+16#22EA        nottriangleleft
+16#22EB        nottriangleright
+16#22EC        nottriangleleftequal
+16#22ED        nottrianglerightequal
+16#22EE    ellipsisvertical    vertellipsis
+16#22EF        midhorizellipsis
+16#22F0        upslopeellipsis
+16#22F1        downslopeellipsis
+16#2302  house      SM790000
+16#2303    control
+16#2305    projective
+16#2306        perspcorrespond
+16#2308        ceilingleft
+16#2309        ceilingright
+16#230A        floorleft
+16#230B        floorright
+16#2310  revlogicalnot  logicalnotreversed
+16#2312    arc
+16#2318    propellor
+16#2320  integraltp  integraltop    SS260000
+16#2321  integralbt  integralbottom    SS270000
+16#2322        slurabove
+16#2323        slurbelow
+16#2325    option
+16#2326    deleteright
+16#2327    clear
+16#2329  angleleft
+16#232A  angleright
+16#232B    deleteleft
+16#2423    blank
+16#2460    onecircle  a120
+16#2461    twocircle  a121
+16#2462    threecircle  a122
+16#2463    fourcircle  a123
+16#2464    fivecircle  a124
+16#2465    sixcircle  a125
+16#2466    sevencircle  a126
+16#2467    eightcircle  a127
+16#2468    ninecircle  a128
+16#2469    tencircle  a129
+16#246A    elevencircle
+16#246B    twelvecircle
+16#246C    thirteencircle
+16#246D    fourteencircle
+16#246E    fifteencircle
+16#246F    sixteencircle
+16#2470    seventeencircle
+16#2471    eighteencircle
+16#2472    nineteencircle
+16#2473    twentycircle
+16#2474    oneparen
+16#2475    twoparen
+16#2476    threeparen
+16#2477    fourparen
+16#2478    fiveparen
+16#2479    sixparen
+16#247A    sevenparen
+16#247B    eightparen
+16#247C    nineparen
+16#247D    tenparen
+16#247E    elevenparen
+16#247F    twelveparen
+16#2480    thirteenparen
+16#2481    fourteenparen
+16#2482    fifteenparen
+16#2483    sixteenparen
+16#2484    seventeenparen
+16#2485    eighteenparen
+16#2486    nineteenparen
+16#2487    twentyparen
+16#2488    oneperiod
+16#2489    twoperiod
+16#248A    threeperiod
+16#248B    fourperiod
+16#248C    fiveperiod
+16#248D    sixperiod
+16#248E    sevenperiod
+16#248F    eightperiod
+16#2490    nineperiod
+16#2491    tenperiod
+16#2492    elevenperiod
+16#2493    twelveperiod
+16#2494    thirteenperiod
+16#2495    fourteenperiod
+16#2496    fifteenperiod
+16#2497    sixteenperiod
+16#2498    seventeenperiod
+16#2499    eighteenperiod
+16#249A    nineteenperiod
+16#249B    twentyperiod
+16#249C    aparen
+16#249D    bparen
+16#249E    cparen
+16#249F    dparen
+16#24A0    eparen
+16#24A1    fparen
+16#24A2    gparen
+16#24A3    hparen
+16#24A4    iparen
+16#24A5    jparen
+16#24A6    kparen
+16#24A7    lparen
+16#24A8    mparen
+16#24A9    nparen
+16#24AA    oparen
+16#24AB    pparen
+16#24AC    qparen
+16#24AD    rparen
+16#24AE    sparen
+16#24AF    tparen
+16#24B0    uparen
+16#24B1    vparen
+16#24B2    wparen
+16#24B3    xparen
+16#24B4    yparen
+16#24B5    zparen
+16#24B6    Acircle
+16#24B7    Bcircle
+16#24B8    Ccircle
+16#24B9    Dcircle
+16#24BA    Ecircle
+16#24BB    Fcircle
+16#24BC    Gcircle
+16#24BD    Hcircle
+16#24BE    Icircle
+16#24BF    Jcircle
+16#24C0    Kcircle
+16#24C1    Lcircle
+16#24C2    Mcircle
+16#24C3    Ncircle
+16#24C4    Ocircle
+16#24C5    Pcircle
+16#24C6    Qcircle
+16#24C7    Rcircle
+16#24C8    Scircle
+16#24C9    Tcircle
+16#24CA    Ucircle
+16#24CB    Vcircle
+16#24CC    Wcircle
+16#24CD    Xcircle
+16#24CE    Ycircle
+16#24CF    Zcircle
+16#24D0    acircle
+16#24D1    bcircle
+16#24D2    ccircle
+16#24D3    dcircle
+16#24D4    ecircle
+16#24D5    fcircle
+16#24D6    gcircle
+16#24D7    hcircle
+16#24D8    icircle
+16#24D9    jcircle
+16#24DA    kcircle
+16#24DB    lcircle
+16#24DC    mcircle
+16#24DD    ncircle
+16#24DE    ocircle
+16#24DF    pcircle
+16#24E0    qcircle
+16#24E1    rcircle
+16#24E2    scircle
+16#24E3    tcircle
+16#24E4    ucircle
+16#24E5    vcircle
+16#24E6    wcircle
+16#24E7    xcircle
+16#24E8    ycircle
+16#24E9    zcircle
+16#2500  SF100000
+16#2502  SF110000
+16#250A        250a
+16#250B        250b
+16#250C  SF010000      250c
+16#250D        250d
+16#250E        250e
+16#250F        250f
+16#2510  SF030000
+16#2514  SF020000
+16#2518  SF040000
+16#251A        251a
+16#251B        251b
+16#251C  SF080000      251c
+16#251D        251d
+16#251E        251e
+16#251F        251f
+16#2524  SF090000
+16#252A        252a
+16#252B        252b
+16#252C  SF060000      252c
+16#252D        252d
+16#252E        252e
+16#252F        252f
+16#2534  SF070000
+16#253A        253a
+16#253B        253b
+16#253C  SF050000      253c
+16#253D        253d
+16#253E        253e
+16#253F        253f
+16#254A        254a
+16#254B        254b
+16#254C        254c
+16#254D        254d
+16#254E        254e
+16#254F        254f
+16#2550  SF430000
+16#2551  SF240000
+16#2552  SF510000
+16#2553  SF520000
+16#2554  SF390000
+16#2555  SF220000
+16#2556  SF210000
+16#2557  SF250000
+16#2558  SF500000
+16#2559  SF490000
+16#255A  SF380000      255a
+16#255B  SF280000      255b
+16#255C  SF270000      255c
+16#255D  SF260000      255d
+16#255E  SF360000      255e
+16#255F  SF370000      255f
+16#2560  SF420000
+16#2561  SF190000
+16#2562  SF200000
+16#2563  SF230000
+16#2564  SF470000
+16#2565  SF480000
+16#2566  SF410000
+16#2567  SF450000
+16#2568  SF460000
+16#2569  SF400000
+16#256A  SF540000      256a
+16#256B  SF530000      256b
+16#256C  SF440000      256c
+16#256D        256d
+16#256E        256e
+16#256F        256f
+16#257A        257a
+16#257B        257b
+16#257C        257c
+16#257D        257d
+16#257E        257e
+16#257F        257f
+16#2580  upblock      SF600000
+16#2581        dneightblock
+16#2582        dnquarterblock
+16#2583        dnthreeeighthblock
+16#2584  dnblock      SF570000
+16#2585        dnfiveeighthblock
+16#2586        dnthreequarterblock
+16#2587        dnseveneighthblock
+16#2588  block      SF610000
+16#2589        lfseveneighthblock
+16#258A        lfthreequarterblock
+16#258B        lffiveeighthblock
+16#258C  lfblock      SF580000
+16#258D        lfthreeeighthblock
+16#258E        lfquarterblock
+16#258F        lfeighthblock
+16#2590  rtblock      SF590000
+16#2591  ltshade  shadelight    SF140000
+16#2592  shade  shademedium    SF150000
+16#2593  dkshade  shadedark    SF160000
+16#2594        upeighthblock
+16#2595        rteighthblock
+16#25A0  filledbox  blacksquare  a73  SM470000
+16#25A1  H22073  whitesquare    box
+16#25A2        boxrounded
+16#25A3    squarewhitewithsmallblack    boxnested
+16#25A4    squarehorizontalfill    boxhorizhatch
+16#25A5    squareverticalfill    boxverthatch
+16#25A6    squareorthogonalcrosshatchfill    boxcrosshatch
+16#25A7    squareupperlefttolowerrightfill    boxleftdiaghatch
+16#25A8    squareupperrighttolowerleftfill    boxrtdiaghatch
+16#25A9    squarediagonalcrosshatchfill    boxcrossdiaghatch
+16#25AA  H18543  blacksmallsquare    smallboxfilled
+16#25AB  H18551  whitesmallsquare    smallbox
+16#25AC  filledrect  blackrectangle    SM700000
+16#25AD        rectangle
+16#25AE        filledvertrect
+16#25AF        vertrectangle
+16#25B0        filledparallelogram
+16#25B1        parallelogram
+16#25B2  triagup  blackuppointingtriangle  a76  SM600000
+16#25B3    whiteuppointingtriangle    triangle
+16#25B4    blackuppointingsmalltriangle    smalltrianglesld
+16#25B5    whiteuppointingsmalltriangle    smalltriangle
+16#25B6    blackrightpointingtriangle    trianglerightsld1
+16#25B7    whiterightpointingtriangle    triangleright1
+16#25B8        smalltrianglerightsld
+16#25B9    whiterightpointingsmalltriangle    smalltriangleright
+16#25BA  triagrt  blackrightpointingpointer    SM590000
+16#25BB        triagrtopen
+16#25BC  triagdn  blackdownpointingtriangle  a77  SV040000
+16#25BD    whitedownpointingtriangle    triangleinv
+16#25BE        smalltriangleinvsld
+16#25BF    whitedownpointingsmalltriangle    smalltriangleinv
+16#25C0    blackleftpointingtriangle    triangleleftsld1
+16#25C1    whiteleftpointingtriangle    triangleleft1
+16#25C2        smalltriangleleftsld
+16#25C3    whiteleftpointingsmalltriangle    smalltriangleleft
+16#25C4  triaglf  blackleftpointingpointer    SM630000
+16#25C5        triaglfopen
+16#25C6    blackdiamond  a78  diamondrhombsolid
+16#25C7    whitediamond    diamondrhomb
+16#25C8    whitediamondcontainingblacksmalldiamond    diamondrhombnested
+16#25C9    fisheye
+16#25CA  lozenge      SA660000
+16#25CB  circle  whitecircle    SM750000
+16#25CC    dottedcircle    circledash
+16#25CD        circleverthatch
+16#25CE    bullseye    bullseye1
+16#25CF  H18533  blackcircle  a71  SM580000 bulletaltone circlesolid
+16#25D0    circlewithlefthalfblack    circleleftsld
+16#25D1    circlewithrighthalfblack    circlerightsld
+16#25D2        circlebottomsld
+16#25D3        circletopsld
+16#25D4        circlenesld
+16#25D5        circlenwopen
+16#25D6        semicircleleftsld
+16#25D7      a81  semicirclelertsld
+16#25D8  invbullet  bulletinverse    SM570001
+16#25D9  invcircle  whitecircleinverse    SM750002
+16#25DA        invsemicircleup
+16#25DB        invsemicircledn
+16#25DC        nwquadarc
+16#25DD        nequadarc
+16#25DE        sequadarc
+16#25DF        swquadarc
+16#25E0        toparc
+16#25E1        bottomarc
+16#25E2    blacklowerrighttriangle    trianglesesld
+16#25E3    blacklowerlefttriangle    triangleswsld
+16#25E4    blackupperlefttriangle    tranglenwsld
+16#25E5    blackupperrighttriangle    trianglenesld
+16#25E6  openbullet  whitebullet
+16#25E7        squareleftsld
+16#25E8        squarerightsld
+16#25E9        squarenwsld
+16#25EA        squaresesld
+16#25EB        squarevertbisect
+16#25EC        triangledot
+16#25ED        triangleleftsld
+16#25EE        trianglerightsld
+16#25EF    largecircle
+16#2605    blackstar  a35
+16#2606    whitestar
+16#260E    telephoneblack  a4
+16#260F    whitetelephone
+16#261B      a11
+16#261C    pointingindexleftwhite
+16#261D    pointingindexupwhite
+16#261E    pointingindexrightwhite  a12
+16#261F    pointingindexdownwhite
+16#262F    yinyang
+16#263A  smileface  whitesmilingface    SS000000
+16#263B  invsmileface  blacksmilingface    SS010000
+16#263C  sun  compass    SM690000
+16#2640  female  venus    SM290000
+16#2641    earth
+16#2642  male  mars    SM280000
+16#2643        u2643
+16#2660  spade  spadesuitblack  a109  SS050000
+16#2661    heartsuitwhite
+16#2662    diamondsuitwhite
+16#2663  club  clubsuitblack  a112  SS040000
+16#2664    spadesuitwhite
+16#2665  heart  heartsuitblack  a110  SS020000
+16#2666  diamond    a111  SS030000
+16#2667    clubsuitwhite
+16#2668    hotsprings
+16#2669    quarternote
+16#266A  musicalnote      SM930000
+16#266B  musicalnotedbl  eighthnotebeamed    SM910000
+16#266C    beamedsixteenthnotes
+16#266D    musicflatsign    flat
+16#266E        natural
+16#266F    musicsharpsign    sharp
+16#2701      a1
+16#2702      a2
+16#2703      a202
+16#2704      a3
+16#2706      a5
+16#2707      a119
+16#2708      a118
+16#2709      a117
+16#270C      a13
+16#270D      a14
+16#270E      a15
+16#270F      a16
+16#2710      a105
+16#2711      a17
+16#2712      a18
+16#2713    checkmark  a19
+16#2714      a20
+16#2715      a21
+16#2716      a22
+16#2717      a23
+16#2718      a24
+16#2719      a25
+16#271A      a26
+16#271B      a27
+16#271C      a28
+16#271D      a6
+16#271E      a7
+16#271F      a8
+16#2720      a9
+16#2721      a10
+16#2722      a29
+16#2723      a30
+16#2724      a31
+16#2725      a32
+16#2726      a33
+16#2727      a34
+16#2729      a36
+16#272A      a37
+16#272B      a38
+16#272C      a39
+16#272D      a40
+16#272E      a41
+16#272F      a42
+16#2730      a43
+16#2731      a44
+16#2732      a45
+16#2733      a46
+16#2734      a47
+16#2735      a48
+16#2736      a49
+16#2737      a50
+16#2738      a51
+16#2739      a52
+16#273A      a53
+16#273B      a54
+16#273C      a55
+16#273D      a56
+16#273E      a57
+16#273F      a58
+16#2740      a59
+16#2741      a60
+16#2742      a61
+16#2743      a62
+16#2744      a63
+16#2745      a64
+16#2746      a65
+16#2747      a66
+16#2748      a67
+16#2749      a68
+16#274A      a69
+16#274B      a70
+16#274D      a72
+16#274F      a74
+16#2750      a203
+16#2751      a75
+16#2752      a204
+16#2756      a79
+16#2758      a82
+16#2759      a83
+16#275A      a84
+16#275B      a97
+16#275C      a98
+16#275D      a99
+16#275E      a100
+16#2761      a101
+16#2762      a102
+16#2763      a103
+16#2764      a104
+16#2765      a106
+16#2766      a107
+16#2767      a108
+16#2768      a89
+16#2769      a90
+16#276A      a93
+16#276B      a94
+16#276C      a91
+16#276D      a92
+16#276E      a205
+16#276F      a85
+16#2770      a206
+16#2771      a86
+16#2772      a87
+16#2773      a88
+16#2774      a95
+16#2775      a96
+16#2776      a130
+16#2777      a131
+16#2778      a132
+16#2779      a133
+16#277A      a134
+16#277B      a135
+16#277C      a136
+16#277D      a137
+16#277E      a138
+16#277F      a139
+16#2780      a140
+16#2781      a141
+16#2782      a142
+16#2783      a143
+16#2784      a144
+16#2785      a145
+16#2786      a146
+16#2787      a147
+16#2788      a148
+16#2789      a149
+16#278A    onecircleinversesansserif  a150
+16#278B    twocircleinversesansserif  a151
+16#278C    threecircleinversesansserif  a152
+16#278D    fourcircleinversesansserif  a153
+16#278E    fivecircleinversesansserif  a154
+16#278F    sixcircleinversesansserif  a155
+16#2790    sevencircleinversesansserif  a156
+16#2791    eightcircleinversesansserif  a157
+16#2792    ninecircleinversesansserif  a158
+16#2793      a159
+16#2794      a160
+16#2798      a196
+16#2799      a165
+16#279A      a192
+16#279B      a166
+16#279C      a167
+16#279D      a168
+16#279E    arrowrightheavy  a169
+16#279F      a170
+16#27A0      a171
+16#27A1      a172
+16#27A2      a173
+16#27A3      a162
+16#27A4      a174
+16#27A5      a175
+16#27A6      a176
+16#27A7      a177
+16#27A8      a178
+16#27A9      a179
+16#27AA      a193
+16#27AB      a180
+16#27AC      a199
+16#27AD      a181
+16#27AE      a200
+16#27AF      a182
+16#27B1      a201
+16#27B2      a183
+16#27B3      a184
+16#27B4      a197
+16#27B5      a185
+16#27B6      a194
+16#27B7      a198
+16#27B8      a186
+16#27B9      a195
+16#27BA      a187
+16#27BB      a188
+16#27BC      a189
+16#27BD      a190
+16#27BE      a191
+16#3000    ideographicspace
+16#3001    ideographiccomma
+16#3002    ideographicperiod
+16#3003    dittomark
+16#3004    jis
+16#3005    ideographiciterationmark
+16#3006    ideographicclose
+16#3007    ideographiczero
+16#3008    anglebracketleft
+16#3009    anglebracketright
+16#300A    dblanglebracketleft
+16#300B    dblanglebracketright
+16#300C    cornerbracketleft
+16#300D    cornerbracketright
+16#300E    whitecornerbracketleft
+16#300F    whitecornerbracketright
+16#3010    blacklenticularbracketleft
+16#3011    blacklenticularbracketright
+16#3012    postalmark
+16#3013    getamark
+16#3014    tortoiseshellbracketleft
+16#3015    tortoiseshellbracketright
+16#3016    whitelenticularbracketleft
+16#3017    whitelenticularbracketright
+16#3018    whitetortoiseshellbracketleft
+16#3019    whitetortoiseshellbracketright
+16#301C    wavedash
+16#301D    quotedblprimereversed
+16#301E    quotedblprime
+16#3020    postalmarkface
+16#3021    onehangzhou
+16#3022    twohangzhou
+16#3023    threehangzhou
+16#3024    fourhangzhou
+16#3025    fivehangzhou
+16#3026    sixhangzhou
+16#3027    sevenhangzhou
+16#3028    eighthangzhou
+16#3029    ninehangzhou
+16#3036    circlepostalmark
+16#3041    asmallhiragana
+16#3042    ahiragana
+16#3043    ismallhiragana
+16#3044    ihiragana
+16#3045    usmallhiragana
+16#3046    uhiragana
+16#3047    esmallhiragana
+16#3048    ehiragana
+16#3049    osmallhiragana
+16#304A    ohiragana
+16#304B    kahiragana
+16#304C    gahiragana
+16#304D    kihiragana
+16#304E    gihiragana
+16#304F    kuhiragana
+16#3050    guhiragana
+16#3051    kehiragana
+16#3052    gehiragana
+16#3053    kohiragana
+16#3054    gohiragana
+16#3055    sahiragana
+16#3056    zahiragana
+16#3057    sihiragana
+16#3058    zihiragana
+16#3059    suhiragana
+16#305A    zuhiragana
+16#305B    sehiragana
+16#305C    zehiragana
+16#305D    sohiragana
+16#305E    zohiragana
+16#305F    tahiragana
+16#3060    dahiragana
+16#3061    tihiragana
+16#3062    dihiragana
+16#3063    tusmallhiragana
+16#3064    tuhiragana
+16#3065    duhiragana
+16#3066    tehiragana
+16#3067    dehiragana
+16#3068    tohiragana
+16#3069    dohiragana
+16#306A    nahiragana
+16#306B    nihiragana
+16#306C    nuhiragana
+16#306D    nehiragana
+16#306E    nohiragana
+16#306F    hahiragana
+16#3070    bahiragana
+16#3071    pahiragana
+16#3072    hihiragana
+16#3073    bihiragana
+16#3074    pihiragana
+16#3075    huhiragana
+16#3076    buhiragana
+16#3077    puhiragana
+16#3078    hehiragana
+16#3079    behiragana
+16#307A    pehiragana
+16#307B    hohiragana
+16#307C    bohiragana
+16#307D    pohiragana
+16#307E    mahiragana
+16#307F    mihiragana
+16#3080    muhiragana
+16#3081    mehiragana
+16#3082    mohiragana
+16#3083    yasmallhiragana
+16#3084    yahiragana
+16#3085    yusmallhiragana
+16#3086    yuhiragana
+16#3087    yosmallhiragana
+16#3088    yohiragana
+16#3089    rahiragana
+16#308A    rihiragana
+16#308B    ruhiragana
+16#308C    rehiragana
+16#308D    rohiragana
+16#308E    wasmallhiragana
+16#308F    wahiragana
+16#3090    wihiragana
+16#3091    wehiragana
+16#3092    wohiragana
+16#3093    nhiragana
+16#3094    vuhiragana
+16#309B    voicedmarkkana
+16#309C    semivoicedmarkkana
+16#309D    iterationhiragana
+16#309E    voicediterationhiragana
+16#30A1    asmallkatakana
+16#30A2    akatakana
+16#30A3    ismallkatakana
+16#30A4    ikatakana
+16#30A5    usmallkatakana
+16#30A6    ukatakana
+16#30A7    esmallkatakana
+16#30A8    ekatakana
+16#30A9    osmallkatakana
+16#30AA    okatakana
+16#30AB    kakatakana
+16#30AC    gakatakana
+16#30AD    kikatakana
+16#30AE    gikatakana
+16#30AF    kukatakana
+16#30B0    gukatakana
+16#30B1    kekatakana
+16#30B2    gekatakana
+16#30B3    kokatakana
+16#30B4    gokatakana
+16#30B5    sakatakana
+16#30B6    zakatakana
+16#30B7    sikatakana
+16#30B8    zikatakana
+16#30B9    sukatakana
+16#30BA    zukatakana
+16#30BB    sekatakana
+16#30BC    zekatakana
+16#30BD    sokatakana
+16#30BE    zokatakana
+16#30BF    takatakana
+16#30C0    dakatakana
+16#30C1    tikatakana
+16#30C2    dikatakana
+16#30C3    tusmallkatakana
+16#30C4    tukatakana
+16#30C5    dukatakana
+16#30C6    tekatakana
+16#30C7    dekatakana
+16#30C8    tokatakana
+16#30C9    dokatakana
+16#30CA    nakatakana
+16#30CB    nikatakana
+16#30CC    nukatakana
+16#30CD    nekatakana
+16#30CE    nokatakana
+16#30CF    hakatakana
+16#30D0    bakatakana
+16#30D1    pakatakana
+16#30D2    hikatakana
+16#30D3    bikatakana
+16#30D4    pikatakana
+16#30D5    hukatakana
+16#30D6    bukatakana
+16#30D7    pukatakana
+16#30D8    hekatakana
+16#30D9    bekatakana
+16#30DA    pekatakana
+16#30DB    hokatakana
+16#30DC    bokatakana
+16#30DD    pokatakana
+16#30DE    makatakana
+16#30DF    mikatakana
+16#30E0    mukatakana
+16#30E1    mekatakana
+16#30E2    mokatakana
+16#30E3    yasmallkatakana
+16#30E4    yakatakana
+16#30E5    yusmallkatakana
+16#30E6    yukatakana
+16#30E7    yosmallkatakana
+16#30E8    yokatakana
+16#30E9    rakatakana
+16#30EA    rikatakana
+16#30EB    rukatakana
+16#30EC    rekatakana
+16#30ED    rokatakana
+16#30EE    wasmallkatakana
+16#30EF    wakatakana
+16#30F0    wikatakana
+16#30F1    wekatakana
+16#30F2    wokatakana
+16#30F3    nkatakana
+16#30F4    vukatakana
+16#30F5    kasmallkatakana
+16#30F6    kesmallkatakana
+16#30F7    vakatakana
+16#30F8    vikatakana
+16#30F9    vekatakana
+16#30FA    vokatakana
+16#30FB    dotkatakana
+16#30FC    prolongedkana
+16#30FD    iterationkatakana
+16#30FE    voicediterationkatakana
+16#3105    bbopomofo
+16#3106    pbopomofo
+16#3107    mbopomofo
+16#3108    fbopomofo
+16#3109    dbopomofo
+16#310A    tbopomofo
+16#310B    nbopomofo
+16#310C    lbopomofo
+16#310D    gbopomofo
+16#310E    kbopomofo
+16#310F    hbopomofo
+16#3110    jbopomofo
+16#3111    qbopomofo
+16#3112    xbopomofo
+16#3113    zhbopomofo
+16#3114    chbopomofo
+16#3115    shbopomofo
+16#3116    rbopomofo
+16#3117    zbopomofo
+16#3118    cbopomofo
+16#3119    sbopomofo
+16#311A    abopomofo
+16#311B    obopomofo
+16#311C    ebopomofo
+16#311D    ehbopomofo
+16#311E    aibopomofo
+16#311F    eibopomofo
+16#3120    aubopomofo
+16#3121    oubopomofo
+16#3122    anbopomofo
+16#3123    enbopomofo
+16#3124    angbopomofo
+16#3125    engbopomofo
+16#3126    erbopomofo
+16#3127    ibopomofo
+16#3128    ubopomofo
+16#3129    iubopomofo
+16#3131    kiyeokkorean
+16#3132    ssangkiyeokkorean
+16#3133    kiyeoksioskorean
+16#3134    nieunkorean
+16#3135    nieuncieuckorean
+16#3136    nieunhieuhkorean
+16#3137    tikeutkorean
+16#3138    ssangtikeutkorean
+16#3139    rieulkorean
+16#313A    rieulkiyeokkorean
+16#313B    rieulmieumkorean
+16#313C    rieulpieupkorean
+16#313D    rieulsioskorean
+16#313E    rieulthieuthkorean
+16#313F    rieulphieuphkorean
+16#3140    rieulhieuhkorean
+16#3141    mieumkorean
+16#3142    pieupkorean
+16#3143    ssangpieupkorean
+16#3144    pieupsioskorean
+16#3145    sioskorean
+16#3146    ssangsioskorean
+16#3147    ieungkorean
+16#3148    cieuckorean
+16#3149    ssangcieuckorean
+16#314A    chieuchkorean
+16#314B    khieukhkorean
+16#314C    thieuthkorean
+16#314D    phieuphkorean
+16#314E    hieuhkorean
+16#314F    akorean
+16#3150    aekorean
+16#3151    yakorean
+16#3152    yaekorean
+16#3153    eokorean
+16#3154    ekorean
+16#3155    yeokorean
+16#3156    yekorean
+16#3157    okorean
+16#3158    wakorean
+16#3159    waekorean
+16#315A    oekorean
+16#315B    yokorean
+16#315C    ukorean
+16#315D    weokorean
+16#315E    wekorean
+16#315F    wikorean
+16#3160    yukorean
+16#3161    eukorean
+16#3162    yikorean
+16#3163    ikorean
+16#3164    hangulfiller
+16#3165    ssangnieunkorean
+16#3166    nieuntikeutkorean
+16#3167    nieunsioskorean
+16#3168    nieunpansioskorean
+16#3169    rieulkiyeoksioskorean
+16#316A    rieultikeutkorean
+16#316B    rieulpieupsioskorean
+16#316C    rieulpansioskorean
+16#316D    rieulyeorinhieuhkorean
+16#316E    mieumpieupkorean
+16#316F    mieumsioskorean
+16#3170    mieumpansioskorean
+16#3171    kapyeounmieumkorean
+16#3172    pieupkiyeokkorean
+16#3173    pieuptikeutkorean
+16#3174    pieupsioskiyeokkorean
+16#3175    pieupsiostikeutkorean
+16#3176    pieupcieuckorean
+16#3177    pieupthieuthkorean
+16#3178    kapyeounpieupkorean
+16#3179    kapyeounssangpieupkorean
+16#317A    sioskiyeokkorean
+16#317B    siosnieunkorean
+16#317C    siostikeutkorean
+16#317D    siospieupkorean
+16#317E    sioscieuckorean
+16#317F    pansioskorean
+16#3180    ssangieungkorean
+16#3181    yesieungkorean
+16#3182    yesieungsioskorean
+16#3183    yesieungpansioskorean
+16#3184    kapyeounphieuphkorean
+16#3185    ssanghieuhkorean
+16#3186    yeorinhieuhkorean
+16#3187    yoyakorean
+16#3188    yoyaekorean
+16#3189    yoikorean
+16#318A    yuyeokorean
+16#318B    yuyekorean
+16#318C    yuikorean
+16#318D    araeakorean
+16#318E    araeaekorean
+16#3200    kiyeokparenkorean
+16#3201    nieunparenkorean
+16#3202    tikeutparenkorean
+16#3203    rieulparenkorean
+16#3204    mieumparenkorean
+16#3205    pieupparenkorean
+16#3206    siosparenkorean
+16#3207    ieungparenkorean
+16#3208    cieucparenkorean
+16#3209    chieuchparenkorean
+16#320A    khieukhparenkorean
+16#320B    thieuthparenkorean
+16#320C    phieuphparenkorean
+16#320D    hieuhparenkorean
+16#320E    kiyeokaparenkorean
+16#320F    nieunaparenkorean
+16#3210    tikeutaparenkorean
+16#3211    rieulaparenkorean
+16#3212    mieumaparenkorean
+16#3213    pieupaparenkorean
+16#3214    siosaparenkorean
+16#3215    ieungaparenkorean
+16#3216    cieucaparenkorean
+16#3217    chieuchaparenkorean
+16#3218    khieukhaparenkorean
+16#3219    thieuthaparenkorean
+16#321A    phieuphaparenkorean
+16#321B    hieuhaparenkorean
+16#321C    cieucuparenkorean
+16#3220    oneideographicparen
+16#3221    twoideographicparen
+16#3222    threeideographicparen
+16#3223    fourideographicparen
+16#3224    fiveideographicparen
+16#3225    sixideographicparen
+16#3226    sevenideographicparen
+16#3227    eightideographicparen
+16#3228    nineideographicparen
+16#3229    tenideographicparen
+16#322A    ideographicmoonparen
+16#322B    ideographicfireparen
+16#322C    ideographicwaterparen
+16#322D    ideographicwoodparen
+16#322E    ideographicmetalparen
+16#322F    ideographicearthparen
+16#3230    ideographicsunparen
+16#3231    ideographicstockparen
+16#3232    ideographichaveparen
+16#3233    ideographicsocietyparen
+16#3234    ideographicnameparen
+16#3235    ideographicspecialparen
+16#3236    ideographicfinancialparen
+16#3237    ideographiccongratulationparen
+16#3238    ideographiclaborparen
+16#3239    ideographicrepresentparen
+16#323A    ideographiccallparen
+16#323B    ideographicstudyparen
+16#323C    ideographicsuperviseparen
+16#323D    ideographicenterpriseparen
+16#323E    ideographicresourceparen
+16#323F    ideographicallianceparen
+16#3240    ideographicfestivalparen
+16#3242    ideographicselfparen
+16#3243    ideographicreachparen
+16#3260    kiyeokcirclekorean
+16#3261    nieuncirclekorean
+16#3262    tikeutcirclekorean
+16#3263    rieulcirclekorean
+16#3264    mieumcirclekorean
+16#3265    pieupcirclekorean
+16#3266    sioscirclekorean
+16#3267    ieungcirclekorean
+16#3268    cieuccirclekorean
+16#3269    chieuchcirclekorean
+16#326A    khieukhcirclekorean
+16#326B    thieuthcirclekorean
+16#326C    phieuphcirclekorean
+16#326D    hieuhcirclekorean
+16#326E    kiyeokacirclekorean
+16#326F    nieunacirclekorean
+16#3270    tikeutacirclekorean
+16#3271    rieulacirclekorean
+16#3272    mieumacirclekorean
+16#3273    pieupacirclekorean
+16#3274    siosacirclekorean
+16#3275    ieungacirclekorean
+16#3276    cieucacirclekorean
+16#3277    chieuchacirclekorean
+16#3278    khieukhacirclekorean
+16#3279    thieuthacirclekorean
+16#327A    phieuphacirclekorean
+16#327B    hieuhacirclekorean
+16#327F    koreanstandardsymbol
+16#328A    ideographmooncircle
+16#328B    ideographfirecircle
+16#328C    ideographwatercircle
+16#328D    ideographwoodcircle
+16#328E    ideographmetalcircle
+16#328F    ideographearthcircle
+16#3290    ideographsuncircle
+16#3294    ideographnamecircle
+16#3296    ideographicfinancialcircle
+16#3298    ideographiclaborcircle
+16#3299    ideographicsecretcircle
+16#329D    ideographicexcellentcircle
+16#329E    ideographicprintcircle
+16#32A3    ideographiccorrectcircle
+16#32A4    ideographichighcircle
+16#32A5    ideographiccentrecircle
+16#32A6    ideographiclowcircle
+16#32A7    ideographicleftcircle
+16#32A8    ideographicrightcircle
+16#32A9    ideographicmedicinecircle
+16#3300    apaatosquare
+16#3303    aarusquare
+16#3305    intisquare
+16#330D    karoriisquare
+16#3314    kirosquare
+16#3315    kiroguramusquare
+16#3316    kiromeetorusquare
+16#3318    guramusquare
+16#331E    kooposquare
+16#3322    sentisquare
+16#3323    sentosquare
+16#3326    dorusquare
+16#3327    tonsquare
+16#332A    haitusquare
+16#332B    paasentosquare
+16#3331    birusquare
+16#3333    huiitosquare
+16#3336    hekutaarusquare
+16#3339    herutusquare
+16#333B    peezisquare
+16#3342    hoonsquare
+16#3347    mansyonsquare
+16#3349    mirisquare
+16#334A    miribaarusquare
+16#334D    meetorusquare
+16#334E    yaadosquare
+16#3351    rittorusquare
+16#3357    wattosquare
+16#337B    heiseierasquare
+16#337C    syouwaerasquare
+16#337D    taisyouerasquare
+16#337E    meizierasquare
+16#337F    corporationsquare
+16#3380    paampssquare
+16#3381    nasquare
+16#3382    muasquare
+16#3383    masquare
+16#3384    kasquare
+16#3385    KBsquare
+16#3386    MBsquare
+16#3387    GBsquare
+16#3388    calsquare
+16#3389    kcalsquare
+16#338A    pfsquare
+16#338B    nfsquare
+16#338C    mufsquare
+16#338D    mugsquare
+16#338E    squaremg
+16#338F    squarekg
+16#3390    Hzsquare
+16#3391    khzsquare
+16#3392    mhzsquare
+16#3393    ghzsquare
+16#3394    thzsquare
+16#3395    mulsquare
+16#3396    mlsquare
+16#3397    dlsquare
+16#3398    klsquare
+16#3399    fmsquare
+16#339A    nmsquare
+16#339B    mumsquare
+16#339C    squaremm
+16#339D    squarecm
+16#339E    squarekm
+16#339F    mmsquaredsquare
+16#33A0    cmsquaredsquare
+16#33A1    squaremsquared
+16#33A2    kmsquaredsquare
+16#33A3    mmcubedsquare
+16#33A4    cmcubedsquare
+16#33A5    mcubedsquare
+16#33A6    kmcubedsquare
+16#33A7    moverssquare
+16#33A8    moverssquaredsquare
+16#33A9    pasquare
+16#33AA    kpasquare
+16#33AB    mpasquare
+16#33AC    gpasquare
+16#33AD    radsquare
+16#33AE    radoverssquare
+16#33AF    radoverssquaredsquare
+16#33B0    pssquare
+16#33B1    nssquare
+16#33B2    mussquare
+16#33B3    mssquare
+16#33B4    pvsquare
+16#33B5    nvsquare
+16#33B6    muvsquare
+16#33B7    mvsquare
+16#33B8    kvsquare
+16#33B9    mvmegasquare
+16#33BA    pwsquare
+16#33BB    nwsquare
+16#33BC    muwsquare
+16#33BD    mwsquare
+16#33BE    kwsquare
+16#33BF    mwmegasquare
+16#33C0    kohmsquare
+16#33C1    mohmsquare
+16#33C2    amsquare
+16#33C3    bqsquare
+16#33C4    squarecc
+16#33C5    cdsquare
+16#33C6    coverkgsquare
+16#33C7    cosquare
+16#33C8    dbsquare
+16#33C9    gysquare
+16#33CA    hasquare
+16#33CB    HPsquare
+16#33CD    KKsquare
+16#33CE    squarekmcapital
+16#33CF    ktsquare
+16#33D0    lmsquare
+16#33D1    squareln
+16#33D2    squarelog
+16#33D3    lxsquare
+16#33D4    mbsquare
+16#33D5    squaremil
+16#33D6    molsquare
+16#33D8    pmsquare
+16#33DB    srsquare
+16#33DC    svsquare
+16#33DD    wbsquare
+16#5344    twentyhangzhou
+16#E802        finalkafwithsheva
+16#E803        finalkafwithqamats
+16#E804        lamedwithholam
+16#E805        lamedwithdageshandholam
+16#E811        lamwithmeemwithjeeminitial
+16#E812        behwithhehinitial
+16#E813        pehwithhehinitial
+16#E814        tehwithhehinitial
+16#E815        noonwithhehinitial
+16#E816        rayaleflam
+16#E818        shaddawithfathatanisolated
+16#E820        fathalow
+16#E821        dammalow
+16#E822        sukunlow
+16#E823        fathatanlow
+16#E824        dammatanlow
+16#E825        shaddalow
+16#E826        kasralow
+16#E827        kasratanlow
+16#E828        shaddawithfathalow shaddawithfathaisolatedlow
+16#E829        shaddawithdammalow shaddawithdammaisolatedlow
+16#E82A        shaddawithfathatanisolatedlow shaddawithfathatanlow
+16#E82B        shaddawithdammatanisolatedlow shaddawithdammatanlow
+16#E82C        shaddawithkasraisolatedlow shaddawithkasralow
+16#E82D        shaddawithkasratanisolatedlow shaddawithkasratanlow
+16#E832        fathaonhamza
+16#E833        fathatanonhamza
+16#E834        sukunonhamza
+16#E835        dammaonhamza
+16#E836        dammatanonhamza
+16#F003        circumflex1
+16#F004        tilde1
+16#F005        dieresis1
+16#F006        breve1
+16#F007        ring1
+16#F008        cedilla1
+16#F009        hungarumlaut1
+16#F00A        caron1
+16#F00D        cedilla2
+16#F6BE    dotlessj
+16#F6BF    LL
+16#F6C0    ll
+16#F6C3    commaaccent
+16#F6C4    afii10063
+16#F6C5    afii10064
+16#F6C6    afii10192
+16#F6C7    afii10831
+16#F6C8    afii10832
+16#F6C9    Acute
+16#F6CA    Caron
+16#F6CB    Dieresis
+16#F6CC    DieresisAcute
+16#F6CD    DieresisGrave
+16#F6CE    Grave
+16#F6CF    Hungarumlaut
+16#F6D0    Macron
+16#F6D1    cyrBreve
+16#F6D2    cyrFlex
+16#F6D3    dblGrave
+16#F6D4    cyrbreve
+16#F6D5    cyrflex
+16#F6D6    dblgrave
+16#F6D7    dieresisacute
+16#F6D8    dieresisgrave
+16#F6D9    copyrightserif
+16#F6DA    registerserif
+16#F6DB    trademarkserif
+16#F6DC    onefitted
+16#F6DD    rupiah
+16#F6DE    threequartersemdash
+16#F6DF    centinferior
+16#F6E0    centsuperior
+16#F6E1    commainferior
+16#F6E2    commasuperior
+16#F6E3    dollarinferior
+16#F6E4    dollarsuperior
+16#F6E5    hypheninferior
+16#F6E6    hyphensuperior
+16#F6E7    periodinferior
+16#F6E8    periodsuperior
+16#F6E9    asuperior
+16#F6EA    bsuperior
+16#F6EB    dsuperior
+16#F6EC    esuperior
+16#F6ED    isuperior
+16#F6EE    lsuperior
+16#F6EF    msuperior
+16#F6F0    osuperior
+16#F6F1    rsuperior
+16#F6F2    ssuperior
+16#F6F3    tsuperior
+16#F6F4    Brevesmall
+16#F6F5    Caronsmall
+16#F6F6    Circumflexsmall
+16#F6F7    Dotaccentsmall
+16#F6F8    Hungarumlautsmall
+16#F6F9    Lslashsmall
+16#F6FA    OEsmall
+16#F6FB    Ogoneksmall
+16#F6FC    Ringsmall
+16#F6FD    Scaronsmall
+16#F6FE    Tildesmall
+16#F6FF    Zcaronsmall
+16#F700        f700
+16#F701        f701
+16#F702        f702
+16#F703        f703
+16#F704        f704
+16#F705        f705
+16#F706        f706
+16#F707        f707
+16#F708        f708
+16#F709        f709
+16#F70A        f70a
+16#F70B        f70b
+16#F70C        f70c
+16#F70D        f70d
+16#F70E        f70e
+16#F70F        f70f
+16#F710        f710
+16#F711        f711
+16#F712        f712
+16#F713        f713
+16#F714        f714
+16#F715        f715
+16#F716        f716
+16#F717        f717
+16#F718        f718
+16#F719        f719
+16#F71A        f71a
+16#F71C        f71c
+16#F71D        f71d
+16#F721    exclamsmall
+16#F724    dollaroldstyle
+16#F726    ampersandsmall
+16#F730    zerooldstyle
+16#F731    oneoldstyle
+16#F732    twooldstyle
+16#F733    threeoldstyle
+16#F734    fouroldstyle
+16#F735    fiveoldstyle
+16#F736    sixoldstyle
+16#F737    sevenoldstyle
+16#F738    eightoldstyle
+16#F739    nineoldstyle
+16#F73F    questionsmall
+16#F760    Gravesmall
+16#F761    Asmall
+16#F762    Bsmall
+16#F763    Csmall
+16#F764    Dsmall
+16#F765    Esmall
+16#F766    Fsmall
+16#F767    Gsmall
+16#F768    Hsmall
+16#F769    Ismall
+16#F76A    Jsmall
+16#F76B    Ksmall
+16#F76C    Lsmall
+16#F76D    Msmall
+16#F76E    Nsmall
+16#F76F    Osmall
+16#F770    Psmall
+16#F771    Qsmall
+16#F772    Rsmall
+16#F773    Ssmall
+16#F774    Tsmall
+16#F775    Usmall
+16#F776    Vsmall
+16#F777    Wsmall
+16#F778    Xsmall
+16#F779    Ysmall
+16#F77A    Zsmall
+16#F7A1    exclamdownsmall
+16#F7A2    centoldstyle
+16#F7A8    Dieresissmall
+16#F7AF    Macronsmall
+16#F7B4    Acutesmall
+16#F7B8    Cedillasmall
+16#F7BF    questiondownsmall
+16#F7E0    Agravesmall
+16#F7E1    Aacutesmall
+16#F7E2    Acircumflexsmall
+16#F7E3    Atildesmall
+16#F7E4    Adieresissmall
+16#F7E5    Aringsmall
+16#F7E6    AEsmall
+16#F7E7    Ccedillasmall
+16#F7E8    Egravesmall
+16#F7E9    Eacutesmall
+16#F7EA    Ecircumflexsmall
+16#F7EB    Edieresissmall
+16#F7EC    Igravesmall
+16#F7ED    Iacutesmall
+16#F7EE    Icircumflexsmall
+16#F7EF    Idieresissmall
+16#F7F0    Ethsmall
+16#F7F1    Ntildesmall
+16#F7F2    Ogravesmall
+16#F7F3    Oacutesmall
+16#F7F4    Ocircumflexsmall
+16#F7F5    Otildesmall
+16#F7F6    Odieresissmall
+16#F7F8    Oslashsmall
+16#F7F9    Ugravesmall
+16#F7FA    Uacutesmall
+16#F7FB    Ucircumflexsmall
+16#F7FC    Udieresissmall
+16#F7FD    Yacutesmall
+16#F7FE    Thornsmall
+16#F7FF    Ydieresissmall
+16#F810        Dcaron1
+16#F811        dcaron1
+16#F812        Lcaron1
+16#F813        lcaron1
+16#F814        Tcaron1
+16#F815        tcaron1 tcaronaltone
+16#F816        Scedilla1
+16#F817        scedilla1
+16#F818        Tcedilla1 Kcedilla1
+16#F819        kcedilla1 tcedilla1
+16#F81A        Lcedilla1 gcedilla1
+16#F81B        lcedilla1 peso1 pesoph
+16#F81C        Ncedilla1
+16#F81D        ncedilla1
+16#F81E        Rcedilla1
+16#F81F        rcedilla1
+16#F820        dotcircle1
+16#F821        ltshade1
+16#F822        shade1
+16#F823        dkshade1
+16#F830        logonek
+16#F831        Rcircumflex
+16#F832        rcircumflex
+16#F833        Ucedilla
+16#F834        ucedilla
+16#F884    maihanakatleftthai
+16#F885    saraileftthai
+16#F886    saraiileftthai
+16#F887    saraueleftthai
+16#F888    saraueeleftthai
+16#F889    maitaikhuleftthai
+16#F88A    maiekupperleftthai
+16#F88B    maieklowrightthai
+16#F88C    maieklowleftthai
+16#F88D    maithoupperleftthai
+16#F88E    maitholowrightthai
+16#F88F    maitholowleftthai
+16#F890    maitriupperleftthai
+16#F891    maitrilowrightthai
+16#F892    maitrilowleftthai
+16#F893    maichattawaupperleftthai
+16#F894    maichattawalowrightthai
+16#F895    maichattawalowleftthai
+16#F896    thanthakhatupperleftthai
+16#F897    thanthakhatlowrightthai
+16#F898    thanthakhatlowleftthai
+16#F899    nikhahitleftthai
+16#F8E5    radicalex
+16#F8E6    arrowvertex
+16#F8E7    arrowhorizex
+16#F8E8    registersans
+16#F8E9    copyrightsans
+16#F8EA    trademarksans
+16#F8EB    parenlefttp
+16#F8EC    parenleftex
+16#F8ED    parenleftbt
+16#F8EE    bracketlefttp
+16#F8EF    bracketleftex
+16#F8F0    bracketleftbt
+16#F8F1    bracelefttp
+16#F8F2    braceleftmid
+16#F8F3    braceleftbt
+16#F8F4    braceex
+16#F8F5    integralex
+16#F8F6    parenrighttp    help
+16#F8F7    parenrightex
+16#F8F8    parenrightbt
+16#F8F9    bracketrighttp    power
+16#F8FA    bracketrightex
+16#F8FB    bracketrightbt    contextmenu
+16#F8FC    bracerighttp    carriagereturnleft
+16#F8FD    bracerightmid    enter
+16#F8FE    bracerightbt    appleopen
+16#F8FF    apple
+16#FB00    ff	f_f
+16#FB01    fi	f_i
+16#FB02    fl	f_l
+16#FB03    ffi	f_f_i
+16#FB04    ffl	f_f_l
+16#FB05        slongt longst
+16#FB06        st
+16#FB1E        varika
+16#FB1F    afii57705 doubleyodpatah doubleyodpatahhebrew yodyodpatahhebrew
+16#FB20    ayinaltonehebrew    alternativeayin
+16#FB2A    afii57694 shinshindot shinshindothebrew    shinwithshindot
+16#FB2B    afii57695 shinsindot shinsindothebrew    shinwithsindot
+16#FB2C    shindageshshindot shindageshshindothebrew    shinwithdageshandshindot
+16#FB2D    shindageshsindot shindageshsindothebrew    shinwithdageshandsindot
+16#FB2E    alefpatahhebrew    alefwithpatah
+16#FB2F    alefqamatshebrew    alefwithqamats
+16#FB30    alefdageshhebrew    alefwithmapiq
+16#FB31    betdagesh betdageshhebrew    betwithdagesh
+16#FB32    gimeldagesh gimeldageshhebrew    gimelwithdagesh
+16#FB33    daletdagesh daletdageshhebrew    daletwithdagesh
+16#FB34    hedagesh hedageshhebrew    hewithmapiq
+16#FB35    afii57723 vavdagesh vavdagesh65 vavdageshhebrew    vavwithdagesh
+16#FB36    zayindagesh zayindageshhebrew    zayinwithdagesh
+16#FB38    tetdagesh tetdageshhebrew    tetwithdagesh
+16#FB39    yoddagesh yoddageshhebrew    yodwithdagesh
+16#FB3A    finalkafdagesh finalkafdageshhebrew    finalkafwithdagesh
+16#FB3B    kafdagesh kafdageshhebrew    kafwithdagesh
+16#FB3C    lameddagesh lameddageshhebrew    lamedwithdagesh
+16#FB3E    memdagesh memdageshhebrew    memwithdagesh
+16#FB40    nundagesh nundageshhebrew    nunwithdagesh
+16#FB41    samekhdagesh samekhdageshhebrew    samekhwithdagesh
+16#FB43    pefinaldageshhebrew    finalpewithdagesh
+16#FB44    pedagesh pedageshhebrew    pewithdagesh
+16#FB46    tsadidagesh tsadidageshhebrew    tsadiwithdagesh
+16#FB47    qofdagesh qofdageshhebrew    qofwithdagesh
+16#FB48    reshdageshhebrew    reshwithdagesh
+16#FB49    shindagesh shindageshhebrew    shinwithdagesh
+16#FB4A    tavdages tavdagesh tavdageshhebrew    tavwithdagesh
+16#FB4B    afii57700 vavholam vavholamhebrew    vavwithholam
+16#FB4C    betrafehebrew    betwithrafe
+16#FB4D    kafrafehebrew    kafwithrafe
+16#FB4E    perafehebrew    pewithrafe
+16#FB4F    aleflamedhebrew    aleflamed
+16#FB50        alefwaslaisolated
+16#FB51        alefwaslafinal
+16#FB56        pehisolated
+16#FB57    pehfinalarabic    pehfinal
+16#FB58    pehinitialarabic    pehinitial
+16#FB59    pehmedialarabic    pehmedial
+16#FB67    ttehfinalarabic
+16#FB68    ttehinitialarabic
+16#FB69    ttehmedialarabic
+16#FB6A        vehisolated
+16#FB6B    vehfinalarabic    vehfinal
+16#FB6C    vehinitialarabic    vehinitial
+16#FB6D    vehmedialarabic    vehmedial
+16#FB7A        tchehisolated
+16#FB7B    tchehfinalarabic    tchehfinal
+16#FB7C    tchehinitialarabic    tchehinitial
+%L#FB7C_FEE4    tchehmeeminitialarabic
+16#FB7D    tchehmedialarabic    tchehmedial
+16#FB89    ddalfinalarabic
+16#FB8A        jehisolated
+16#FB8B    jehfinalarabic    jehfinal
+16#FB8D    rrehfinalarabic
+16#FB8E        kehehisolated
+16#FB8F        kehehfinal
+16#FB90        kehehinitial
+16#FB91        kehehmedial
+16#FB92        gafisolated
+16#FB93    gaffinalarabic    gaffinal
+16#FB94    gafinitialarabic    gafinitial
+16#FB95    gafmedialarabic    gafmedial
+16#FB9F    noonghunnafinalarabic
+16#FBA4    hehhamzaaboveisolatedarabic
+16#FBA5    hehhamzaabovefinalarabic
+16#FBA7    hehfinalaltonearabic
+16#FBA8    hehinitialaltonearabic
+16#FBA9    hehmedialaltonearabic
+16#FBAF    yehbarreefinalarabic
+16#FBFC        farsiyehisolated
+16#FBFD        farsiyehfinal
+16#FC08    behmeemisolatedarabic    behwithmeemisolated
+16#FC09        behwithalefmaksuraisolated
+16#FC0A        behwithyehisolated
+16#FC0B    tehjeemisolatedarabic
+16#FC0C    tehhahisolatedarabic
+16#FC0E    tehmeemisolatedarabic    tehwithmeemisolated
+16#FC10        tehwithyehisolated
+16#FC12        thehwithmeemisolated
+16#FC31        fehwithalefmaksuraisolated
+16#FC32        fehwithyehisolated
+16#FC3F        lamwithjeemisolated
+16#FC40        lamwithhahisolated
+16#FC41        lamwithkhahisolated
+16#FC42        lamwithmeemisolated
+16#FC43        lamwithalefmaksuraisolated
+16#FC44        lamwithyehisolated
+16#FC48    meemmeemisolatedarabic
+16#FC4B    noonjeemisolatedarabic
+16#FC4E    noonmeemisolatedarabic    noonwithmeemisolated
+16#FC4F        noonwithalefmaksuraisolated
+16#FC50        noonwithyehisolated
+16#FC58    yehmeemisolatedarabic    yehwithmeemisolated
+16#FC59        yehwithalefmaksuraisolated
+16#FC5E    shaddadammatanarabic    shaddawithdammatanisolated
+16#FC5F    shaddakasratanarabic    shaddawithkasratanisolated
+16#FC60    shaddafathaarabic    shaddawithfathaisolated
+16#FC61    shaddadammaarabic    shaddawithdammaisolated
+16#FC62    shaddakasraarabic    shaddawithkasraisolated
+16#FC6A        behwithrehfinal
+16#FC6D    behnoonfinalarabic    behwithnoonfinal
+16#FC6E        behwithalefmaksurafinal
+16#FC6F        behwithyehfinal
+16#FC70        noonwithzainfinal
+16#FC73    tehnoonfinalarabic    tehwithnoonfinal
+16#FC74        tehwithalefmaksurafinal
+16#FC75        tehwithyehfinal
+16#FC8D    noonnoonfinalarabic
+16#FC8E        noonwithalefmaksurafinal
+16#FC8F        noonwithyehfinal
+16#FC91        yehwithrehfinal
+16#FC94    yehnoonfinalarabic    yehwithnoonfinal
+16#FC95        yehwithalefmaksurafinal
+16#FC9C        behwithjeeminitial
+16#FC9D        behwithhahinitial
+16#FC9E        behwithkhahinitial
+16#FC9F    behmeeminitialarabic    behwithmeeminitial
+16#FCA1    tehjeeminitialarabic    tehwithjeeminitial
+16#FCA2    tehhahinitialarabic    tehwithhahinitial
+16#FCA3        tehwithkhahinitial
+16#FCA4    tehmeeminitialarabic    tehwithmeeminitial
+16#FCA6        thehwithmeeminitial
+16#FCA8        jeemwithmeeminitial
+16#FCAA        hahwithmeeminitial
+16#FCAC        khahwithmeeminitial
+16#FCB0        seenwithmeeminitial
+16#FCC9    lamjeeminitialarabic    lamwithjeeminitial
+16#FCCA    lamhahinitialarabic    lamwithhahinitial
+16#FCCB    lamkhahinitialarabic    lamwithkhahinitial
+16#FCCC    lammeeminitialarabic    lamwithmeeminitial
+16#FCCD        lamwithhehinitial
+16#FCCE        meemwithjeeminitial
+16#FCCF        meemwithhahinitial
+16#FCD0        meemwithkhahinitial
+16#FCD1    meemmeeminitialarabic    meemwithmeeminitial
+16#FCD2    noonjeeminitialarabic    noonwithjeeminitial
+16#FCD3        noonwithhahinitial
+16#FCD4        noonwithkhahinitial
+16#FCD5    noonmeeminitialarabic    noonwithmeeminitial
+16#FCD8        hehwithmeeminitial
+16#FCDA        yehwithjeeminitial
+16#FCDB        yehwithhahinitial
+16#FCDC        yehwithkhahinitial
+16#FCDD    yehmeeminitialarabic    yehwithmeeminitial
+16#FCF2        shaddawithfathamedial
+16#FCF3        shaddawithdammamedial
+16#FCF4        shaddawithkasramedial
+16#FD30        sheenwithmeeminitial
+16#FD3C        alefwithfathatanfinal
+16#FD3D        alefwithfathatanisolated
+16#FD3E    parenleftaltonearabic    ornateleftparenthesis
+16#FD3F    parenrightaltonearabic    ornaterightparenthesis
+16#FD88    lammeemhahinitialarabic    lamwithmeemwithhahinitial
+16#FDF2    lamlamhehisolatedarabic    allahisolated
+16#FDFA    sallallahoualayhewasallamarabic
+16#FE30    twodotleadervertical
+16#FE31    emdashvertical
+16#FE32    endashvertical
+16#FE33    underscorevertical
+16#FE34    wavyunderscorevertical
+16#FE35    parenleftvertical
+16#FE36    parenrightvertical
+16#FE37    braceleftvertical
+16#FE38    bracerightvertical
+16#FE39    tortoiseshellbracketleftvertical
+16#FE3A    tortoiseshellbracketrightvertical
+16#FE3B    blacklenticularbracketleftvertical
+16#FE3C    blacklenticularbracketrightvertical
+16#FE3D    dblanglebracketleftvertical
+16#FE3E    dblanglebracketrightvertical
+16#FE3F    anglebracketleftvertical
+16#FE40    anglebracketrightvertical
+16#FE41    cornerbracketleftvertical
+16#FE42    cornerbracketrightvertical
+16#FE43    whitecornerbracketleftvertical
+16#FE44    whitecornerbracketrightvertical
+16#FE49    overlinedashed
+16#FE4A    overlinecenterline
+16#FE4B    overlinewavy
+16#FE4C    overlinedblwavy
+16#FE4D    lowlinedashed
+16#FE4E    lowlinecenterline
+16#FE4F    underscorewavy
+16#FE50    commasmall
+16#FE52    periodsmall
+16#FE54    semicolonsmall
+16#FE55    colonsmall
+16#FE59    parenleftsmall
+16#FE5A    parenrightsmall
+16#FE5B    braceleftsmall
+16#FE5C    bracerightsmall
+16#FE5D    tortoiseshellbracketleftsmall
+16#FE5E    tortoiseshellbracketrightsmall
+16#FE5F    numbersignsmall
+16#FE61    asterisksmall
+16#FE62    plussmall
+16#FE63    hyphensmall
+16#FE64    lesssmall
+16#FE65    greatersmall
+16#FE66    equalsmall
+16#FE69    dollarsmall
+16#FE6A    percentsmall
+16#FE6B    atsmall
+16#FE70        fathatanisolated
+16#FE71        fathatanontatweel tatweelwithfathatanabove
+16#FE72        dammatanisolated
+16#FE74        kasratanisolated
+16#FE76        fathaisolated
+16#FE77        fathahontatweel fathamedial
+16#FE78        dammaisolated
+16#FE79        dammahontatweel dammamedial
+16#FE7A        kasraisolated
+16#FE7B        kasrahontatweel kasramedial
+16#FE7C        shaddaisolated
+16#FE7D        shaddahontatweel shaddamedial
+16#FE7E        sukunisolated
+16#FE7F        sukunontatweel sukunmedial
+16#FE80        hamzaisolated
+16#FE81        alefwithmaddaaboveisolated
+16#FE82    alefmaddaabovefinalarabic    alefwithmaddaabovefinal
+16#FE83        alefwithhamzaaboveisolated
+16#FE84    alefhamzaabovefinalarabic    alefwithhamzaabovefinal
+16#FE85        wawwithhamzaaboveisolated
+16#FE86    wawhamzaabovefinalarabic    wawwithhamzaabovefinal
+16#FE87        alefwithhamzabelowisolated
+16#FE88    alefhamzabelowfinalarabic    alefwithhamzabelowfinal
+16#FE89        yehwithhamzaaboveisolated
+16#FE8A    yehhamzaabovefinalarabic    yehwithhamzaabovefinal
+16#FE8B    yehhamzaaboveinitialarabic    yehwithhamzaaboveinitial
+16#FE8C    yehhamzaabovemedialarabic    yehwithhamzaabovemedial
+16#FE8D        alefisolated
+16#FE8E    aleffinalarabic    aleffinal
+16#FE8F        behisolated
+16#FE90    behfinalarabic    behfinal
+16#FE91    behinitialarabic    behinitial
+16#FE92    behmedialarabic    behmedial
+16#FE93        tehmarbutaisolated
+16#FE94    tehmarbutafinalarabic    tehmarbutafinal
+16#FE95        tehisolated
+16#FE96    tehfinalarabic    tehfinal
+16#FE97    tehinitialarabic    tehinitial
+16#FE98    tehmedialarabic    tehmedial
+16#FE99        thehisolated
+16#FE9A    thehfinalarabic    thehfinal
+16#FE9B    thehinitialarabic    thehinitial
+16#FE9C    thehmedialarabic    thehmedial
+16#FE9D        jeemisolated
+16#FE9E    jeemfinalarabic    jeemfinal
+16#FE9F    jeeminitialarabic    jeeminitial
+16#FEA0    jeemmedialarabic    jeemmedial
+16#FEA1        hahisolated
+16#FEA2    hahfinalarabic    hahfinal
+16#FEA3    hahinitialarabic    hahinitial
+16#FEA4    hahmedialarabic    hahmedial
+16#FEA5        khahisolated
+16#FEA6    khahfinalarabic    khahfinal
+16#FEA7    khahinitialarabic    khahinitial
+16#FEA8    khahmedialarabic    khahmedial
+16#FEA9        dalisolated
+16#FEAA    dalfinalarabic    dalfinal
+16#FEAB        thalisolated
+16#FEAC    thalfinalarabic    thalfinal
+16#FEAD        rehisolated
+16#FEAE    rehfinalarabic    rehfinal
+16#FEAF        zainisolated
+16#FEB0    zainfinalarabic    zainfinal
+16#FEB1        seenisolated
+16#FEB2    seenfinalarabic    seenfinal
+16#FEB3    seeninitialarabic    seeninitial
+16#FEB4    seenmedialarabic    seenmedial
+16#FEB5        sheenisolated
+16#FEB6    sheenfinalarabic    sheenfinal
+16#FEB7    sheeninitialarabic    sheeninitial
+16#FEB8    sheenmedialarabic    sheenmedial
+16#FEB9        sadisolated
+16#FEBA    sadfinalarabic    sadfinal
+16#FEBB    sadinitialarabic    sadinitial
+16#FEBC    sadmedialarabic    sadmedial
+16#FEBD        dadisolated
+16#FEBE    dadfinalarabic    dadfinal
+16#FEBF    dadinitialarabic    dadinitial
+16#FEC0    dadmedialarabic    dadmedial
+16#FEC1        tahisolated
+16#FEC2    tahfinalarabic    tahfinal
+16#FEC3    tahinitialarabic    tahinitial
+16#FEC4    tahmedialarabic    tahmedial
+16#FEC5        zahisolated
+16#FEC6    zahfinalarabic    zahfinal
+16#FEC7    zahinitialarabic    zahinitial
+16#FEC8    zahmedialarabic    zahmedial
+16#FEC9        ainisolated
+16#FECA    ainfinalarabic    ainfinal
+16#FECB    aininitialarabic    aininitial
+16#FECC    ainmedialarabic    ainmedial
+16#FECD        ghainisolated
+16#FECE    ghainfinalarabic    ghainfinal
+16#FECF    ghaininitialarabic    ghaininitial
+16#FED0    ghainmedialarabic    ghainmedial
+16#FED1        fehisolated
+16#FED2    fehfinalarabic    fehfinal
+16#FED3    fehinitialarabic    fehinitial
+16#FED4    fehmedialarabic    fehmedial
+16#FED5        qafisolated
+16#FED6    qaffinalarabic    qaffinal
+16#FED7    qafinitialarabic    qafinitial
+16#FED8    qafmedialarabic    qafmedial
+16#FED9        kafisolated
+16#FEDA    kaffinalarabic    arabickaffinal
+16#FEDB    kafinitialarabic    kafinitial
+16#FEDC    kafmedialarabic    kafmedial
+16#FEDD        lamisolated
+16#FEDE    lamfinalarabic    lamfinal
+16#FEDF    laminitialarabic    laminitial
+%L#FEDF_FEE4_FEA0    lammeemjeeminitialarabic
+%L#FEDF_FEE4_FEA8    lammeemkhahinitialarabic
+16#FEE0    lammedialarabic    lammedial
+16#FEE1        meemisolated
+16#FEE2    meemfinalarabic    meemfinal
+16#FEE3    meeminitialarabic    meeminitial
+16#FEE4    meemmedialarabic    meemmedial
+16#FEE5        noonisolated
+16#FEE6    noonfinalarabic    noonfinal
+16#FEE7    nooninitialarabic    nooninitial
+%L#FEE7_FEEC    noonhehinitialarabic
+16#FEE8    noonmedialarabic    noonmedial
+16#FEE9        hehisolated
+16#FEEA    hehfinalalttwoarabic hehfinalarabic    hehfinal
+16#FEEB    hehinitialarabic    hehinitial
+16#FEEC    hehmedialarabic    hehmedial
+16#FEED        wawisolated
+16#FEEE    wawfinalarabic    wawfinal
+16#FEEF        alefmaksuraisolated
+16#FEF0    alefmaksurafinalarabic    alefmaksurafinal
+16#FEF1        yehisolated
+16#FEF2    yehfinalarabic    yehfinal
+16#FEF3    alefmaksurainitialarabic yehinitialarabic    yehinitial
+16#FEF4    alefmaksuramedialarabic yehmedialarabic    yehmedial
+16#FEF5    lamalefmaddaaboveisolatedarabic    lamwithalefmaddaaboveisolatedd
+16#FEF6    lamalefmaddaabovefinalarabic    lamwithalefmaddaabovefinal
+16#FEF7    lamalefhamzaaboveisolatedarabic    lamwithalefhamzaaboveisolatedd
+16#FEF8    lamalefhamzaabovefinalarabic    lamwithalefhamzaabovefinal
+16#FEF9    lamalefhamzabelowisolatedarabic    lamwithalefhamzabelowisolated
+16#FEFA    lamalefhamzabelowfinalarabic    lamwithalefhamzabelowfinal
+16#FEFB    lamalefisolatedarabic    lamwithalefisolated
+16#FEFC    lamaleffinalarabic    lamwithaleffinal
+16#FEFF    zerowidthjoiner    zerowidthnobreakspace bom
+16#FF01    exclammonospace
+16#FF02    quotedblmonospace
+16#FF03    numbersignmonospace
+16#FF04    dollarmonospace
+16#FF05    percentmonospace
+16#FF06    ampersandmonospace
+16#FF07    quotesinglemonospace
+16#FF08    parenleftmonospace
+16#FF09    parenrightmonospace
+16#FF0A    asteriskmonospace
+16#FF0B    plusmonospace
+16#FF0C    commamonospace
+16#FF0D    hyphenmonospace
+16#FF0E    periodmonospace
+16#FF0F    slashmonospace
+16#FF10    zeromonospace
+16#FF11    onemonospace
+16#FF12    twomonospace
+16#FF13    threemonospace
+16#FF14    fourmonospace
+16#FF15    fivemonospace
+16#FF16    sixmonospace
+16#FF17    sevenmonospace
+16#FF18    eightmonospace
+16#FF19    ninemonospace
+16#FF1A    colonmonospace
+16#FF1B    semicolonmonospace
+16#FF1C    lessmonospace
+16#FF1D    equalmonospace
+16#FF1E    greatermonospace
+16#FF1F    questionmonospace
+16#FF20    atmonospace
+16#FF21    Amonospace
+16#FF22    Bmonospace
+16#FF23    Cmonospace
+16#FF24    Dmonospace
+16#FF25    Emonospace
+16#FF26    Fmonospace
+16#FF27    Gmonospace
+16#FF28    Hmonospace
+16#FF29    Imonospace
+16#FF2A    Jmonospace
+16#FF2B    Kmonospace
+16#FF2C    Lmonospace
+16#FF2D    Mmonospace
+16#FF2E    Nmonospace
+16#FF2F    Omonospace
+16#FF30    Pmonospace
+16#FF31    Qmonospace
+16#FF32    Rmonospace
+16#FF33    Smonospace
+16#FF34    Tmonospace
+16#FF35    Umonospace
+16#FF36    Vmonospace
+16#FF37    Wmonospace
+16#FF38    Xmonospace
+16#FF39    Ymonospace
+16#FF3A    Zmonospace
+16#FF3B    bracketleftmonospace
+16#FF3C    backslashmonospace
+16#FF3D    bracketrightmonospace
+16#FF3E    asciicircummonospace
+16#FF3F    underscoremonospace
+16#FF40    gravemonospace
+16#FF41    amonospace
+16#FF42    bmonospace
+16#FF43    cmonospace
+16#FF44    dmonospace
+16#FF45    emonospace
+16#FF46    fmonospace
+16#FF47    gmonospace
+16#FF48    hmonospace
+16#FF49    imonospace
+16#FF4A    jmonospace
+16#FF4B    kmonospace
+16#FF4C    lmonospace
+16#FF4D    mmonospace
+16#FF4E    nmonospace
+16#FF4F    omonospace
+16#FF50    pmonospace
+16#FF51    qmonospace
+16#FF52    rmonospace
+16#FF53    smonospace
+16#FF54    tmonospace
+16#FF55    umonospace
+16#FF56    vmonospace
+16#FF57    wmonospace
+16#FF58    xmonospace
+16#FF59    ymonospace
+16#FF5A    zmonospace
+16#FF5B    braceleftmonospace
+16#FF5C    barmonospace
+16#FF5D    bracerightmonospace
+16#FF5E    asciitildemonospace
+16#FF61    periodhalfwidth
+16#FF62    cornerbracketlefthalfwidth
+16#FF63    cornerbracketrighthalfwidth
+16#FF64    ideographiccommaleft
+16#FF65    middledotkatakanahalfwidth
+16#FF66    wokatakanahalfwidth
+16#FF67    asmallkatakanahalfwidth
+16#FF68    ismallkatakanahalfwidth
+16#FF69    usmallkatakanahalfwidth
+16#FF6A    esmallkatakanahalfwidth
+16#FF6B    osmallkatakanahalfwidth
+16#FF6C    yasmallkatakanahalfwidth
+16#FF6D    yusmallkatakanahalfwidth
+16#FF6E    yosmallkatakanahalfwidth
+16#FF6F    tusmallkatakanahalfwidth
+16#FF70    katahiraprolongmarkhalfwidth
+16#FF71    akatakanahalfwidth
+16#FF72    ikatakanahalfwidth
+16#FF73    ukatakanahalfwidth
+16#FF74    ekatakanahalfwidth
+16#FF75    okatakanahalfwidth
+16#FF76    kakatakanahalfwidth
+16#FF77    kikatakanahalfwidth
+16#FF78    kukatakanahalfwidth
+16#FF79    kekatakanahalfwidth
+16#FF7A    kokatakanahalfwidth
+16#FF7B    sakatakanahalfwidth
+16#FF7C    sikatakanahalfwidth
+16#FF7D    sukatakanahalfwidth
+16#FF7E    sekatakanahalfwidth
+16#FF7F    sokatakanahalfwidth
+16#FF80    takatakanahalfwidth
+16#FF81    tikatakanahalfwidth
+16#FF82    tukatakanahalfwidth
+16#FF83    tekatakanahalfwidth
+16#FF84    tokatakanahalfwidth
+16#FF85    nakatakanahalfwidth
+16#FF86    nikatakanahalfwidth
+16#FF87    nukatakanahalfwidth
+16#FF88    nekatakanahalfwidth
+16#FF89    nokatakanahalfwidth
+16#FF8A    hakatakanahalfwidth
+16#FF8B    hikatakanahalfwidth
+16#FF8C    hukatakanahalfwidth
+16#FF8D    hekatakanahalfwidth
+16#FF8E    hokatakanahalfwidth
+16#FF8F    makatakanahalfwidth
+16#FF90    mikatakanahalfwidth
+16#FF91    mukatakanahalfwidth
+16#FF92    mekatakanahalfwidth
+16#FF93    mokatakanahalfwidth
+16#FF94    yakatakanahalfwidth
+16#FF95    yukatakanahalfwidth
+16#FF96    yokatakanahalfwidth
+16#FF97    rakatakanahalfwidth
+16#FF98    rikatakanahalfwidth
+16#FF99    rukatakanahalfwidth
+16#FF9A    rekatakanahalfwidth
+16#FF9B    rokatakanahalfwidth
+16#FF9C    wakatakanahalfwidth
+16#FF9D    nkatakanahalfwidth
+16#FF9E    voicedmarkkanahalfwidth
+16#FF9F    semivoicedmarkkanahalfwidth
+16#FFE0    centmonospace
+16#FFE1    sterlingmonospace
+16#FFE3    macronmonospace
+16#FFE5    yenmonospace
+16#FFE6    wonmonospace
+
+%EOF

Added: trunk/Master/tlpkg/tlgs/Resource/Encoding/CEEncoding
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Encoding/CEEncoding	                        (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Encoding/CEEncoding	2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,51 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% 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.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc.,  7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA  94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+/CEEncoding [
+  /.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
+  /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
+  /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
+  /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
+  /.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
+  /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
+  /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
+
+]readonly
+/Encoding defineresource pop

Added: trunk/Master/tlpkg/tlgs/Resource/Encoding/ExpertEncoding
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Encoding/ExpertEncoding	                        (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Encoding/ExpertEncoding	2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,71 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% 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.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc.,  7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA  94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+/ExpertEncoding [
+  /.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
+  /space /exclamsmall /Hungarumlautsmall /.notdef
+  /dollaroldstyle /dollarsuperior /ampersandsmall /Acutesmall
+  /parenleftsuperior /parenrightsuperior /twodotenleader /onedotenleader
+  /comma /hyphen /period /fraction
+  /zerooldstyle /oneoldstyle /twooldstyle /threeoldstyle
+  /fouroldstyle /fiveoldstyle /sixoldstyle /sevenoldstyle
+  /eightoldstyle /nineoldstyle /colon /semicolon
+  /commasuperior /threequartersemdash /periodsuperior /questionsmall
+  /.notdef /asuperior /bsuperior /centsuperior
+  /dsuperior /esuperior /.notdef /.notdef
+  /.notdef /isuperior /.notdef /.notdef
+  /lsuperior /msuperior /nsuperior /osuperior
+  /.notdef /.notdef /rsuperior /ssuperior /tsuperior /.notdef /ff /fi
+  /fl /ffi /ffl /parenleftinferior
+  /.notdef /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 /colonmonetary
+  /onefitted /rupiah /Tildesmall /.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 /.notdef
+  /.notdef /exclamdownsmall /centoldstyle /Lslashsmall
+  /.notdef /.notdef /Scaronsmall /Zcaronsmall
+  /Dieresissmall /Brevesmall /Caronsmall /.notdef
+  /Dotaccentsmall /.notdef /.notdef /Macronsmall
+  /.notdef /.notdef /figuredash /hypheninferior
+  /.notdef /.notdef /Ogoneksmall /Ringsmall
+  /Cedillasmall /.notdef /.notdef /.notdef
+  /onequarter /onehalf /threequarters /questiondownsmall
+  /oneeighth /threeeighths /fiveeighths /seveneighths
+  /onethird /twothirds /.notdef /.notdef
+  /zerosuperior /onesuperior /twosuperior /threesuperior
+  /foursuperior /fivesuperior /sixsuperior /sevensuperior
+  /eightsuperior /ninesuperior /zeroinferior /oneinferior
+  /twoinferior /threeinferior /fourinferior /fiveinferior
+  /sixinferior /seveninferior /eightinferior /nineinferior
+  /centinferior /dollarinferior /periodinferior /commainferior
+  /Agravesmall /Aacutesmall /Acircumflexsmall /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
+] readonly
+/Encoding defineresource pop

Added: trunk/Master/tlpkg/tlgs/Resource/Encoding/ExpertSubsetEncoding
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Encoding/ExpertSubsetEncoding	                        (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Encoding/ExpertSubsetEncoding	2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,65 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% 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.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc.,  7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA  94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+/ExpertSubsetEncoding [
+  /.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
+  /space /.notdef /.notdef /.notdef
+  /dollaroldstyle /dollarsuperior /.notdef /.notdef
+  /parenleftsuperior /parenrightsuperior /twodotenleader /onedotenleader
+  /comma /hyphen /period /fraction
+  /zerooldstyle /oneoldstyle /twooldstyle /threeoldstyle
+  /fouroldstyle /fiveoldstyle /sixoldstyle /sevenoldstyle
+  /eightoldstyle /nineoldstyle /colon /semicolon
+  /commasuperior /threequartersemdash /periodsuperior /.notdef
+  /.notdef /asuperior /bsuperior /centsuperior
+  /dsuperior /esuperior /.notdef /.notdef
+  /.notdef /isuperior /.notdef /.notdef
+  /lsuperior /msuperior /nsuperior /osuperior
+  /.notdef /.notdef /rsuperior /ssuperior /tsuperior /.notdef /ff /fi
+  /fl /ffi /ffl /parenleftinferior
+  /.notdef /parenrightinferior /.notdef /hyphensuperior
+  /.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 /Colonmonetary
+  /onefitted /rupiah /.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 /.notdef /.notdef
+  /.notdef /.notdef /centoldstyle /.notdef /.notdef /.notdef /.notdef /.notdef
+  /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+  /.notdef /.notdef /figuredash /hypheninferior
+  /.notdef /.notdef /.notdef /.notdef
+  /.notdef /.notdef /.notdef /.notdef
+  /onequarter /onehalf /threequarters /.notdef
+  /oneeighth /threeeighths /fiveeighths /seveneighths
+  /onethird /twothirds /.notdef /.notdef
+  /zerosuperior /onesuperior /twosuperior /thresuperior
+  /foursuperior /fivesuperior /sixsuperior /sevensuperior
+  /eightsuperior /ninesuperior /zeroinferior /oneinferior
+  /twoinferior /threeinferior /fourinferior /fiveinferior
+  /sixinferior /seveninferior /eightinferior /nineinferior
+  /centinferior /dollarinferior /periodinferior /commainferior
+  /.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
+] readonly
+/Encoding defineresource pop

Added: trunk/Master/tlpkg/tlgs/Resource/Encoding/NotDefEncoding
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Encoding/NotDefEncoding	                        (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Encoding/NotDefEncoding	2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,20 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% 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.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc.,  7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA  94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% Define the Notdef encoding vector.
+/NotDefEncoding 256 array
+0 1 255 {1 index exch /.notdef put } for
+readonly /Encoding defineresource pop
+%EOF

Added: trunk/Master/tlpkg/tlgs/Resource/Encoding/Wingdings
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Encoding/Wingdings	                        (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Encoding/Wingdings	2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,244 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% 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.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc.,  7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA  94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% Define the Wingdings encoding vector.
+/Wingdings 256 array
+0 1 255 {1 index exch /.notdef put } for
+dup 9 /space put
+dup 32 /space put
+dup 33 /pencil put
+dup 34 /scissors put
+dup 35 /scissorscutting put
+dup 36 /readingglasses put
+dup 37 /bell put
+dup 38 /book put
+dup 39 /candle put
+dup 40 /telephonesolid put
+dup 41 /telhandsetcirc put
+dup 42 /envelopeback put
+dup 43 /envelopefront put
+dup 44 /mailboxflagdwn put
+dup 45 /mailboxflagup put
+dup 46 /mailbxopnflgup put
+dup 47 /mailbxopnflgdwn put
+dup 48 /folder put
+dup 49 /folderopen put
+dup 50 /filetalltext1 put
+dup 51 /filetalltext put
+dup 52 /filetalltext3 put
+dup 53 /filecabinet put
+dup 54 /hourglass put
+dup 55 /keyboard put
+dup 56 /mouse2button put
+dup 57 /ballpoint put
+dup 58 /pc put
+dup 59 /harddisk put
+dup 60 /floppy3 put
+dup 61 /floppy5 put
+dup 62 /tapereel put
+dup 63 /handwrite put
+dup 64 /handwriteleft put
+dup 65 /handv put
+dup 66 /handok put
+dup 67 /thumbup put
+dup 68 /thumbdown put
+dup 69 /handptleft put
+dup 70 /handptright put
+dup 71 /handptup put
+dup 72 /handptdwn put
+dup 73 /handhalt put
+dup 74 /smileface put
+dup 75 /neutralface put
+dup 76 /frownface put
+dup 77 /bomb put
+dup 78 /skullcrossbones put
+dup 79 /flag put
+dup 80 /pennant put
+dup 81 /airplane put
+dup 82 /sunshine put
+dup 83 /droplet put
+dup 84 /snowflake put
+dup 85 /crossoutline put
+dup 86 /crossshadow put
+dup 87 /crossceltic put
+dup 88 /crossmaltese put
+dup 89 /starofdavid put
+dup 90 /crescentstar put
+dup 91 /yinyang put
+dup 92 /om put
+dup 93 /wheel put
+dup 94 /aries put
+dup 95 /taurus put
+dup 96 /gemini put
+dup 97 /cancer put
+dup 98 /leo put
+dup 99 /virgo put
+dup 100 /libra put
+dup 101 /scorpio put
+dup 102 /saggitarius put
+dup 103 /capricorn put
+dup 104 /aquarius put
+dup 105 /pisces put
+dup 106 /ampersanditlc put
+dup 107 /ampersandit put
+dup 108 /circle6 put
+dup 109 /circleshadowdwn put
+dup 110 /square6 put
+dup 111 /box3 put
+dup 112 /box4 put
+dup 113 /boxshadowdwn put
+dup 114 /boxshadowup put
+dup 115 /lozenge4 put
+dup 116 /lozenge6 put
+dup 117 /rhombus6 put
+dup 118 /xrhombus put
+dup 119 /rhombus4 put
+dup 120 /clear put
+dup 121 /escape put
+dup 122 /command put
+dup 123 /rosette put
+dup 124 /rosettesolid put
+dup 125 /quotedbllftbld put
+dup 126 /quotedblrtbld put
+dup 128 /zerosans put
+dup 129 /onesans put
+dup 130 /twosans put
+dup 131 /threesans put
+dup 132 /foursans put
+dup 133 /fivesans put
+dup 134 /sixsans put
+dup 135 /sevensans put
+dup 136 /eightsans put
+dup 137 /ninesans put
+dup 138 /tensans put
+dup 139 /zerosansinv put
+dup 140 /onesansinv put
+dup 141 /twosansinv put
+dup 142 /threesansinv put
+dup 143 /foursansinv put
+dup 144 /fivesansinv put
+dup 145 /sixsansinv put
+dup 146 /sevensansinv put
+dup 147 /eightsansinv put
+dup 148 /ninesansinv put
+dup 149 /tensansinv put
+dup 150 /budleafne put
+dup 151 /budleafnw put
+dup 152 /budleafsw put
+dup 153 /budleafse put
+dup 154 /vineleafboldne put
+dup 155 /vineleafboldnw put
+dup 156 /vineleafboldsw put
+dup 157 /vineleafboldse put
+dup 158 /circle2 put
+dup 159 /circle4 put
+dup 160 /square2 put
+dup 161 /ring2 put
+dup 162 /ring4 put
+dup 163 /ring6 put
+dup 164 /ringbutton2 put
+dup 165 /target put
+dup 166 /circleshadowup put
+dup 167 /square4 put
+dup 168 /box2 put
+dup 169 /tristar2 put
+dup 170 /crosstar2 put
+dup 171 /pentastar2 put
+dup 172 /hexstar2 put
+dup 173 /octastar2 put
+dup 174 /dodecastar3 put
+dup 175 /octastar4 put
+dup 176 /registersquare put
+dup 177 /registercircle put
+dup 178 /cuspopen put
+dup 179 /cuspopen1 put
+dup 180 /query put
+dup 181 /circlestar put
+dup 182 /starshadow put
+dup 183 /oneoclock put
+dup 184 /twooclock put
+dup 185 /threeoclock put
+dup 186 /fouroclock put
+dup 187 /fiveoclock put
+dup 188 /sixoclock put
+dup 189 /sevenoclock put
+dup 190 /eightoclock put
+dup 191 /nineoclock put
+dup 192 /tenoclock put
+dup 193 /elevenoclock put
+dup 194 /twelveoclock put
+dup 195 /arrowdwnleft1 put
+dup 196 /arrowdwnrt1 put
+dup 197 /arrowupleft1 put
+dup 198 /arrowuprt1 put
+dup 199 /arrowleftup1 put
+dup 200 /arrowrtup1 put
+dup 201 /arrowleftdwn1 put
+dup 202 /arrowrtdwn1 put
+dup 203 /quiltsquare2 put
+dup 204 /quiltsquare2inv put
+dup 205 /leafccwsw put
+dup 206 /leafccwnw put
+dup 207 /leafccwse put
+dup 208 /leafccwne put
+dup 209 /leafnw put
+dup 210 /leafsw put
+dup 211 /leafne put
+dup 212 /leafse put
+dup 213 /deleteleft put
+dup 214 /deleteright put
+dup 215 /head2left put
+dup 216 /head2right put
+dup 217 /head2up put
+dup 218 /head2down put
+dup 219 /circleleft put
+dup 220 /circleright put
+dup 221 /circleup put
+dup 222 /circledown put
+dup 223 /barb2left put
+dup 224 /barb2right put
+dup 225 /barb2up put
+dup 226 /barb2down put
+dup 227 /barb2nw put
+dup 228 /barb2ne put
+dup 229 /barb2sw put
+dup 230 /barb2se put
+dup 231 /barb4left put
+dup 232 /barb4right put
+dup 233 /barb4up put
+dup 234 /barb4down put
+dup 235 /barb4nw put
+dup 236 /barb4ne put
+dup 237 /barb4sw put
+dup 238 /barb4se put
+dup 239 /bleft put
+dup 240 /bright put
+dup 241 /bup put
+dup 242 /bdown put
+dup 243 /bleftright put
+dup 244 /bupdown put
+dup 245 /bnw put
+dup 246 /bne put
+dup 247 /bsw put
+dup 248 /bse put
+dup 249 /bdash1 put
+dup 250 /bdash2 put
+dup 251 /xmarkbld put
+dup 252 /checkbld put
+dup 253 /boxxmarkbld put
+dup 254 /boxcheckbld put
+dup 255 /windowslogo put
+readonly /Encoding defineresource pop
+%EOF

Added: trunk/Master/tlpkg/tlgs/Resource/IdiomSet/Pscript5Idiom
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/IdiomSet/Pscript5Idiom	                        (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/IdiomSet/Pscript5Idiom	2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,175 @@
+%%
+%% Idioms for the Windows PSCRIPT5 PostScript driver
+%%
+
+currentuserparams /IdiomRecognition get
+<</IdiomRecognition false>> setuserparams
+
+/Pscript5Idiom
+<<
+%% replacements for the artificial bold routines. When the current device supports text rendering modes we set the mode to 2 (fill and stroke)
+%% and only show the text once, which improves seaching with pdfwrite. The parameter 'sBdx' is always calculated as the intended print resolution/300.
+%% We can't do that in PDF so we just use a heuristically derived fixed value.
+  /xsB [
+    {2 copy 2 copy 2 copy gsave sBdx 0 rmoveto xshow grestore gsave 0 sBdx rmoveto xshow grestore gsave sBdx sBdx rmoveto xshow grestore xshow} bind
+    {
+      /PreserveTrMode /GetDeviceParam .special_op {
+          exch pop
+      }{
+          //false
+      }ifelse
+      { gsave sBdx 2 div dup 0.2 setlinewidth currentcolor currentcolorspace .swapcolors setcolorspace setcolor .swapcolors rmoveto 2 .settextrenderingmode xshow currentpoint grestore moveto}
+      {2 copy 2 copy 2 copy gsave sBdx 0 rmoveto xshow grestore gsave 0 sBdx rmoveto xshow grestore gsave sBdx dup rmoveto xshow grestore xshow} bind
+      ifelse
+    } bind
+ ]
+  /ysB [
+    {2 copy 2 copy 2 copy gsave sBdx 0 rmoveto yshow grestore gsave 0 sBdx rmoveto yshow grestore gsave sBdx sBdx rmoveto yshow grestore yshow} bind
+    {
+      /PreserveTrMode /GetDeviceParam .special_op {
+          exch pop
+      }{
+          //false
+      }ifelse
+      { gsave sBdx 2 div dup 0.2 setlinewidth currentcolor currentcolorspace .swapcolors setcolorspace setcolor .swapcolors rmoveto 2 .settextrenderingmode yshow currentpoint grestore moveto}
+      {2 copy 2 copy 2 copy gsave sBdx 0 rmoveto yshow grestore gsave 0 sBdx rmoveto yshow grestore gsave sBdx dup rmoveto yshow grestore yshow} bind
+      ifelse
+    } bind
+ ]
+  /zsB [
+    {2 copy 2 copy 2 copy gsave sBdx 0 rmoveto xyshow grestore gsave 0 sBdx rmoveto xyshow grestore gsave sBdx sBdx rmoveto xyshow grestore xyshow} bind
+    {
+      /PreserveTrMode /GetDeviceParam .special_op {
+          exch pop
+      }{
+          //false
+      }ifelse
+      { gsave sBdx 2 div dup 0.2 setlinewidth currentcolor currentcolorspace .swapcolors setcolorspace setcolor .swapcolors rmoveto 2 .settextrenderingmode xyshow currentpoint grestore moveto}
+      {2 copy 2 copy 2 copy gsave sBdx 0 rmoveto xyshow grestore gsave 0 sBdx rmoveto xyshow grestore gsave sBdx dup rmoveto xyshow grestore xyshow} bind
+      ifelse
+    } bind
+ ]
+ /sB [
+    {1 copy 2 copy gsave sBdx 0 rmoveto show grestore gsave 0 sBdx rmoveto show grestore gsave sBdx sBdx rmoveto show grestore show} bind
+    {
+      /PreserveTrMode /GetDeviceParam .special_op {
+          exch pop
+      }{
+          //false
+      }ifelse
+      { gsave sBdx 2 div dup 0.2 setlinewidth currentcolor currentcolorspace .swapcolors setcolorspace setcolor .swapcolors rmoveto 2 .settextrenderingmode show currentpoint grestore moveto}
+      {1 copy 2 copy gsave sBdx 0 rmoveto show grestore gsave 0 sBdx rmoveto show grestore gsave sBdx dup rmoveto show grestore show} bind
+      ifelse
+    } bind
+  ]
+  /asB [
+    {3 copy 3 copy 3 copy gsave sBdx 0 rmoveto ashow grestore gsave 0 sBdx rmoveto ashow grestore gsave sBdx sBdx rmoveto ashow grestore ashow} bind
+    {
+      /PreserveTrMode /GetDeviceParam .special_op {
+          exch pop
+      }{
+          //false
+      }ifelse
+      { gsave sBdx 2 div dup 0.2 setlinewidth currentcolor currentcolorspace .swapcolors setcolorspace setcolor .swapcolors rmoveto 2 .settextrenderingmode ashow currentpoint grestore moveto}
+      {3 copy 3 copy 3 copy gsave sBdx 0 rmoveto ashow grestore gsave 0 sBdx rmoveto ashow grestore gsave sBdx dup rmoveto ashow grestore ashow} bind
+      ifelse
+    } bind
+   ]
+  /wsB [
+    {3 copy 3 copy 3 copy gsave sBdx 0 rmoveto widthshow grestore gsave 0 sBdx rmoveto widthshow grestore gsave sBdx sBdx rmoveto widthshow grestore widthshow} bind
+    {
+      /PreserveTrMode /GetDeviceParam .special_op {
+          exch pop
+      }{
+          //false
+      }ifelse
+      { gsave sBdx 2 div dup 0.2 setlinewidth currentcolor currentcolorspace .swapcolors setcolorspace setcolor .swapcolors rmoveto 2 .settextrenderingmode widthshow currentpoint grestore moveto}
+      {3 copy 3 copy 3 copy gsave sBdx 0 rmoveto widthshow grestore gsave 0 sBdx rmoveto widthshow grestore gsave sBdx dup rmoveto widthshow grestore widthshow} bind
+      ifelse
+    } bind
+   ]
+
+  /awsB [
+    {3 copy 3 copy 3 copy gsave sBdx 0 rmoveto awidthshow grestore gsave 0 sBdx rmoveto awidthshow grestore gsave sBdx sBdx rmoveto awidthshow grestore awidthshow} bind
+    {
+      /PreserveTrMode /GetDeviceParam .special_op {
+          exch pop
+      }{
+          //false
+      }ifelse
+      { gsave sBdx 2 div dup 0.2 setlinewidth currentcolor currentcolorspace .swapcolors setcolorspace setcolor .swapcolors rmoveto 2 .settextrenderingmode awidthshow currentpoint grestore moveto}
+      {3 copy 3 copy 3 copy gsave sBdx 0 rmoveto awidthshow grestore gsave 0 sBdx rmoveto awidthshow grestore gsave sBdx dup rmoveto awidthshow grestore awidthshow} bind
+      ifelse
+    } bind
+   ]
+
+  /pbf [
+    {
+      gsave pop /fEOFill exch def GDIBWPatternDict begin /yOrg exch def /xOrg exch def /PaintData exch def/OutputBPP exch def
+      /Height exch def/Width exch def/PaintType 1 def/PatternType 1 def/TilingType 1 def/BBox[0 0
+      Width Height]def/XStep Width def/YStep Height def/mx xOrg yOrg matrix translate def 20 dict dup begin
+      /ImageType 1 def/Width Width def/Height Height def/ImageMatrix[1 0 0 1 0 0]def
+      /BitsPerComponent 8 def OutputBPP 24 eq{/Decode[0 1 0 1 0 1]def}{OutputBPP 8 eq{
+      /Decode[0 1]def}{/Decode[0 1 0 1 0 1 0 1]def}ifelse}ifelse/DataSource{PaintData}def end/ImageDict
+      exch def/PaintProc{begin ImageDict image end}b currentdict mx makepattern setpattern end fEOFill{eofill}{fill}
+      ifelse grestore
+    }bind
+    {
+      /IsDistiller /GetDeviceParam .special_op {
+        exch pop
+      }{
+        //false
+      } ifelse
+      {gsave pop /fEOFill exch def GDIBWPatternDict begin /yOrg exch def /xOrg exch def /PaintData exch def/OutputBPP exch def
+      /Height exch def/Width exch def/PaintType 1 def/PatternType 1 def/TilingType 1 def/BBox[0 0
+      1 1]def/XStep 1 def/YStep 1 def/mx xOrg yOrg matrix translateWidth Height 3 -1 roll scale def 20 dict dup begin
+      /ImageType 1 def/Width Width def/Height Height def/ImageMatrix[1 0 0 1 0 0]def
+      /BitsPerComponent 8 def OutputBPP 24 eq{/Decode[0 1 0 1 0 1]def}{OutputBPP 8 eq{
+      /Decode[0 1]def}{/Decode[0 1 0 1 0 1 0 1]def}ifelse}ifelse/DataSource{PaintData}def end/ImageDict
+      exch def/PaintProc{begin ImageDict image end}b currentdict mx makepattern setpattern end fEOFill{eofill}{fill}
+      ifelse grestore
+      }{
+      gsave pop /fEOFill exch def GDIBWPatternDict begin /yOrg exch def /xOrg exch def /PaintData exch def/OutputBPP exch def
+      /Height exch def/Width exch def/PaintType 1 def/PatternType 1 def/TilingType 1 def/BBox[0 0
+      Width Height]def/XStep Width def/YStep Height def/mx xOrg yOrg matrix translate def 20 dict dup begin
+      /ImageType 1 def/Width Width def/Height Height def/ImageMatrix[1 0 0 1 0 0]def
+      /BitsPerComponent 8 def OutputBPP 24 eq{/Decode[0 1 0 1 0 1]def}{OutputBPP 8 eq{
+      /Decode[0 1]def}{/Decode[0 1 0 1 0 1 0 1]def}ifelse}ifelse/DataSource{PaintData}def end/ImageDict
+      exch def/PaintProc{begin ImageDict image end}b currentdict mx makepattern setpattern end fEOFill{eofill}{fill}
+      ifelse grestore
+      }
+    }
+  ]
+
+  /mask_pbf [
+    {gsave /fEOFill exch def 20 dict begin /yOrg exch def /xOrg exch def /PaintData exch def /Height exch def
+     /Width exch def /PatternType 1 def /PaintType 2 def /TilingType 1 def /BBox[0 0 Width Height] def
+     /XStep Width def /YStep Height def /mx xOrg yOrg matrix translate def /PaintProc{begin Width Height T 1 1 dtransform abs exch abs exch 0 0 3 -1 roll 0 0 6 array astore {PaintData}imagemask end} b
+     currentdict mx makepattern setpattern end fEOFill{eofill}{fill}ifelse grestore} bind
+     {
+        /IsDistiller /GetDeviceParam .special_op {
+          exch pop
+        }{
+          //false
+        } ifelse
+        {
+          gsave
+          /fEOFill exch def 20 dict begin /yOrg exch def /xOrg exch def /PaintData exch def
+          /Height exch def /Width exch def /PatternType 1 def /PaintType 2 def /TilingType 1 def
+          /BBox[0 0 1 1] def
+          /XStep 1 def /YStep 1 def
+          /mx xOrg yOrg matrix translate Width Height 3 -1 roll scale def
+          /PaintProc{begin Width Height T Width Height 0 0 3 -1 roll 0 0 6 array astore {PaintData}imagemask end} b
+          currentdict mx makepattern setpattern end fEOFill{eofill}{fill}ifelse grestore
+        }{
+          gsave /fEOFill exch def 20 dict begin /yOrg exch def /xOrg exch def /PaintData exch def /Height exch def
+          /Width exch def /PatternType 1 def /PaintType 2 def /TilingType 1 def /BBox[0 0 Width Height] def
+          /XStep Width def /YStep Height def /mx xOrg yOrg matrix translate def /PaintProc{begin Width Height T 1 1 dtransform abs exch abs exch 0 0 3 -1 roll 0 0 6 array astore {PaintData}imagemask end} b
+          currentdict mx makepattern setpattern end fEOFill{eofill}{fill}ifelse grestore
+        } ifelse
+    } bind
+  ]
+>>
+/IdiomSet defineresource pop
+
+<</IdiomRecognition 3 -1 roll>> setuserparams

Added: trunk/Master/tlpkg/tlgs/Resource/Init/FAPIcidfmap
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/Init/FAPIcidfmap
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/FAPIcidfmap	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/FAPIcidfmap	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/Init/FAPIcidfmap
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/Init/FAPIconfig
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/Init/FAPIconfig
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/FAPIconfig	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/FAPIconfig	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/Init/FAPIconfig
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/Init/FAPIfontmap
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/Init/FAPIfontmap
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/FAPIfontmap	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/FAPIfontmap	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/Init/FAPIfontmap
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/Init/FCOfontmap-PCLPS2
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/FCOfontmap-PCLPS2	                        (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/FCOfontmap-PCLPS2	2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,106 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% 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.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc.,  7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA  94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+
+% May add general FAPIfontmap records here like this :
+/Wingdings-Regular << /Path FCOfontfile2 /FontType 1 /FAPI /UFST /SubfontId 0 /Encoding /Wingdings /Decoding /FCO_Wingdings>> ;
+
+% Mapping Postscript fonts to pclp2_xj.fco FCO members :
+FCOfontfile ReadFCOfontmap:
+0     Albertus-Medium
+1     Albertus-ExtraBold
+2     AntiqueOlive
+3     AntiqueOlive-Italic
+4     AntiqueOlive-Bold
+5     Arial
+6     Arial-Italic
+7     Arial-Bold
+8     Arial-BoldItalic
+9     Clarendon-Condensed-Bold
+10    Coronet
+11    CourierHP
+12    CourierHP-Italic
+13    CourierHP-Bold
+14    CourierHP-BoldItalic
+15    Garamond-Antiqua
+16    Garamond-Kursiv
+17    Garamond-Halbfett
+18    Garamond-KursivHalbfett
+19    LetterGothic
+20    LetterGothic-Italic
+21    LetterGothic-Bold
+22    Marigold
+23    CGOmega
+24    CGOmega-Italic
+25    CGOmega-Bold
+26    CGOmega-BoldItalic
+27    SymbolMT  SymbolEncoding  FCO_Symbol
+28    CGTimes
+29    CGTimes-Italic
+30    CGTimes-Bold
+31    CGTimes-BoldItalic
+32    TimesNewRoman
+33    TimesNewRoman-Italic
+34    TimesNewRoman-Bold
+35    TimesNewRoman-BoldItalic
+36    UniversMedium
+37    UniversMedium-Italic
+38    Univers-Bold
+39    Univers-BoldItalic
+40    Univers-Condensed-Medium
+41    Univers-Condensed-MediumItalic
+42    Univers-Condensed-Bold
+43    Univers-Condensed-BoldItalic
+44    Courier-
+45    Courier-Italic
+46    Courier-Bold-
+47    Courier-BoldItalic
+48    AvantGarde-Book
+49    AvantGarde-BookOblique
+50    AvantGarde-Demi
+51    AvantGarde-DemiOblique
+52    Bookman-Light
+53    Bookman-LightItalic
+54    Bookman-Demi
+55    Bookman-DemiItalic
+56    Courier
+57    Courier-Oblique
+58    Courier-Bold
+59    Courier-BoldOblique
+60    Helvetica
+61    Helvetica-Oblique
+62    Helvetica-Bold
+63    Helvetica-BoldOblique
+64    Helvetica-Narrow
+65    Helvetica-Narrow-Oblique
+66    Helvetica-Narrow-Bold
+67    Helvetica-Narrow-BoldOblique
+68    NewCenturySchlbk-Roman
+69    NewCenturySchlbk-Italic
+70    NewCenturySchlbk-Bold
+71    NewCenturySchlbk-BoldItalic
+72    Palatino-Roman
+73    Palatino-Italic
+74    Palatino-Bold
+75    Palatino-BoldItalic
+76    Symbol  SymbolEncoding  FCO_Symbol
+77    Times-Roman
+78    Times-Italic
+79    Times-Bold
+80    Times-BoldItalic
+81    ZapfChancery-MediumItalic
+82    ZapfDingbats DingbatsEncoding FCO_Dingbats
+EndFCOfontmap
+%EOF

Added: trunk/Master/tlpkg/tlgs/Resource/Init/Fontmap
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/Init/Fontmap
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/Fontmap	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/Fontmap	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/Init/Fontmap
___________________________________________________________________
Added: svn:keywords "Date Author Revision Id"
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/Init/Fontmap.GS
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/Fontmap.GS	                        (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/Fontmap.GS	2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,343 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% 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.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc.,  7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA  94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% 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.
+
+% The following table is executed as a PostScript file.
+% 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.
+
+% PDF interpreter evaluates hexadecimal escapes in PDF font names before
+% looking up the font. When the resulting name cannot be represented using
+% PostScript name syntax, the string can be used instead of the name.
+
+% 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.
+%
+
+% Aliases
+
+/AvantGarde-BookOblique		/URWGothic-BookOblique    ;
+/AvantGarde-Book		/URWGothic-Book        ;
+/AvantGarde-DemiOblique		/URWGothic-DemiOblique    ;
+/AvantGarde-Demi		/URWGothic-Demi        ;
+/Bookman-DemiItalic		/URWBookman-DemiItalic	;
+/Bookman-Demi			/URWBookman-Demi	;
+/Bookman-LightItalic		/URWBookman-LightItalic	;
+/Bookman-Light			/URWBookman-Light	;
+/Courier-Bold			/NimbusMonoPS-Bold	;
+/Courier-BoldOblique		/NimbusMonoPS-BoldItalic	;
+/Courier			/NimbusMonoPS-Regular	;
+/Courier-Oblique		/NimbusMonoPS-Italic	;
+/Helvetica-Bold			/NimbusSans-Bold ;
+/Helvetica-BoldOblique		/NimbusSans-BoldOblique      ;
+/Helvetica-Narrow-Bold		/NimbusSansNarrow-Bold    ;
+/Helvetica-Narrow-BoldOblique	/NimbusSansNarrow-BdOblique        ;
+/Helvetica-Narrow		/NimbusSansNarrow-Regular    ;
+/Helvetica-Narrow-Oblique	/NimbusSansNarrow-Oblique        ;
+/Helvetica			/NimbusSans-Regular ;
+/Helvetica-Oblique		/NimbusSans-Oblique      ;
+/NewCenturySchlbk-Bold		/C059-Bold	;
+/NewCenturySchlbk-BoldItalic	/C059-BdIta	;
+/NewCenturySchlbk-Italic	/C059-Italic	;
+/NewCenturySchlbk-Roman		/C059-Roman	;
+/Palatino-BoldItalic		/P052-BoldItalic	;
+/Palatino-Bold			/P052-Bold	;
+/Palatino-Italic		/P052-Italic	;
+/Palatino-Roman			/P052-Roman	;
+/Symbol				/StandardSymbolsPS	;
+/Times-BoldItalic		/NimbusRoman-BoldItalic	;
+/Times-Bold			/NimbusRoman-Bold	;
+/Times-Italic			/NimbusRoman-Italic	;
+/Times-Roman			/NimbusRoman-Regular	;
+/ZapfChancery-MediumItalic	/Z003-MediumItalic	;
+/ZapfDingbats			/D050000L	;
+
+% 

+%
+% 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)	;
+
+% 

+%
+% Calligraphic Kana fonts.  These are distributed under the OFL 1.1:
+%
+% Copyright (c) 1993, Kevin Hartig (kevin.hartig at gmail.com),
+% with Reserved Font Name Calligraphic-Hiragana and Calligraphic-Katakana.
+% This Font Software is licensed under the SIL Open Font License, Version 1.1.
+% This license is available with an FAQ at:  http://scripts.sil.org/OFL
+
+% 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 at 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
+
+/Arial					/ArialMT		;
+/Arial,Bold				/Arial-BoldMT		;
+/Arial,Italic				/Arial-ItalicMT		;
+/Arial,BoldItalic			/Arial-BoldItalicMT	;
+
+/TimesNewRoman				/TimesNewRomanPSMT		;
+/TimesNewRoman,Bold			/TimesNewRomanPS-BoldMT		;
+/TimesNewRoman,Italic			/TimesNewRomanPS-ItalicMT	;
+/TimesNewRoman,BoldItalic		/TimesNewRomanPS-BoldItalicMT	;
+


Property changes on: trunk/Master/tlpkg/tlgs/Resource/Init/Fontmap.GS
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/Init/cidfmap
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/Init/cidfmap
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/cidfmap	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/cidfmap	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/Init/cidfmap
___________________________________________________________________
Added: svn:keywords "Date Author Revision Id"
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_agl.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_agl.ps	                        (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_agl.ps	2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,7988 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% 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.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc.,  7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA  94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% $Id: gs_agl.ps 10822 2010-02-27 20:24:13Z alexcher $
+
+% This file was derived from the Adobe Glyph List, version 2.0, dated
+% September 20, 2002.
+% See http://partners.adobe.com/asn/developer/typeforum/unicodegn.html
+% That file does not contain any copyright notice.
+
+/AdobeGlyphList mark
+/A 16#0041
+/AE 16#00C6
+/AEacute 16#01FC
+/AEmacron 16#01E2
+/AEsmall 16#F7E6
+/Aacute 16#00C1
+/Aacutesmall 16#F7E1
+/Abreve 16#0102
+/Abreveacute 16#1EAE
+/Abrevecyrillic 16#04D0
+/Abrevedotbelow 16#1EB6
+/Abrevegrave 16#1EB0
+/Abrevehookabove 16#1EB2
+/Abrevetilde 16#1EB4
+/Acaron 16#01CD
+/Acircle 16#24B6
+/Acircumflex 16#00C2
+/Acircumflexacute 16#1EA4
+/Acircumflexdotbelow 16#1EAC
+/Acircumflexgrave 16#1EA6
+/Acircumflexhookabove 16#1EA8
+/Acircumflexsmall 16#F7E2
+/Acircumflextilde 16#1EAA
+/Acute 16#F6C9
+/Acutesmall 16#F7B4
+/Acyrillic 16#0410
+/Adblgrave 16#0200
+/Adieresis 16#00C4
+/Adieresiscyrillic 16#04D2
+/Adieresismacron 16#01DE
+/Adieresissmall 16#F7E4
+/Adotbelow 16#1EA0
+/Adotmacron 16#01E0
+/Agrave 16#00C0
+/Agravesmall 16#F7E0
+/Ahookabove 16#1EA2
+/Aiecyrillic 16#04D4
+/Ainvertedbreve 16#0202
+/Alpha 16#0391
+/Alphatonos 16#0386
+/Amacron 16#0100
+/Amonospace 16#FF21
+/Aogonek 16#0104
+/Aring 16#00C5
+/Aringacute 16#01FA
+/Aringbelow 16#1E00
+/Aringsmall 16#F7E5
+/Asmall 16#F761
+/Atilde 16#00C3
+/Atildesmall 16#F7E3
+/Aybarmenian 16#0531
+/B 16#0042
+/Bcircle 16#24B7
+/Bdotaccent 16#1E02
+/Bdotbelow 16#1E04
+/Becyrillic 16#0411
+/Benarmenian 16#0532
+/Beta 16#0392
+/Bhook 16#0181
+/Blinebelow 16#1E06
+/Bmonospace 16#FF22
+/Brevesmall 16#F6F4
+/Bsmall 16#F762
+/Btopbar 16#0182
+/C 16#0043
+/Caarmenian 16#053E
+/Cacute 16#0106
+/Caron 16#F6CA
+/Caronsmall 16#F6F5
+/Ccaron 16#010C
+/Ccedilla 16#00C7
+/Ccedillaacute 16#1E08
+/Ccedillasmall 16#F7E7
+/Ccircle 16#24B8
+/Ccircumflex 16#0108
+/Cdot 16#010A
+/Cdotaccent 16#010A
+/Cedillasmall 16#F7B8
+/Chaarmenian 16#0549
+/Cheabkhasiancyrillic 16#04BC
+/Checyrillic 16#0427
+/Chedescenderabkhasiancyrillic 16#04BE
+/Chedescendercyrillic 16#04B6
+/Chedieresiscyrillic 16#04F4
+/Cheharmenian 16#0543
+/Chekhakassiancyrillic 16#04CB
+/Cheverticalstrokecyrillic 16#04B8
+/Chi 16#03A7
+/Chook 16#0187
+/Circumflexsmall 16#F6F6
+/Cmonospace 16#FF23
+/Coarmenian 16#0551
+/Csmall 16#F763
+/D 16#0044
+/DZ 16#01F1
+/DZcaron 16#01C4
+/Daarmenian 16#0534
+/Dafrican 16#0189
+/Dcaron 16#010E
+/Dcedilla 16#1E10
+/Dcircle 16#24B9
+/Dcircumflexbelow 16#1E12
+/Dcroat 16#0110
+/Ddotaccent 16#1E0A
+/Ddotbelow 16#1E0C
+/Decyrillic 16#0414
+/Deicoptic 16#03EE
+/Delta 16#2206
+/Deltagreek 16#0394
+/Dhook 16#018A
+/Dieresis 16#F6CB
+/DieresisAcute 16#F6CC
+/DieresisGrave 16#F6CD
+/Dieresissmall 16#F7A8
+/Digammagreek 16#03DC
+/Djecyrillic 16#0402
+/Dlinebelow 16#1E0E
+/Dmonospace 16#FF24
+/Dotaccentsmall 16#F6F7
+/Dslash 16#0110
+/Dsmall 16#F764
+/Dtopbar 16#018B
+/Dz 16#01F2
+/Dzcaron 16#01C5
+/Dzeabkhasiancyrillic 16#04E0
+/Dzecyrillic 16#0405
+/Dzhecyrillic 16#040F
+/E 16#0045
+/Eacute 16#00C9
+/Eacutesmall 16#F7E9
+/Ebreve 16#0114
+/Ecaron 16#011A
+/Ecedillabreve 16#1E1C
+/Echarmenian 16#0535
+/Ecircle 16#24BA
+/Ecircumflex 16#00CA
+/Ecircumflexacute 16#1EBE
+/Ecircumflexbelow 16#1E18
+/Ecircumflexdotbelow 16#1EC6
+/Ecircumflexgrave 16#1EC0
+/Ecircumflexhookabove 16#1EC2
+/Ecircumflexsmall 16#F7EA
+/Ecircumflextilde 16#1EC4
+/Ecyrillic 16#0404
+/Edblgrave 16#0204
+/Edieresis 16#00CB
+/Edieresissmall 16#F7EB
+/Edot 16#0116
+/Edotaccent 16#0116
+/Edotbelow 16#1EB8
+/Efcyrillic 16#0424
+/Egrave 16#00C8
+/Egravesmall 16#F7E8
+/Eharmenian 16#0537
+/Ehookabove 16#1EBA
+/Eightroman 16#2167
+/Einvertedbreve 16#0206
+/Eiotifiedcyrillic 16#0464
+/Elcyrillic 16#041B
+/Elevenroman 16#216A
+/Emacron 16#0112
+/Emacronacute 16#1E16
+/Emacrongrave 16#1E14
+/Emcyrillic 16#041C
+/Emonospace 16#FF25
+/Encyrillic 16#041D
+/Endescendercyrillic 16#04A2
+/Eng 16#014A
+/Enghecyrillic 16#04A4
+/Enhookcyrillic 16#04C7
+/Eogonek 16#0118
+/Eopen 16#0190
+/Epsilon 16#0395
+/Epsilontonos 16#0388
+/Ercyrillic 16#0420
+/Ereversed 16#018E
+/Ereversedcyrillic 16#042D
+/Escyrillic 16#0421
+/Esdescendercyrillic 16#04AA
+/Esh 16#01A9
+/Esmall 16#F765
+/Eta 16#0397
+/Etarmenian 16#0538
+/Etatonos 16#0389
+/Eth 16#00D0
+/Ethsmall 16#F7F0
+/Etilde 16#1EBC
+/Etildebelow 16#1E1A
+/Euro 16#20AC
+/Ezh 16#01B7
+/Ezhcaron 16#01EE
+/Ezhreversed 16#01B8
+/F 16#0046
+/Fcircle 16#24BB
+/Fdotaccent 16#1E1E
+/Feharmenian 16#0556
+/Feicoptic 16#03E4
+/Fhook 16#0191
+/Fitacyrillic 16#0472
+/Fiveroman 16#2164
+/Fmonospace 16#FF26
+/Fourroman 16#2163
+/Fsmall 16#F766
+/G 16#0047
+/GBsquare 16#3387
+/Gacute 16#01F4
+/Gamma 16#0393
+/Gammaafrican 16#0194
+/Gangiacoptic 16#03EA
+/Gbreve 16#011E
+/Gcaron 16#01E6
+/Gcedilla 16#0122
+/Gcircle 16#24BC
+/Gcircumflex 16#011C
+/Gcommaaccent 16#0122
+/Gdot 16#0120
+/Gdotaccent 16#0120
+/Gecyrillic 16#0413
+/Ghadarmenian 16#0542
+/Ghemiddlehookcyrillic 16#0494
+/Ghestrokecyrillic 16#0492
+/Gheupturncyrillic 16#0490
+/Ghook 16#0193
+/Gimarmenian 16#0533
+/Gjecyrillic 16#0403
+/Gmacron 16#1E20
+/Gmonospace 16#FF27
+/Grave 16#F6CE
+/Gravesmall 16#F760
+/Gsmall 16#F767
+/Gsmallhook 16#029B
+/Gstroke 16#01E4
+/H 16#0048
+/H18533 16#25CF
+/H18543 16#25AA
+/H18551 16#25AB
+/H22073 16#25A1
+/HPsquare 16#33CB
+/Haabkhasiancyrillic 16#04A8
+/Hadescendercyrillic 16#04B2
+/Hardsigncyrillic 16#042A
+/Hbar 16#0126
+/Hbrevebelow 16#1E2A
+/Hcedilla 16#1E28
+/Hcircle 16#24BD
+/Hcircumflex 16#0124
+/Hdieresis 16#1E26
+/Hdotaccent 16#1E22
+/Hdotbelow 16#1E24
+/Hmonospace 16#FF28
+/Hoarmenian 16#0540
+/Horicoptic 16#03E8
+/Hsmall 16#F768
+/Hungarumlaut 16#F6CF
+/Hungarumlautsmall 16#F6F8
+/Hzsquare 16#3390
+/I 16#0049
+/IAcyrillic 16#042F
+/IJ 16#0132
+/IUcyrillic 16#042E
+/Iacute 16#00CD
+/Iacutesmall 16#F7ED
+/Ibreve 16#012C
+/Icaron 16#01CF
+/Icircle 16#24BE
+/Icircumflex 16#00CE
+/Icircumflexsmall 16#F7EE
+/Icyrillic 16#0406
+/Idblgrave 16#0208
+/Idieresis 16#00CF
+/Idieresisacute 16#1E2E
+/Idieresiscyrillic 16#04E4
+/Idieresissmall 16#F7EF
+/Idot 16#0130
+/Idotaccent 16#0130
+/Idotbelow 16#1ECA
+/Iebrevecyrillic 16#04D6
+/Iecyrillic 16#0415
+/Ifraktur 16#2111
+/Igrave 16#00CC
+/Igravesmall 16#F7EC
+/Ihookabove 16#1EC8
+/Iicyrillic 16#0418
+/Iinvertedbreve 16#020A
+/Iishortcyrillic 16#0419
+/Imacron 16#012A
+/Imacroncyrillic 16#04E2
+/Imonospace 16#FF29
+/Iniarmenian 16#053B
+/Iocyrillic 16#0401
+/Iogonek 16#012E
+/Iota 16#0399
+/Iotaafrican 16#0196
+/Iotadieresis 16#03AA
+/Iotatonos 16#038A
+/Ismall 16#F769
+/Istroke 16#0197
+/Itilde 16#0128
+/Itildebelow 16#1E2C
+/Izhitsacyrillic 16#0474
+/Izhitsadblgravecyrillic 16#0476
+/J 16#004A
+/Jaarmenian 16#0541
+/Jcircle 16#24BF
+/Jcircumflex 16#0134
+/Jecyrillic 16#0408
+/Jheharmenian 16#054B
+/Jmonospace 16#FF2A
+/Jsmall 16#F76A
+/K 16#004B
+/KBsquare 16#3385
+/KKsquare 16#33CD
+/Kabashkircyrillic 16#04A0
+/Kacute 16#1E30
+/Kacyrillic 16#041A
+/Kadescendercyrillic 16#049A
+/Kahookcyrillic 16#04C3
+/Kappa 16#039A
+/Kastrokecyrillic 16#049E
+/Kaverticalstrokecyrillic 16#049C
+/Kcaron 16#01E8
+/Kcedilla 16#0136
+/Kcircle 16#24C0
+/Kcommaaccent 16#0136
+/Kdotbelow 16#1E32
+/Keharmenian 16#0554
+/Kenarmenian 16#053F
+/Khacyrillic 16#0425
+/Kheicoptic 16#03E6
+/Khook 16#0198
+/Kjecyrillic 16#040C
+/Klinebelow 16#1E34
+/Kmonospace 16#FF2B
+/Koppacyrillic 16#0480
+/Koppagreek 16#03DE
+/Ksicyrillic 16#046E
+/Ksmall 16#F76B
+/L 16#004C
+/LJ 16#01C7
+/LL 16#F6BF
+/Lacute 16#0139
+/Lambda 16#039B
+/Lcaron 16#013D
+/Lcedilla 16#013B
+/Lcircle 16#24C1
+/Lcircumflexbelow 16#1E3C
+/Lcommaaccent 16#013B
+/Ldot 16#013F
+/Ldotaccent 16#013F
+/Ldotbelow 16#1E36
+/Ldotbelowmacron 16#1E38
+/Liwnarmenian 16#053C
+/Lj 16#01C8
+/Ljecyrillic 16#0409
+/Llinebelow 16#1E3A
+/Lmonospace 16#FF2C
+/Lslash 16#0141
+/Lslashsmall 16#F6F9
+/Lsmall 16#F76C
+/M 16#004D
+/MBsquare 16#3386
+/Macron 16#F6D0
+/Macronsmall 16#F7AF
+/Macute 16#1E3E
+/Mcircle 16#24C2
+/Mdotaccent 16#1E40
+/Mdotbelow 16#1E42
+/Menarmenian 16#0544
+/Mmonospace 16#FF2D
+/Msmall 16#F76D
+/Mturned 16#019C
+/Mu 16#039C
+/N 16#004E
+/NJ 16#01CA
+/Nacute 16#0143
+/Ncaron 16#0147
+/Ncedilla 16#0145
+/Ncircle 16#24C3
+/Ncircumflexbelow 16#1E4A
+/Ncommaaccent 16#0145
+/Ndotaccent 16#1E44
+/Ndotbelow 16#1E46
+/Nhookleft 16#019D
+/Nineroman 16#2168
+/Nj 16#01CB
+/Njecyrillic 16#040A
+/Nlinebelow 16#1E48
+/Nmonospace 16#FF2E
+/Nowarmenian 16#0546
+/Nsmall 16#F76E
+/Ntilde 16#00D1
+/Ntildesmall 16#F7F1
+/Nu 16#039D
+/O 16#004F
+/OE 16#0152
+/OEsmall 16#F6FA
+/Oacute 16#00D3
+/Oacutesmall 16#F7F3
+/Obarredcyrillic 16#04E8
+/Obarreddieresiscyrillic 16#04EA
+/Obreve 16#014E
+/Ocaron 16#01D1
+/Ocenteredtilde 16#019F
+/Ocircle 16#24C4
+/Ocircumflex 16#00D4
+/Ocircumflexacute 16#1ED0
+/Ocircumflexdotbelow 16#1ED8
+/Ocircumflexgrave 16#1ED2
+/Ocircumflexhookabove 16#1ED4
+/Ocircumflexsmall 16#F7F4
+/Ocircumflextilde 16#1ED6
+/Ocyrillic 16#041E
+/Odblacute 16#0150
+/Odblgrave 16#020C
+/Odieresis 16#00D6
+/Odieresiscyrillic 16#04E6
+/Odieresissmall 16#F7F6
+/Odotbelow 16#1ECC
+/Ogoneksmall 16#F6FB
+/Ograve 16#00D2
+/Ogravesmall 16#F7F2
+/Oharmenian 16#0555
+/Ohm 16#2126
+/Ohookabove 16#1ECE
+/Ohorn 16#01A0
+/Ohornacute 16#1EDA
+/Ohorndotbelow 16#1EE2
+/Ohorngrave 16#1EDC
+/Ohornhookabove 16#1EDE
+/Ohorntilde 16#1EE0
+/Ohungarumlaut 16#0150
+/Oi 16#01A2
+/Oinvertedbreve 16#020E
+/Omacron 16#014C
+/Omacronacute 16#1E52
+/Omacrongrave 16#1E50
+/Omega 16#2126
+/Omegacyrillic 16#0460
+/Omegagreek 16#03A9
+/Omegaroundcyrillic 16#047A
+/Omegatitlocyrillic 16#047C
+/Omegatonos 16#038F
+/Omicron 16#039F
+/Omicrontonos 16#038C
+/Omonospace 16#FF2F
+/Oneroman 16#2160
+/Oogonek 16#01EA
+/Oogonekmacron 16#01EC
+/Oopen 16#0186
+/Oslash 16#00D8
+/Oslashacute 16#01FE
+/Oslashsmall 16#F7F8
+/Osmall 16#F76F
+/Ostrokeacute 16#01FE
+/Otcyrillic 16#047E
+/Otilde 16#00D5
+/Otildeacute 16#1E4C
+/Otildedieresis 16#1E4E
+/Otildesmall 16#F7F5
+/P 16#0050
+/Pacute 16#1E54
+/Pcircle 16#24C5
+/Pdotaccent 16#1E56
+/Pecyrillic 16#041F
+/Peharmenian 16#054A
+/Pemiddlehookcyrillic 16#04A6
+/Phi 16#03A6
+/Phook 16#01A4
+/Pi 16#03A0
+/Piwrarmenian 16#0553
+/Pmonospace 16#FF30
+/Psi 16#03A8
+/Psicyrillic 16#0470
+/Psmall 16#F770
+/Q 16#0051
+/Qcircle 16#24C6
+/Qmonospace 16#FF31
+/Qsmall 16#F771
+/R 16#0052
+/Raarmenian 16#054C
+/Racute 16#0154
+/Rcaron 16#0158
+/Rcedilla 16#0156
+/Rcircle 16#24C7
+/Rcommaaccent 16#0156
+/Rdblgrave 16#0210
+/Rdotaccent 16#1E58
+/Rdotbelow 16#1E5A
+/Rdotbelowmacron 16#1E5C
+/Reharmenian 16#0550
+/Rfraktur 16#211C
+/Rho 16#03A1
+/Ringsmall 16#F6FC
+/Rinvertedbreve 16#0212
+/Rlinebelow 16#1E5E
+/Rmonospace 16#FF32
+/Rsmall 16#F772
+/Rsmallinverted 16#0281
+/Rsmallinvertedsuperior 16#02B6
+/S 16#0053
+/SF010000 16#250C
+/SF020000 16#2514
+/SF030000 16#2510
+/SF040000 16#2518
+/SF050000 16#253C
+/SF060000 16#252C
+/SF070000 16#2534
+/SF080000 16#251C
+/SF090000 16#2524
+/SF100000 16#2500
+/SF110000 16#2502
+/SF190000 16#2561
+/SF200000 16#2562
+/SF210000 16#2556
+/SF220000 16#2555
+/SF230000 16#2563
+/SF240000 16#2551
+/SF250000 16#2557
+/SF260000 16#255D
+/SF270000 16#255C
+/SF280000 16#255B
+/SF360000 16#255E
+/SF370000 16#255F
+/SF380000 16#255A
+/SF390000 16#2554
+/SF400000 16#2569
+/SF410000 16#2566
+/SF420000 16#2560
+/SF430000 16#2550
+/SF440000 16#256C
+/SF450000 16#2567
+/SF460000 16#2568
+/SF470000 16#2564
+/SF480000 16#2565
+/SF490000 16#2559
+/SF500000 16#2558
+/SF510000 16#2552
+/SF520000 16#2553
+/SF530000 16#256B
+/SF540000 16#256A
+/Sacute 16#015A
+/Sacutedotaccent 16#1E64
+/Sampigreek 16#03E0
+/Scaron 16#0160
+/Scarondotaccent 16#1E66
+/Scaronsmall 16#F6FD
+/Scedilla 16#015E
+/Schwa 16#018F
+/Schwacyrillic 16#04D8
+/Schwadieresiscyrillic 16#04DA
+/Scircle 16#24C8
+/Scircumflex 16#015C
+/Scommaaccent 16#0218
+/Sdotaccent 16#1E60
+/Sdotbelow 16#1E62
+/Sdotbelowdotaccent 16#1E68
+/Seharmenian 16#054D
+/Sevenroman 16#2166
+/Shaarmenian 16#0547
+/Shacyrillic 16#0428
+/Shchacyrillic 16#0429
+/Sheicoptic 16#03E2
+/Shhacyrillic 16#04BA
+/Shimacoptic 16#03EC
+/Sigma 16#03A3
+/Sixroman 16#2165
+/Smonospace 16#FF33
+/Softsigncyrillic 16#042C
+/Ssmall 16#F773
+/Stigmagreek 16#03DA
+/T 16#0054
+/Tau 16#03A4
+/Tbar 16#0166
+/Tcaron 16#0164
+/Tcedilla 16#0162
+/Tcircle 16#24C9
+/Tcircumflexbelow 16#1E70
+/Tcommaaccent 16#0162
+/Tdotaccent 16#1E6A
+/Tdotbelow 16#1E6C
+/Tecyrillic 16#0422
+/Tedescendercyrillic 16#04AC
+/Tenroman 16#2169
+/Tetsecyrillic 16#04B4
+/Theta 16#0398
+/Thook 16#01AC
+/Thorn 16#00DE
+/Thornsmall 16#F7FE
+/Threeroman 16#2162
+/Tildesmall 16#F6FE
+/Tiwnarmenian 16#054F
+/Tlinebelow 16#1E6E
+/Tmonospace 16#FF34
+/Toarmenian 16#0539
+/Tonefive 16#01BC
+/Tonesix 16#0184
+/Tonetwo 16#01A7
+/Tretroflexhook 16#01AE
+/Tsecyrillic 16#0426
+/Tshecyrillic 16#040B
+/Tsmall 16#F774
+/Twelveroman 16#216B
+/Tworoman 16#2161
+/U 16#0055
+/Uacute 16#00DA
+/Uacutesmall 16#F7FA
+/Ubreve 16#016C
+/Ucaron 16#01D3
+/Ucircle 16#24CA
+/Ucircumflex 16#00DB
+/Ucircumflexbelow 16#1E76
+/Ucircumflexsmall 16#F7FB
+/Ucyrillic 16#0423
+/Udblacute 16#0170
+/Udblgrave 16#0214
+/Udieresis 16#00DC
+/Udieresisacute 16#01D7
+/Udieresisbelow 16#1E72
+/Udieresiscaron 16#01D9
+/Udieresiscyrillic 16#04F0
+/Udieresisgrave 16#01DB
+/Udieresismacron 16#01D5
+/Udieresissmall 16#F7FC
+/Udotbelow 16#1EE4
+/Ugrave 16#00D9
+/Ugravesmall 16#F7F9
+/Uhookabove 16#1EE6
+/Uhorn 16#01AF
+/Uhornacute 16#1EE8
+/Uhorndotbelow 16#1EF0
+/Uhorngrave 16#1EEA
+/Uhornhookabove 16#1EEC
+/Uhorntilde 16#1EEE
+/Uhungarumlaut 16#0170
+/Uhungarumlautcyrillic 16#04F2
+/Uinvertedbreve 16#0216
+/Ukcyrillic 16#0478
+/Umacron 16#016A
+/Umacroncyrillic 16#04EE
+/Umacrondieresis 16#1E7A
+/Umonospace 16#FF35
+/Uogonek 16#0172
+/Upsilon 16#03A5
+/Upsilon1 16#03D2
+/Upsilonacutehooksymbolgreek 16#03D3
+/Upsilonafrican 16#01B1
+/Upsilondieresis 16#03AB
+/Upsilondieresishooksymbolgreek 16#03D4
+/Upsilonhooksymbol 16#03D2
+/Upsilontonos 16#038E
+/Uring 16#016E
+/Ushortcyrillic 16#040E
+/Usmall 16#F775
+/Ustraightcyrillic 16#04AE
+/Ustraightstrokecyrillic 16#04B0
+/Utilde 16#0168
+/Utildeacute 16#1E78
+/Utildebelow 16#1E74
+/V 16#0056
+/Vcircle 16#24CB
+/Vdotbelow 16#1E7E
+/Vecyrillic 16#0412
+/Vewarmenian 16#054E
+/Vhook 16#01B2
+/Vmonospace 16#FF36
+/Voarmenian 16#0548
+/Vsmall 16#F776
+/Vtilde 16#1E7C
+/W 16#0057
+/Wacute 16#1E82
+/Wcircle 16#24CC
+/Wcircumflex 16#0174
+/Wdieresis 16#1E84
+/Wdotaccent 16#1E86
+/Wdotbelow 16#1E88
+/Wgrave 16#1E80
+/Wmonospace 16#FF37
+/Wsmall 16#F777
+/X 16#0058
+/Xcircle 16#24CD
+/Xdieresis 16#1E8C
+/Xdotaccent 16#1E8A
+/Xeharmenian 16#053D
+/Xi 16#039E
+/Xmonospace 16#FF38
+/Xsmall 16#F778
+/Y 16#0059
+/Yacute 16#00DD
+/Yacutesmall 16#F7FD
+/Yatcyrillic 16#0462
+/Ycircle 16#24CE
+/Ycircumflex 16#0176
+/Ydieresis 16#0178
+/Ydieresissmall 16#F7FF
+/Ydotaccent 16#1E8E
+/Ydotbelow 16#1EF4
+/Yericyrillic 16#042B
+/Yerudieresiscyrillic 16#04F8
+/Ygrave 16#1EF2
+/Yhook 16#01B3
+/Yhookabove 16#1EF6
+/Yiarmenian 16#0545
+/Yicyrillic 16#0407
+/Yiwnarmenian 16#0552
+/Ymonospace 16#FF39
+/Ysmall 16#F779
+/Ytilde 16#1EF8
+/Yusbigcyrillic 16#046A
+/Yusbigiotifiedcyrillic 16#046C
+/Yuslittlecyrillic 16#0466
+/Yuslittleiotifiedcyrillic 16#0468
+/Z 16#005A
+/Zaarmenian 16#0536
+/Zacute 16#0179
+/Zcaron 16#017D
+/Zcaronsmall 16#F6FF
+/Zcircle 16#24CF
+/Zcircumflex 16#1E90
+/Zdot 16#017B
+/Zdotaccent 16#017B
+/Zdotbelow 16#1E92
+/Zecyrillic 16#0417
+/Zedescendercyrillic 16#0498
+/Zedieresiscyrillic 16#04DE
+/Zeta 16#0396
+/Zhearmenian 16#053A
+/Zhebrevecyrillic 16#04C1
+/Zhecyrillic 16#0416
+/Zhedescendercyrillic 16#0496
+/Zhedieresiscyrillic 16#04DC
+/Zlinebelow 16#1E94
+/Zmonospace 16#FF3A
+/Zsmall 16#F77A
+/Zstroke 16#01B5
+/a 16#0061
+/aabengali 16#0986
+/aacute 16#00E1
+/aadeva 16#0906
+/aagujarati 16#0A86
+/aagurmukhi 16#0A06
+/aamatragurmukhi 16#0A3E
+/aarusquare 16#3303
+/aavowelsignbengali 16#09BE
+/aavowelsigndeva 16#093E
+/aavowelsigngujarati 16#0ABE
+/abbreviationmarkarmenian 16#055F
+/abbreviationsigndeva 16#0970
+/abengali 16#0985
+/abopomofo 16#311A
+/abreve 16#0103
+/abreveacute 16#1EAF
+/abrevecyrillic 16#04D1
+/abrevedotbelow 16#1EB7
+/abrevegrave 16#1EB1
+/abrevehookabove 16#1EB3
+/abrevetilde 16#1EB5
+/acaron 16#01CE
+/acircle 16#24D0
+/acircumflex 16#00E2
+/acircumflexacute 16#1EA5
+/acircumflexdotbelow 16#1EAD
+/acircumflexgrave 16#1EA7
+/acircumflexhookabove 16#1EA9
+/acircumflextilde 16#1EAB
+/acute 16#00B4
+/acutebelowcmb 16#0317
+/acutecmb 16#0301
+/acutecomb 16#0301
+/acutedeva 16#0954
+/acutelowmod 16#02CF
+/acutetonecmb 16#0341
+/acyrillic 16#0430
+/adblgrave 16#0201
+/addakgurmukhi 16#0A71
+/adeva 16#0905
+/adieresis 16#00E4
+/adieresiscyrillic 16#04D3
+/adieresismacron 16#01DF
+/adotbelow 16#1EA1
+/adotmacron 16#01E1
+/ae 16#00E6
+/aeacute 16#01FD
+/aekorean 16#3150
+/aemacron 16#01E3
+/afii00208 16#2015
+/afii08941 16#20A4
+/afii10017 16#0410
+/afii10018 16#0411
+/afii10019 16#0412
+/afii10020 16#0413
+/afii10021 16#0414
+/afii10022 16#0415
+/afii10023 16#0401
+/afii10024 16#0416
+/afii10025 16#0417
+/afii10026 16#0418
+/afii10027 16#0419
+/afii10028 16#041A
+/afii10029 16#041B
+/afii10030 16#041C
+/afii10031 16#041D
+/afii10032 16#041E
+/afii10033 16#041F
+/afii10034 16#0420
+/afii10035 16#0421
+/afii10036 16#0422
+/afii10037 16#0423
+/afii10038 16#0424
+/afii10039 16#0425
+/afii10040 16#0426
+/afii10041 16#0427
+/afii10042 16#0428
+/afii10043 16#0429
+/afii10044 16#042A
+/afii10045 16#042B
+/afii10046 16#042C
+/afii10047 16#042D
+/afii10048 16#042E
+/afii10049 16#042F
+/afii10050 16#0490
+/afii10051 16#0402
+/afii10052 16#0403
+/afii10053 16#0404
+/afii10054 16#0405
+/afii10055 16#0406
+/afii10056 16#0407
+/afii10057 16#0408
+/afii10058 16#0409
+/afii10059 16#040A
+/afii10060 16#040B
+/afii10061 16#040C
+/afii10062 16#040E
+/afii10063 16#F6C4
+/afii10064 16#F6C5
+/afii10065 16#0430
+/afii10066 16#0431
+/afii10067 16#0432
+/afii10068 16#0433
+/afii10069 16#0434
+/afii10070 16#0435
+/afii10071 16#0451
+/afii10072 16#0436
+/afii10073 16#0437
+/afii10074 16#0438
+/afii10075 16#0439
+/afii10076 16#043A
+/afii10077 16#043B
+/afii10078 16#043C
+/afii10079 16#043D
+/afii10080 16#043E
+/afii10081 16#043F
+/afii10082 16#0440
+/afii10083 16#0441
+/afii10084 16#0442
+/afii10085 16#0443
+/afii10086 16#0444
+/afii10087 16#0445
+/afii10088 16#0446
+/afii10089 16#0447
+/afii10090 16#0448
+/afii10091 16#0449
+/afii10092 16#044A
+/afii10093 16#044B
+/afii10094 16#044C
+/afii10095 16#044D
+/afii10096 16#044E
+/afii10097 16#044F
+/afii10098 16#0491
+/afii10099 16#0452
+/afii10100 16#0453
+/afii10101 16#0454
+/afii10102 16#0455
+/afii10103 16#0456
+/afii10104 16#0457
+/afii10105 16#0458
+/afii10106 16#0459
+/afii10107 16#045A
+/afii10108 16#045B
+/afii10109 16#045C
+/afii10110 16#045E
+/afii10145 16#040F
+/afii10146 16#0462
+/afii10147 16#0472
+/afii10148 16#0474
+/afii10192 16#F6C6
+/afii10193 16#045F
+/afii10194 16#0463
+/afii10195 16#0473
+/afii10196 16#0475
+/afii10831 16#F6C7
+/afii10832 16#F6C8
+/afii10846 16#04D9
+/afii299 16#200E
+/afii300 16#200F
+/afii301 16#200D
+/afii57381 16#066A
+/afii57388 16#060C
+/afii57392 16#0660
+/afii57393 16#0661
+/afii57394 16#0662
+/afii57395 16#0663
+/afii57396 16#0664
+/afii57397 16#0665
+/afii57398 16#0666
+/afii57399 16#0667
+/afii57400 16#0668
+/afii57401 16#0669
+/afii57403 16#061B
+/afii57407 16#061F
+/afii57409 16#0621
+/afii57410 16#0622
+/afii57411 16#0623
+/afii57412 16#0624
+/afii57413 16#0625
+/afii57414 16#0626
+/afii57415 16#0627
+/afii57416 16#0628
+/afii57417 16#0629
+/afii57418 16#062A
+/afii57419 16#062B
+/afii57420 16#062C
+/afii57421 16#062D
+/afii57422 16#062E
+/afii57423 16#062F
+/afii57424 16#0630
+/afii57425 16#0631
+/afii57426 16#0632
+/afii57427 16#0633
+/afii57428 16#0634
+/afii57429 16#0635
+/afii57430 16#0636
+/afii57431 16#0637
+/afii57432 16#0638
+/afii57433 16#0639
+/afii57434 16#063A
+/afii57440 16#0640
+/afii57441 16#0641
+/afii57442 16#0642
+/afii57443 16#0643
+/afii57444 16#0644
+/afii57445 16#0645
+/afii57446 16#0646
+/afii57448 16#0648
+/afii57449 16#0649
+/afii57450 16#064A
+/afii57451 16#064B
+/afii57452 16#064C
+/afii57453 16#064D
+/afii57454 16#064E
+/afii57455 16#064F
+/afii57456 16#0650
+/afii57457 16#0651
+/afii57458 16#0652
+/afii57470 16#0647
+/afii57505 16#06A4
+/afii57506 16#067E
+/afii57507 16#0686
+/afii57508 16#0698
+/afii57509 16#06AF
+/afii57511 16#0679
+/afii57512 16#0688
+/afii57513 16#0691
+/afii57514 16#06BA
+/afii57519 16#06D2
+/afii57534 16#06D5
+/afii57636 16#20AA
+/afii57645 16#05BE
+/afii57658 16#05C3
+/afii57664 16#05D0
+/afii57665 16#05D1
+/afii57666 16#05D2
+/afii57667 16#05D3
+/afii57668 16#05D4
+/afii57669 16#05D5
+/afii57670 16#05D6
+/afii57671 16#05D7
+/afii57672 16#05D8
+/afii57673 16#05D9
+/afii57674 16#05DA
+/afii57675 16#05DB
+/afii57676 16#05DC
+/afii57677 16#05DD
+/afii57678 16#05DE
+/afii57679 16#05DF
+/afii57680 16#05E0
+/afii57681 16#05E1
+/afii57682 16#05E2
+/afii57683 16#05E3
+/afii57684 16#05E4
+/afii57685 16#05E5
+/afii57686 16#05E6
+/afii57687 16#05E7
+/afii57688 16#05E8
+/afii57689 16#05E9
+/afii57690 16#05EA
+/afii57694 16#FB2A
+/afii57695 16#FB2B
+/afii57700 16#FB4B
+/afii57705 16#FB1F
+/afii57716 16#05F0
+/afii57717 16#05F1
+/afii57718 16#05F2
+/afii57723 16#FB35
+/afii57793 16#05B4
+/afii57794 16#05B5
+/afii57795 16#05B6
+/afii57796 16#05BB
+/afii57797 16#05B8
+/afii57798 16#05B7
+/afii57799 16#05B0
+/afii57800 16#05B2
+/afii57801 16#05B1
+/afii57802 16#05B3
+/afii57803 16#05C2
+/afii57804 16#05C1
+/afii57806 16#05B9
+/afii57807 16#05BC
+/afii57839 16#05BD
+/afii57841 16#05BF
+/afii57842 16#05C0
+/afii57929 16#02BC
+/afii61248 16#2105
+/afii61289 16#2113
+/afii61352 16#2116
+/afii61573 16#202C
+/afii61574 16#202D
+/afii61575 16#202E
+/afii61664 16#200C
+/afii63167 16#066D
+/afii64937 16#02BD
+/agrave 16#00E0
+/agujarati 16#0A85
+/agurmukhi 16#0A05
+/ahiragana 16#3042
+/ahookabove 16#1EA3
+/aibengali 16#0990
+/aibopomofo 16#311E
+/aideva 16#0910
+/aiecyrillic 16#04D5
+/aigujarati 16#0A90
+/aigurmukhi 16#0A10
+/aimatragurmukhi 16#0A48
+/ainarabic 16#0639
+/ainfinalarabic 16#FECA
+/aininitialarabic 16#FECB
+/ainmedialarabic 16#FECC
+/ainvertedbreve 16#0203
+/aivowelsignbengali 16#09C8
+/aivowelsigndeva 16#0948
+/aivowelsigngujarati 16#0AC8
+/akatakana 16#30A2
+/akatakanahalfwidth 16#FF71
+/akorean 16#314F
+/alef 16#05D0
+/alefarabic 16#0627
+/alefdageshhebrew 16#FB30
+/aleffinalarabic 16#FE8E
+/alefhamzaabovearabic 16#0623
+/alefhamzaabovefinalarabic 16#FE84
+/alefhamzabelowarabic 16#0625
+/alefhamzabelowfinalarabic 16#FE88
+/alefhebrew 16#05D0
+/aleflamedhebrew 16#FB4F
+/alefmaddaabovearabic 16#0622
+/alefmaddaabovefinalarabic 16#FE82
+/alefmaksuraarabic 16#0649
+/alefmaksurafinalarabic 16#FEF0
+/alefmaksurainitialarabic 16#FEF3
+/alefmaksuramedialarabic 16#FEF4
+/alefpatahhebrew 16#FB2E
+/alefqamatshebrew 16#FB2F
+/aleph 16#2135
+/allequal 16#224C
+/alpha 16#03B1
+/alphatonos 16#03AC
+/amacron 16#0101
+/amonospace 16#FF41
+/ampersand 16#0026
+/ampersandmonospace 16#FF06
+/ampersandsmall 16#F726
+/amsquare 16#33C2
+/anbopomofo 16#3122
+/angbopomofo 16#3124
+/angkhankhuthai 16#0E5A
+/angle 16#2220
+/anglebracketleft 16#3008
+/anglebracketleftvertical 16#FE3F
+/anglebracketright 16#3009
+/anglebracketrightvertical 16#FE40
+/angleleft 16#2329
+/angleright 16#232A
+/angstrom 16#212B
+/anoteleia 16#0387
+/anudattadeva 16#0952
+/anusvarabengali 16#0982
+/anusvaradeva 16#0902
+/anusvaragujarati 16#0A82
+/aogonek 16#0105
+/apaatosquare 16#3300
+/aparen 16#249C
+/apostrophearmenian 16#055A
+/apostrophemod 16#02BC
+/apple 16#F8FF
+/approaches 16#2250
+/approxequal 16#2248
+/approxequalorimage 16#2252
+/approximatelyequal 16#2245
+/araeaekorean 16#318E
+/araeakorean 16#318D
+/arc 16#2312
+/arighthalfring 16#1E9A
+/aring 16#00E5
+/aringacute 16#01FB
+/aringbelow 16#1E01
+/arrowboth 16#2194
+/arrowdashdown 16#21E3
+/arrowdashleft 16#21E0
+/arrowdashright 16#21E2
+/arrowdashup 16#21E1
+/arrowdblboth 16#21D4
+/arrowdbldown 16#21D3
+/arrowdblleft 16#21D0
+/arrowdblright 16#21D2
+/arrowdblup 16#21D1
+/arrowdown 16#2193
+/arrowdownleft 16#2199
+/arrowdownright 16#2198
+/arrowdownwhite 16#21E9
+/arrowheaddownmod 16#02C5
+/arrowheadleftmod 16#02C2
+/arrowheadrightmod 16#02C3
+/arrowheadupmod 16#02C4
+/arrowhorizex 16#F8E7
+/arrowleft 16#2190
+/arrowleftdbl 16#21D0
+/arrowleftdblstroke 16#21CD
+/arrowleftoverright 16#21C6
+/arrowleftwhite 16#21E6
+/arrowright 16#2192
+/arrowrightdblstroke 16#21CF
+/arrowrightheavy 16#279E
+/arrowrightoverleft 16#21C4
+/arrowrightwhite 16#21E8
+/arrowtableft 16#21E4
+/arrowtabright 16#21E5
+/arrowup 16#2191
+/arrowupdn 16#2195
+/arrowupdnbse 16#21A8
+/arrowupdownbase 16#21A8
+/arrowupleft 16#2196
+/arrowupleftofdown 16#21C5
+/arrowupright 16#2197
+/arrowupwhite 16#21E7
+/arrowvertex 16#F8E6
+/asciicircum 16#005E
+/asciicircummonospace 16#FF3E
+/asciitilde 16#007E
+/asciitildemonospace 16#FF5E
+/ascript 16#0251
+/ascriptturned 16#0252
+/asmallhiragana 16#3041
+/asmallkatakana 16#30A1
+/asmallkatakanahalfwidth 16#FF67
+/asterisk 16#002A
+/asteriskaltonearabic 16#066D
+/asteriskarabic 16#066D
+/asteriskmath 16#2217
+/asteriskmonospace 16#FF0A
+/asterisksmall 16#FE61
+/asterism 16#2042
+/asuperior 16#F6E9
+/asymptoticallyequal 16#2243
+/at 16#0040
+/atilde 16#00E3
+/atmonospace 16#FF20
+/atsmall 16#FE6B
+/aturned 16#0250
+/aubengali 16#0994
+/aubopomofo 16#3120
+/audeva 16#0914
+/augujarati 16#0A94
+/augurmukhi 16#0A14
+/aulengthmarkbengali 16#09D7
+/aumatragurmukhi 16#0A4C
+/auvowelsignbengali 16#09CC
+/auvowelsigndeva 16#094C
+/auvowelsigngujarati 16#0ACC
+/avagrahadeva 16#093D
+/aybarmenian 16#0561
+/ayin 16#05E2
+/ayinaltonehebrew 16#FB20
+/ayinhebrew 16#05E2
+/b 16#0062
+/babengali 16#09AC
+/backslash 16#005C
+/backslashmonospace 16#FF3C
+/badeva 16#092C
+/bagujarati 16#0AAC
+/bagurmukhi 16#0A2C
+/bahiragana 16#3070
+/bahtthai 16#0E3F
+/bakatakana 16#30D0
+/bar 16#007C
+/barmonospace 16#FF5C
+/bbopomofo 16#3105
+/bcircle 16#24D1
+/bdotaccent 16#1E03
+/bdotbelow 16#1E05
+/beamedsixteenthnotes 16#266C
+/because 16#2235
+/becyrillic 16#0431
+/beharabic 16#0628
+/behfinalarabic 16#FE90
+/behinitialarabic 16#FE91
+/behiragana 16#3079
+/behmedialarabic 16#FE92
+/behmeeminitialarabic 16#FC9F
+/behmeemisolatedarabic 16#FC08
+/behnoonfinalarabic 16#FC6D
+/bekatakana 16#30D9
+/benarmenian 16#0562
+/bet 16#05D1
+/beta 16#03B2
+/betasymbolgreek 16#03D0
+/betdagesh 16#FB31
+/betdageshhebrew 16#FB31
+/bethebrew 16#05D1
+/betrafehebrew 16#FB4C
+/bhabengali 16#09AD
+/bhadeva 16#092D
+/bhagujarati 16#0AAD
+/bhagurmukhi 16#0A2D
+/bhook 16#0253
+/bihiragana 16#3073
+/bikatakana 16#30D3
+/bilabialclick 16#0298
+/bindigurmukhi 16#0A02
+/birusquare 16#3331
+/blackcircle 16#25CF
+/blackdiamond 16#25C6
+/blackdownpointingtriangle 16#25BC
+/blackleftpointingpointer 16#25C4
+/blackleftpointingtriangle 16#25C0
+/blacklenticularbracketleft 16#3010
+/blacklenticularbracketleftvertical 16#FE3B
+/blacklenticularbracketright 16#3011
+/blacklenticularbracketrightvertical 16#FE3C
+/blacklowerlefttriangle 16#25E3
+/blacklowerrighttriangle 16#25E2
+/blackrectangle 16#25AC
+/blackrightpointingpointer 16#25BA
+/blackrightpointingtriangle 16#25B6
+/blacksmallsquare 16#25AA
+/blacksmilingface 16#263B
+/blacksquare 16#25A0
+/blackstar 16#2605
+/blackupperlefttriangle 16#25E4
+/blackupperrighttriangle 16#25E5
+/blackuppointingsmalltriangle 16#25B4
+/blackuppointingtriangle 16#25B2
+/blank 16#2423
+/blinebelow 16#1E07
+/block 16#2588
+/bmonospace 16#FF42
+/bobaimaithai 16#0E1A
+/bohiragana 16#307C
+/bokatakana 16#30DC
+/bparen 16#249D
+/bqsquare 16#33C3
+/braceex 16#F8F4
+/braceleft 16#007B
+/braceleftbt 16#F8F3
+/braceleftmid 16#F8F2
+/braceleftmonospace 16#FF5B
+/braceleftsmall 16#FE5B
+/bracelefttp 16#F8F1
+/braceleftvertical 16#FE37
+/braceright 16#007D
+/bracerightbt 16#F8FE
+/bracerightmid 16#F8FD
+/bracerightmonospace 16#FF5D
+/bracerightsmall 16#FE5C
+/bracerighttp 16#F8FC
+/bracerightvertical 16#FE38
+/bracketleft 16#005B
+/bracketleftbt 16#F8F0
+/bracketleftex 16#F8EF
+/bracketleftmonospace 16#FF3B
+/bracketlefttp 16#F8EE
+/bracketright 16#005D
+/bracketrightbt 16#F8FB
+/bracketrightex 16#F8FA
+/bracketrightmonospace 16#FF3D
+/bracketrighttp 16#F8F9
+/breve 16#02D8
+/brevebelowcmb 16#032E
+/brevecmb 16#0306
+/breveinvertedbelowcmb 16#032F
+/breveinvertedcmb 16#0311
+/breveinverteddoublecmb 16#0361
+/bridgebelowcmb 16#032A
+/bridgeinvertedbelowcmb 16#033A
+/brokenbar 16#00A6
+/bstroke 16#0180
+/bsuperior 16#F6EA
+/btopbar 16#0183
+/buhiragana 16#3076
+/bukatakana 16#30D6
+/bullet 16#2022
+/bulletinverse 16#25D8
+/bulletoperator 16#2219
+/bullseye 16#25CE
+/c 16#0063
+/caarmenian 16#056E
+/cabengali 16#099A
+/cacute 16#0107
+/cadeva 16#091A
+/cagujarati 16#0A9A
+/cagurmukhi 16#0A1A
+/calsquare 16#3388
+/candrabindubengali 16#0981
+/candrabinducmb 16#0310
+/candrabindudeva 16#0901
+/candrabindugujarati 16#0A81
+/capslock 16#21EA
+/careof 16#2105
+/caron 16#02C7
+/caronbelowcmb 16#032C
+/caroncmb 16#030C
+/carriagereturn 16#21B5
+/cbopomofo 16#3118
+/ccaron 16#010D
+/ccedilla 16#00E7
+/ccedillaacute 16#1E09
+/ccircle 16#24D2
+/ccircumflex 16#0109
+/ccurl 16#0255
+/cdot 16#010B
+/cdotaccent 16#010B
+/cdsquare 16#33C5
+/cedilla 16#00B8
+/cedillacmb 16#0327
+/cent 16#00A2
+/centigrade 16#2103
+/centinferior 16#F6DF
+/centmonospace 16#FFE0
+/centoldstyle 16#F7A2
+/centsuperior 16#F6E0
+/chaarmenian 16#0579
+/chabengali 16#099B
+/chadeva 16#091B
+/chagujarati 16#0A9B
+/chagurmukhi 16#0A1B
+/chbopomofo 16#3114
+/cheabkhasiancyrillic 16#04BD
+/checkmark 16#2713
+/checyrillic 16#0447
+/chedescenderabkhasiancyrillic 16#04BF
+/chedescendercyrillic 16#04B7
+/chedieresiscyrillic 16#04F5
+/cheharmenian 16#0573
+/chekhakassiancyrillic 16#04CC
+/cheverticalstrokecyrillic 16#04B9
+/chi 16#03C7
+/chieuchacirclekorean 16#3277
+/chieuchaparenkorean 16#3217
+/chieuchcirclekorean 16#3269
+/chieuchkorean 16#314A
+/chieuchparenkorean 16#3209
+/chochangthai 16#0E0A
+/chochanthai 16#0E08
+/chochingthai 16#0E09
+/chochoethai 16#0E0C
+/chook 16#0188
+/cieucacirclekorean 16#3276
+/cieucaparenkorean 16#3216
+/cieuccirclekorean 16#3268
+/cieuckorean 16#3148
+/cieucparenkorean 16#3208
+/cieucuparenkorean 16#321C
+/circle 16#25CB
+/circlemultiply 16#2297
+/circleot 16#2299
+/circleplus 16#2295
+/circlepostalmark 16#3036
+/circlewithlefthalfblack 16#25D0
+/circlewithrighthalfblack 16#25D1
+/circumflex 16#02C6
+/circumflexbelowcmb 16#032D
+/circumflexcmb 16#0302
+/clear 16#2327
+/clickalveolar 16#01C2
+/clickdental 16#01C0
+/clicklateral 16#01C1
+/clickretroflex 16#01C3
+/club 16#2663
+/clubsuitblack 16#2663
+/clubsuitwhite 16#2667
+/cmcubedsquare 16#33A4
+/cmonospace 16#FF43
+/cmsquaredsquare 16#33A0
+/coarmenian 16#0581
+/colon 16#003A
+/colonmonetary 16#20A1
+/colonmonospace 16#FF1A
+/colonsign 16#20A1
+/colonsmall 16#FE55
+/colontriangularhalfmod 16#02D1
+/colontriangularmod 16#02D0
+/comma 16#002C
+/commaabovecmb 16#0313
+/commaaboverightcmb 16#0315
+/commaaccent 16#F6C3
+/commaarabic 16#060C
+/commaarmenian 16#055D
+/commainferior 16#F6E1
+/commamonospace 16#FF0C
+/commareversedabovecmb 16#0314
+/commareversedmod 16#02BD
+/commasmall 16#FE50
+/commasuperior 16#F6E2
+/commaturnedabovecmb 16#0312
+/commaturnedmod 16#02BB
+/compass 16#263C
+/congruent 16#2245
+/contourintegral 16#222E
+/control 16#2303
+/controlACK 16#0006
+/controlBEL 16#0007
+/controlBS 16#0008
+/controlCAN 16#0018
+/controlCR 16#000D
+/controlDC1 16#0011
+/controlDC2 16#0012
+/controlDC3 16#0013
+/controlDC4 16#0014
+/controlDEL 16#007F
+/controlDLE 16#0010
+/controlEM 16#0019
+/controlENQ 16#0005
+/controlEOT 16#0004
+/controlESC 16#001B
+/controlETB 16#0017
+/controlETX 16#0003
+/controlFF 16#000C
+/controlFS 16#001C
+/controlGS 16#001D
+/controlHT 16#0009
+/controlLF 16#000A
+/controlNAK 16#0015
+/controlRS 16#001E
+/controlSI 16#000F
+/controlSO 16#000E
+/controlSOT 16#0002
+/controlSTX 16#0001
+/controlSUB 16#001A
+/controlSYN 16#0016
+/controlUS 16#001F
+/controlVT 16#000B
+/copyright 16#00A9
+/copyrightsans 16#F8E9
+/copyrightserif 16#F6D9
+/cornerbracketleft 16#300C
+/cornerbracketlefthalfwidth 16#FF62
+/cornerbracketleftvertical 16#FE41
+/cornerbracketright 16#300D
+/cornerbracketrighthalfwidth 16#FF63
+/cornerbracketrightvertical 16#FE42
+/corporationsquare 16#337F
+/cosquare 16#33C7
+/coverkgsquare 16#33C6
+/cparen 16#249E
+/cruzeiro 16#20A2
+/cstretched 16#0297
+/curlyand 16#22CF
+/curlyor 16#22CE
+/currency 16#00A4
+/cyrBreve 16#F6D1
+/cyrFlex 16#F6D2
+/cyrbreve 16#F6D4
+/cyrflex 16#F6D5
+/d 16#0064
+/daarmenian 16#0564
+/dabengali 16#09A6
+/dadarabic 16#0636
+/dadeva 16#0926
+/dadfinalarabic 16#FEBE
+/dadinitialarabic 16#FEBF
+/dadmedialarabic 16#FEC0
+/dagesh 16#05BC
+/dageshhebrew 16#05BC
+/dagger 16#2020
+/daggerdbl 16#2021
+/dagujarati 16#0AA6
+/dagurmukhi 16#0A26
+/dahiragana 16#3060
+/dakatakana 16#30C0
+/dalarabic 16#062F
+/dalet 16#05D3
+/daletdagesh 16#FB33
+/daletdageshhebrew 16#FB33
+% /dalethatafpatah 16#05D3 16#05B2
+% /dalethatafpatahhebrew 16#05D3 16#05B2
+% /dalethatafsegol 16#05D3 16#05B1
+% /dalethatafsegolhebrew 16#05D3 16#05B1
+/dalethebrew 16#05D3
+% /dalethiriq 16#05D3 16#05B4
+% /dalethiriqhebrew 16#05D3 16#05B4
+% /daletholam 16#05D3 16#05B9
+% /daletholamhebrew 16#05D3 16#05B9
+% /daletpatah 16#05D3 16#05B7
+% /daletpatahhebrew 16#05D3 16#05B7
+% /daletqamats 16#05D3 16#05B8
+% /daletqamatshebrew 16#05D3 16#05B8
+% /daletqubuts 16#05D3 16#05BB
+% /daletqubutshebrew 16#05D3 16#05BB
+% /daletsegol 16#05D3 16#05B6
+% /daletsegolhebrew 16#05D3 16#05B6
+% /daletsheva 16#05D3 16#05B0
+% /daletshevahebrew 16#05D3 16#05B0
+% /dalettsere 16#05D3 16#05B5
+% /dalettserehebrew 16#05D3 16#05B5
+/dalfinalarabic 16#FEAA
+/dammaarabic 16#064F
+/dammalowarabic 16#064F
+/dammatanaltonearabic 16#064C
+/dammatanarabic 16#064C
+/danda 16#0964
+/dargahebrew 16#05A7
+/dargalefthebrew 16#05A7
+/dasiapneumatacyrilliccmb 16#0485
+/dblGrave 16#F6D3
+/dblanglebracketleft 16#300A
+/dblanglebracketleftvertical 16#FE3D
+/dblanglebracketright 16#300B
+/dblanglebracketrightvertical 16#FE3E
+/dblarchinvertedbelowcmb 16#032B
+/dblarrowleft 16#21D4
+/dblarrowright 16#21D2
+/dbldanda 16#0965
+/dblgrave 16#F6D6
+/dblgravecmb 16#030F
+/dblintegral 16#222C
+/dbllowline 16#2017
+/dbllowlinecmb 16#0333
+/dbloverlinecmb 16#033F
+/dblprimemod 16#02BA
+/dblverticalbar 16#2016
+/dblverticallineabovecmb 16#030E
+/dbopomofo 16#3109
+/dbsquare 16#33C8
+/dcaron 16#010F
+/dcedilla 16#1E11
+/dcircle 16#24D3
+/dcircumflexbelow 16#1E13
+/dcroat 16#0111
+/ddabengali 16#09A1
+/ddadeva 16#0921
+/ddagujarati 16#0AA1
+/ddagurmukhi 16#0A21
+/ddalarabic 16#0688
+/ddalfinalarabic 16#FB89
+/dddhadeva 16#095C
+/ddhabengali 16#09A2
+/ddhadeva 16#0922
+/ddhagujarati 16#0AA2
+/ddhagurmukhi 16#0A22
+/ddotaccent 16#1E0B
+/ddotbelow 16#1E0D
+/decimalseparatorarabic 16#066B
+/decimalseparatorpersian 16#066B
+/decyrillic 16#0434
+/degree 16#00B0
+/dehihebrew 16#05AD
+/dehiragana 16#3067
+/deicoptic 16#03EF
+/dekatakana 16#30C7
+/deleteleft 16#232B
+/deleteright 16#2326
+/delta 16#03B4
+/deltaturned 16#018D
+/denominatorminusonenumeratorbengali 16#09F8
+/dezh 16#02A4
+/dhabengali 16#09A7
+/dhadeva 16#0927
+/dhagujarati 16#0AA7
+/dhagurmukhi 16#0A27
+/dhook 16#0257
+/dialytikatonos 16#0385
+/dialytikatonoscmb 16#0344
+/diamond 16#2666
+/diamondsuitwhite 16#2662
+/dieresis 16#00A8
+/dieresisacute 16#F6D7
+/dieresisbelowcmb 16#0324
+/dieresiscmb 16#0308
+/dieresisgrave 16#F6D8
+/dieresistonos 16#0385
+/dihiragana 16#3062
+/dikatakana 16#30C2
+/dittomark 16#3003
+/divide 16#00F7
+/divides 16#2223
+/divisionslash 16#2215
+/djecyrillic 16#0452
+/dkshade 16#2593
+/dlinebelow 16#1E0F
+/dlsquare 16#3397
+/dmacron 16#0111
+/dmonospace 16#FF44
+/dnblock 16#2584
+/dochadathai 16#0E0E
+/dodekthai 16#0E14
+/dohiragana 16#3069
+/dokatakana 16#30C9
+/dollar 16#0024
+/dollarinferior 16#F6E3
+/dollarmonospace 16#FF04
+/dollaroldstyle 16#F724
+/dollarsmall 16#FE69
+/dollarsuperior 16#F6E4
+/dong 16#20AB
+/dorusquare 16#3326
+/dotaccent 16#02D9
+/dotaccentcmb 16#0307
+/dotbelowcmb 16#0323
+/dotbelowcomb 16#0323
+/dotkatakana 16#30FB
+/dotlessi 16#0131
+/dotlessj 16#F6BE
+/dotlessjstrokehook 16#0284
+/dotmath 16#22C5
+/dottedcircle 16#25CC
+/doubleyodpatah 16#FB1F
+/doubleyodpatahhebrew 16#FB1F
+/downtackbelowcmb 16#031E
+/downtackmod 16#02D5
+/dparen 16#249F
+/dsuperior 16#F6EB
+/dtail 16#0256
+/dtopbar 16#018C
+/duhiragana 16#3065
+/dukatakana 16#30C5
+/dz 16#01F3
+/dzaltone 16#02A3
+/dzcaron 16#01C6
+/dzcurl 16#02A5
+/dzeabkhasiancyrillic 16#04E1
+/dzecyrillic 16#0455
+/dzhecyrillic 16#045F
+/e 16#0065
+/eacute 16#00E9
+/earth 16#2641
+/ebengali 16#098F
+/ebopomofo 16#311C
+/ebreve 16#0115
+/ecandradeva 16#090D
+/ecandragujarati 16#0A8D
+/ecandravowelsigndeva 16#0945
+/ecandravowelsigngujarati 16#0AC5
+/ecaron 16#011B
+/ecedillabreve 16#1E1D
+/echarmenian 16#0565
+/echyiwnarmenian 16#0587
+/ecircle 16#24D4
+/ecircumflex 16#00EA
+/ecircumflexacute 16#1EBF
+/ecircumflexbelow 16#1E19
+/ecircumflexdotbelow 16#1EC7
+/ecircumflexgrave 16#1EC1
+/ecircumflexhookabove 16#1EC3
+/ecircumflextilde 16#1EC5
+/ecyrillic 16#0454
+/edblgrave 16#0205
+/edeva 16#090F
+/edieresis 16#00EB
+/edot 16#0117
+/edotaccent 16#0117
+/edotbelow 16#1EB9
+/eegurmukhi 16#0A0F
+/eematragurmukhi 16#0A47
+/efcyrillic 16#0444
+/egrave 16#00E8
+/egujarati 16#0A8F
+/eharmenian 16#0567
+/ehbopomofo 16#311D
+/ehiragana 16#3048
+/ehookabove 16#1EBB
+/eibopomofo 16#311F
+/eight 16#0038
+/eightarabic 16#0668
+/eightbengali 16#09EE
+/eightcircle 16#2467
+/eightcircleinversesansserif 16#2791
+/eightdeva 16#096E
+/eighteencircle 16#2471
+/eighteenparen 16#2485
+/eighteenperiod 16#2499
+/eightgujarati 16#0AEE
+/eightgurmukhi 16#0A6E
+/eighthackarabic 16#0668
+/eighthangzhou 16#3028
+/eighthnotebeamed 16#266B
+/eightideographicparen 16#3227
+/eightinferior 16#2088
+/eightmonospace 16#FF18
+/eightoldstyle 16#F738
+/eightparen 16#247B
+/eightperiod 16#248F
+/eightpersian 16#06F8
+/eightroman 16#2177
+/eightsuperior 16#2078
+/eightthai 16#0E58
+/einvertedbreve 16#0207
+/eiotifiedcyrillic 16#0465
+/ekatakana 16#30A8
+/ekatakanahalfwidth 16#FF74
+/ekonkargurmukhi 16#0A74
+/ekorean 16#3154
+/elcyrillic 16#043B
+/element 16#2208
+/elevencircle 16#246A
+/elevenparen 16#247E
+/elevenperiod 16#2492
+/elevenroman 16#217A
+/ellipsis 16#2026
+/ellipsisvertical 16#22EE
+/emacron 16#0113
+/emacronacute 16#1E17
+/emacrongrave 16#1E15
+/emcyrillic 16#043C
+/emdash 16#2014
+/emdashvertical 16#FE31
+/emonospace 16#FF45
+/emphasismarkarmenian 16#055B
+/emptyset 16#2205
+/enbopomofo 16#3123
+/encyrillic 16#043D
+/endash 16#2013
+/endashvertical 16#FE32
+/endescendercyrillic 16#04A3
+/eng 16#014B
+/engbopomofo 16#3125
+/enghecyrillic 16#04A5
+/enhookcyrillic 16#04C8
+/enspace 16#2002
+/eogonek 16#0119
+/eokorean 16#3153
+/eopen 16#025B
+/eopenclosed 16#029A
+/eopenreversed 16#025C
+/eopenreversedclosed 16#025E
+/eopenreversedhook 16#025D
+/eparen 16#24A0
+/epsilon 16#03B5
+/epsilontonos 16#03AD
+/equal 16#003D
+/equalmonospace 16#FF1D
+/equalsmall 16#FE66
+/equalsuperior 16#207C
+/equivalence 16#2261
+/erbopomofo 16#3126
+/ercyrillic 16#0440
+/ereversed 16#0258
+/ereversedcyrillic 16#044D
+/escyrillic 16#0441
+/esdescendercyrillic 16#04AB
+/esh 16#0283
+/eshcurl 16#0286
+/eshortdeva 16#090E
+/eshortvowelsigndeva 16#0946
+/eshreversedloop 16#01AA
+/eshsquatreversed 16#0285
+/esmallhiragana 16#3047
+/esmallkatakana 16#30A7
+/esmallkatakanahalfwidth 16#FF6A
+/estimated 16#212E
+/esuperior 16#F6EC
+/eta 16#03B7
+/etarmenian 16#0568
+/etatonos 16#03AE
+/eth 16#00F0
+/etilde 16#1EBD
+/etildebelow 16#1E1B
+/etnahtafoukhhebrew 16#0591
+/etnahtafoukhlefthebrew 16#0591
+/etnahtahebrew 16#0591
+/etnahtalefthebrew 16#0591
+/eturned 16#01DD
+/eukorean 16#3161
+/euro 16#20AC
+/evowelsignbengali 16#09C7
+/evowelsigndeva 16#0947
+/evowelsigngujarati 16#0AC7
+/exclam 16#0021
+/exclamarmenian 16#055C
+/exclamdbl 16#203C
+/exclamdown 16#00A1
+/exclamdownsmall 16#F7A1
+/exclammonospace 16#FF01
+/exclamsmall 16#F721
+/existential 16#2203
+/ezh 16#0292
+/ezhcaron 16#01EF
+/ezhcurl 16#0293
+/ezhreversed 16#01B9
+/ezhtail 16#01BA
+/f 16#0066
+/fadeva 16#095E
+/fagurmukhi 16#0A5E
+/fahrenheit 16#2109
+/fathaarabic 16#064E
+/fathalowarabic 16#064E
+/fathatanarabic 16#064B
+/fbopomofo 16#3108
+/fcircle 16#24D5
+/fdotaccent 16#1E1F
+/feharabic 16#0641
+/feharmenian 16#0586
+/fehfinalarabic 16#FED2
+/fehinitialarabic 16#FED3
+/fehmedialarabic 16#FED4
+/feicoptic 16#03E5
+/female 16#2640
+/ff 16#FB00
+/ffi 16#FB03
+/ffl 16#FB04
+/fi 16#FB01
+/fifteencircle 16#246E
+/fifteenparen 16#2482
+/fifteenperiod 16#2496
+/figuredash 16#2012
+/filledbox 16#25A0
+/filledrect 16#25AC
+/finalkaf 16#05DA
+/finalkafdagesh 16#FB3A
+/finalkafdageshhebrew 16#FB3A
+/finalkafhebrew 16#05DA
+% /finalkafqamats 16#05DA 16#05B8
+% /finalkafqamatshebrew 16#05DA 16#05B8
+% /finalkafsheva 16#05DA 16#05B0
+% /finalkafshevahebrew 16#05DA 16#05B0
+/finalmem 16#05DD
+/finalmemhebrew 16#05DD
+/finalnun 16#05DF
+/finalnunhebrew 16#05DF
+/finalpe 16#05E3
+/finalpehebrew 16#05E3
+/finaltsadi 16#05E5
+/finaltsadihebrew 16#05E5
+/firsttonechinese 16#02C9
+/fisheye 16#25C9
+/fitacyrillic 16#0473
+/five 16#0035
+/fivearabic 16#0665
+/fivebengali 16#09EB
+/fivecircle 16#2464
+/fivecircleinversesansserif 16#278E
+/fivedeva 16#096B
+/fiveeighths 16#215D
+/fivegujarati 16#0AEB
+/fivegurmukhi 16#0A6B
+/fivehackarabic 16#0665
+/fivehangzhou 16#3025
+/fiveideographicparen 16#3224
+/fiveinferior 16#2085
+/fivemonospace 16#FF15
+/fiveoldstyle 16#F735
+/fiveparen 16#2478
+/fiveperiod 16#248C
+/fivepersian 16#06F5
+/fiveroman 16#2174
+/fivesuperior 16#2075
+/fivethai 16#0E55
+/fl 16#FB02
+/florin 16#0192
+/fmonospace 16#FF46
+/fmsquare 16#3399
+/fofanthai 16#0E1F
+/fofathai 16#0E1D
+/fongmanthai 16#0E4F
+/forall 16#2200
+/four 16#0034
+/fourarabic 16#0664
+/fourbengali 16#09EA
+/fourcircle 16#2463
+/fourcircleinversesansserif 16#278D
+/fourdeva 16#096A
+/fourgujarati 16#0AEA
+/fourgurmukhi 16#0A6A
+/fourhackarabic 16#0664
+/fourhangzhou 16#3024
+/fourideographicparen 16#3223
+/fourinferior 16#2084
+/fourmonospace 16#FF14
+/fournumeratorbengali 16#09F7
+/fouroldstyle 16#F734
+/fourparen 16#2477
+/fourperiod 16#248B
+/fourpersian 16#06F4
+/fourroman 16#2173
+/foursuperior 16#2074
+/fourteencircle 16#246D
+/fourteenparen 16#2481
+/fourteenperiod 16#2495
+/fourthai 16#0E54
+/fourthtonechinese 16#02CB
+/fparen 16#24A1
+/fraction 16#2044
+/franc 16#20A3
+/g 16#0067
+/gabengali 16#0997
+/gacute 16#01F5
+/gadeva 16#0917
+/gafarabic 16#06AF
+/gaffinalarabic 16#FB93
+/gafinitialarabic 16#FB94
+/gafmedialarabic 16#FB95
+/gagujarati 16#0A97
+/gagurmukhi 16#0A17
+/gahiragana 16#304C
+/gakatakana 16#30AC
+/gamma 16#03B3
+/gammalatinsmall 16#0263
+/gammasuperior 16#02E0
+/gangiacoptic 16#03EB
+/gbopomofo 16#310D
+/gbreve 16#011F
+/gcaron 16#01E7
+/gcedilla 16#0123
+/gcircle 16#24D6
+/gcircumflex 16#011D
+/gcommaaccent 16#0123
+/gdot 16#0121
+/gdotaccent 16#0121
+/gecyrillic 16#0433
+/gehiragana 16#3052
+/gekatakana 16#30B2
+/geometricallyequal 16#2251
+/gereshaccenthebrew 16#059C
+/gereshhebrew 16#05F3
+/gereshmuqdamhebrew 16#059D
+/germandbls 16#00DF
+/gershayimaccenthebrew 16#059E
+/gershayimhebrew 16#05F4
+/getamark 16#3013
+/ghabengali 16#0998
+/ghadarmenian 16#0572
+/ghadeva 16#0918
+/ghagujarati 16#0A98
+/ghagurmukhi 16#0A18
+/ghainarabic 16#063A
+/ghainfinalarabic 16#FECE
+/ghaininitialarabic 16#FECF
+/ghainmedialarabic 16#FED0
+/ghemiddlehookcyrillic 16#0495
+/ghestrokecyrillic 16#0493
+/gheupturncyrillic 16#0491
+/ghhadeva 16#095A
+/ghhagurmukhi 16#0A5A
+/ghook 16#0260
+/ghzsquare 16#3393
+/gihiragana 16#304E
+/gikatakana 16#30AE
+/gimarmenian 16#0563
+/gimel 16#05D2
+/gimeldagesh 16#FB32
+/gimeldageshhebrew 16#FB32
+/gimelhebrew 16#05D2
+/gjecyrillic 16#0453
+/glottalinvertedstroke 16#01BE
+/glottalstop 16#0294
+/glottalstopinverted 16#0296
+/glottalstopmod 16#02C0
+/glottalstopreversed 16#0295
+/glottalstopreversedmod 16#02C1
+/glottalstopreversedsuperior 16#02E4
+/glottalstopstroke 16#02A1
+/glottalstopstrokereversed 16#02A2
+/gmacron 16#1E21
+/gmonospace 16#FF47
+/gohiragana 16#3054
+/gokatakana 16#30B4
+/gparen 16#24A2
+/gpasquare 16#33AC
+/gradient 16#2207
+/grave 16#0060
+/gravebelowcmb 16#0316
+/gravecmb 16#0300
+/gravecomb 16#0300
+/gravedeva 16#0953
+/gravelowmod 16#02CE
+/gravemonospace 16#FF40
+/gravetonecmb 16#0340
+/greater 16#003E
+/greaterequal 16#2265
+/greaterequalorless 16#22DB
+/greatermonospace 16#FF1E
+/greaterorequivalent 16#2273
+/greaterorless 16#2277
+/greateroverequal 16#2267
+/greatersmall 16#FE65
+/gscript 16#0261
+/gstroke 16#01E5
+/guhiragana 16#3050
+/guillemotleft 16#00AB
+/guillemotright 16#00BB
+/guilsinglleft 16#2039
+/guilsinglright 16#203A
+/gukatakana 16#30B0
+/guramusquare 16#3318
+/gysquare 16#33C9
+/h 16#0068
+/haabkhasiancyrillic 16#04A9
+/haaltonearabic 16#06C1
+/habengali 16#09B9
+/hadescendercyrillic 16#04B3
+/hadeva 16#0939
+/hagujarati 16#0AB9
+/hagurmukhi 16#0A39
+/haharabic 16#062D
+/hahfinalarabic 16#FEA2
+/hahinitialarabic 16#FEA3
+/hahiragana 16#306F
+/hahmedialarabic 16#FEA4
+/haitusquare 16#332A
+/hakatakana 16#30CF
+/hakatakanahalfwidth 16#FF8A
+/halantgurmukhi 16#0A4D
+/hamzaarabic 16#0621
+% /hamzadammaarabic 16#0621 16#064F
+% /hamzadammatanarabic 16#0621 16#064C
+% /hamzafathaarabic 16#0621 16#064E
+% /hamzafathatanarabic 16#0621 16#064B
+/hamzalowarabic 16#0621
+% /hamzalowkasraarabic 16#0621 16#0650
+% /hamzalowkasratanarabic 16#0621 16#064D
+% /hamzasukunarabic 16#0621 16#0652
+/hangulfiller 16#3164
+/hardsigncyrillic 16#044A
+/harpoonleftbarbup 16#21BC
+/harpoonrightbarbup 16#21C0
+/hasquare 16#33CA
+/hatafpatah 16#05B2
+/hatafpatah16 16#05B2
+/hatafpatah23 16#05B2
+/hatafpatah2f 16#05B2
+/hatafpatahhebrew 16#05B2
+/hatafpatahnarrowhebrew 16#05B2
+/hatafpatahquarterhebrew 16#05B2
+/hatafpatahwidehebrew 16#05B2
+/hatafqamats 16#05B3
+/hatafqamats1b 16#05B3
+/hatafqamats28 16#05B3
+/hatafqamats34 16#05B3
+/hatafqamatshebrew 16#05B3
+/hatafqamatsnarrowhebrew 16#05B3
+/hatafqamatsquarterhebrew 16#05B3
+/hatafqamatswidehebrew 16#05B3
+/hatafsegol 16#05B1
+/hatafsegol17 16#05B1
+/hatafsegol24 16#05B1
+/hatafsegol30 16#05B1
+/hatafsegolhebrew 16#05B1
+/hatafsegolnarrowhebrew 16#05B1
+/hatafsegolquarterhebrew 16#05B1
+/hatafsegolwidehebrew 16#05B1
+/hbar 16#0127
+/hbopomofo 16#310F
+/hbrevebelow 16#1E2B
+/hcedilla 16#1E29
+/hcircle 16#24D7
+/hcircumflex 16#0125
+/hdieresis 16#1E27
+/hdotaccent 16#1E23
+/hdotbelow 16#1E25
+/he 16#05D4
+/heart 16#2665
+/heartsuitblack 16#2665
+/heartsuitwhite 16#2661
+/hedagesh 16#FB34
+/hedageshhebrew 16#FB34
+/hehaltonearabic 16#06C1
+/heharabic 16#0647
+/hehebrew 16#05D4
+/hehfinalaltonearabic 16#FBA7
+/hehfinalalttwoarabic 16#FEEA
+/hehfinalarabic 16#FEEA
+/hehhamzaabovefinalarabic 16#FBA5
+/hehhamzaaboveisolatedarabic 16#FBA4
+/hehinitialaltonearabic 16#FBA8
+/hehinitialarabic 16#FEEB
+/hehiragana 16#3078
+/hehmedialaltonearabic 16#FBA9
+/hehmedialarabic 16#FEEC
+/heiseierasquare 16#337B
+/hekatakana 16#30D8
+/hekatakanahalfwidth 16#FF8D
+/hekutaarusquare 16#3336
+/henghook 16#0267
+/herutusquare 16#3339
+/het 16#05D7
+/hethebrew 16#05D7
+/hhook 16#0266
+/hhooksuperior 16#02B1
+/hieuhacirclekorean 16#327B
+/hieuhaparenkorean 16#321B
+/hieuhcirclekorean 16#326D
+/hieuhkorean 16#314E
+/hieuhparenkorean 16#320D
+/hihiragana 16#3072
+/hikatakana 16#30D2
+/hikatakanahalfwidth 16#FF8B
+/hiriq 16#05B4
+/hiriq14 16#05B4
+/hiriq21 16#05B4
+/hiriq2d 16#05B4
+/hiriqhebrew 16#05B4
+/hiriqnarrowhebrew 16#05B4
+/hiriqquarterhebrew 16#05B4
+/hiriqwidehebrew 16#05B4
+/hlinebelow 16#1E96
+/hmonospace 16#FF48
+/hoarmenian 16#0570
+/hohipthai 16#0E2B
+/hohiragana 16#307B
+/hokatakana 16#30DB
+/hokatakanahalfwidth 16#FF8E
+/holam 16#05B9
+/holam19 16#05B9
+/holam26 16#05B9
+/holam32 16#05B9
+/holamhebrew 16#05B9
+/holamnarrowhebrew 16#05B9
+/holamquarterhebrew 16#05B9
+/holamwidehebrew 16#05B9
+/honokhukthai 16#0E2E
+/hookabovecomb 16#0309
+/hookcmb 16#0309
+/hookpalatalizedbelowcmb 16#0321
+/hookretroflexbelowcmb 16#0322
+/hoonsquare 16#3342
+/horicoptic 16#03E9
+/horizontalbar 16#2015
+/horncmb 16#031B
+/hotsprings 16#2668
+/house 16#2302
+/hparen 16#24A3
+/hsuperior 16#02B0
+/hturned 16#0265
+/huhiragana 16#3075
+/huiitosquare 16#3333
+/hukatakana 16#30D5
+/hukatakanahalfwidth 16#FF8C
+/hungarumlaut 16#02DD
+/hungarumlautcmb 16#030B
+/hv 16#0195
+/hyphen 16#002D
+/hypheninferior 16#F6E5
+/hyphenmonospace 16#FF0D
+/hyphensmall 16#FE63
+/hyphensuperior 16#F6E6
+/hyphentwo 16#2010
+/i 16#0069
+/iacute 16#00ED
+/iacyrillic 16#044F
+/ibengali 16#0987
+/ibopomofo 16#3127
+/ibreve 16#012D
+/icaron 16#01D0
+/icircle 16#24D8
+/icircumflex 16#00EE
+/icyrillic 16#0456
+/idblgrave 16#0209
+/ideographearthcircle 16#328F
+/ideographfirecircle 16#328B
+/ideographicallianceparen 16#323F
+/ideographiccallparen 16#323A
+/ideographiccentrecircle 16#32A5
+/ideographicclose 16#3006
+/ideographiccomma 16#3001
+/ideographiccommaleft 16#FF64
+/ideographiccongratulationparen 16#3237
+/ideographiccorrectcircle 16#32A3
+/ideographicearthparen 16#322F
+/ideographicenterpriseparen 16#323D
+/ideographicexcellentcircle 16#329D
+/ideographicfestivalparen 16#3240
+/ideographicfinancialcircle 16#3296
+/ideographicfinancialparen 16#3236
+/ideographicfireparen 16#322B
+/ideographichaveparen 16#3232
+/ideographichighcircle 16#32A4
+/ideographiciterationmark 16#3005
+/ideographiclaborcircle 16#3298
+/ideographiclaborparen 16#3238
+/ideographicleftcircle 16#32A7
+/ideographiclowcircle 16#32A6
+/ideographicmedicinecircle 16#32A9
+/ideographicmetalparen 16#322E
+/ideographicmoonparen 16#322A
+/ideographicnameparen 16#3234
+/ideographicperiod 16#3002
+/ideographicprintcircle 16#329E
+/ideographicreachparen 16#3243
+/ideographicrepresentparen 16#3239
+/ideographicresourceparen 16#323E
+/ideographicrightcircle 16#32A8
+/ideographicsecretcircle 16#3299
+/ideographicselfparen 16#3242
+/ideographicsocietyparen 16#3233
+/ideographicspace 16#3000
+/ideographicspecialparen 16#3235
+/ideographicstockparen 16#3231
+/ideographicstudyparen 16#323B
+/ideographicsunparen 16#3230
+/ideographicsuperviseparen 16#323C
+/ideographicwaterparen 16#322C
+/ideographicwoodparen 16#322D
+/ideographiczero 16#3007
+/ideographmetalcircle 16#328E
+/ideographmooncircle 16#328A
+/ideographnamecircle 16#3294
+/ideographsuncircle 16#3290
+/ideographwatercircle 16#328C
+/ideographwoodcircle 16#328D
+/ideva 16#0907
+/idieresis 16#00EF
+/idieresisacute 16#1E2F
+/idieresiscyrillic 16#04E5
+/idotbelow 16#1ECB
+/iebrevecyrillic 16#04D7
+/iecyrillic 16#0435
+/ieungacirclekorean 16#3275
+/ieungaparenkorean 16#3215
+/ieungcirclekorean 16#3267
+/ieungkorean 16#3147
+/ieungparenkorean 16#3207
+/igrave 16#00EC
+/igujarati 16#0A87
+/igurmukhi 16#0A07
+/ihiragana 16#3044
+/ihookabove 16#1EC9
+/iibengali 16#0988
+/iicyrillic 16#0438
+/iideva 16#0908
+/iigujarati 16#0A88
+/iigurmukhi 16#0A08
+/iimatragurmukhi 16#0A40
+/iinvertedbreve 16#020B
+/iishortcyrillic 16#0439
+/iivowelsignbengali 16#09C0
+/iivowelsigndeva 16#0940
+/iivowelsigngujarati 16#0AC0
+/ij 16#0133
+/ikatakana 16#30A4
+/ikatakanahalfwidth 16#FF72
+/ikorean 16#3163
+/ilde 16#02DC
+/iluyhebrew 16#05AC
+/imacron 16#012B
+/imacroncyrillic 16#04E3
+/imageorapproximatelyequal 16#2253
+/imatragurmukhi 16#0A3F
+/imonospace 16#FF49
+/increment 16#2206
+/infinity 16#221E
+/iniarmenian 16#056B
+/integral 16#222B
+/integralbottom 16#2321
+/integralbt 16#2321
+/integralex 16#F8F5
+/integraltop 16#2320
+/integraltp 16#2320
+/intersection 16#2229
+/intisquare 16#3305
+/invbullet 16#25D8
+/invcircle 16#25D9
+/invsmileface 16#263B
+/iocyrillic 16#0451
+/iogonek 16#012F
+/iota 16#03B9
+/iotadieresis 16#03CA
+/iotadieresistonos 16#0390
+/iotalatin 16#0269
+/iotatonos 16#03AF
+/iparen 16#24A4
+/irigurmukhi 16#0A72
+/ismallhiragana 16#3043
+/ismallkatakana 16#30A3
+/ismallkatakanahalfwidth 16#FF68
+/issharbengali 16#09FA
+/istroke 16#0268
+/isuperior 16#F6ED
+/iterationhiragana 16#309D
+/iterationkatakana 16#30FD
+/itilde 16#0129
+/itildebelow 16#1E2D
+/iubopomofo 16#3129
+/iucyrillic 16#044E
+/ivowelsignbengali 16#09BF
+/ivowelsigndeva 16#093F
+/ivowelsigngujarati 16#0ABF
+/izhitsacyrillic 16#0475
+/izhitsadblgravecyrillic 16#0477
+/j 16#006A
+/jaarmenian 16#0571
+/jabengali 16#099C
+/jadeva 16#091C
+/jagujarati 16#0A9C
+/jagurmukhi 16#0A1C
+/jbopomofo 16#3110
+/jcaron 16#01F0
+/jcircle 16#24D9
+/jcircumflex 16#0135
+/jcrossedtail 16#029D
+/jdotlessstroke 16#025F
+/jecyrillic 16#0458
+/jeemarabic 16#062C
+/jeemfinalarabic 16#FE9E
+/jeeminitialarabic 16#FE9F
+/jeemmedialarabic 16#FEA0
+/jeharabic 16#0698
+/jehfinalarabic 16#FB8B
+/jhabengali 16#099D
+/jhadeva 16#091D
+/jhagujarati 16#0A9D
+/jhagurmukhi 16#0A1D
+/jheharmenian 16#057B
+/jis 16#3004
+/jmonospace 16#FF4A
+/jparen 16#24A5
+/jsuperior 16#02B2
+/k 16#006B
+/kabashkircyrillic 16#04A1
+/kabengali 16#0995
+/kacute 16#1E31
+/kacyrillic 16#043A
+/kadescendercyrillic 16#049B
+/kadeva 16#0915
+/kaf 16#05DB
+/kafarabic 16#0643
+/kafdagesh 16#FB3B
+/kafdageshhebrew 16#FB3B
+/kaffinalarabic 16#FEDA
+/kafhebrew 16#05DB
+/kafinitialarabic 16#FEDB
+/kafmedialarabic 16#FEDC
+/kafrafehebrew 16#FB4D
+/kagujarati 16#0A95
+/kagurmukhi 16#0A15
+/kahiragana 16#304B
+/kahookcyrillic 16#04C4
+/kakatakana 16#30AB
+/kakatakanahalfwidth 16#FF76
+/kappa 16#03BA
+/kappasymbolgreek 16#03F0
+/kapyeounmieumkorean 16#3171
+/kapyeounphieuphkorean 16#3184
+/kapyeounpieupkorean 16#3178
+/kapyeounssangpieupkorean 16#3179
+/karoriisquare 16#330D
+/kashidaautoarabic 16#0640
+/kashidaautonosidebearingarabic 16#0640
+/kasmallkatakana 16#30F5
+/kasquare 16#3384
+/kasraarabic 16#0650
+/kasratanarabic 16#064D
+/kastrokecyrillic 16#049F
+/katahiraprolongmarkhalfwidth 16#FF70
+/kaverticalstrokecyrillic 16#049D
+/kbopomofo 16#310E
+/kcalsquare 16#3389
+/kcaron 16#01E9
+/kcedilla 16#0137
+/kcircle 16#24DA
+/kcommaaccent 16#0137
+/kdotbelow 16#1E33
+/keharmenian 16#0584
+/kehiragana 16#3051
+/kekatakana 16#30B1
+/kekatakanahalfwidth 16#FF79
+/kenarmenian 16#056F
+/kesmallkatakana 16#30F6
+/kgreenlandic 16#0138
+/khabengali 16#0996
+/khacyrillic 16#0445
+/khadeva 16#0916
+/khagujarati 16#0A96
+/khagurmukhi 16#0A16
+/khaharabic 16#062E
+/khahfinalarabic 16#FEA6
+/khahinitialarabic 16#FEA7
+/khahmedialarabic 16#FEA8
+/kheicoptic 16#03E7
+/khhadeva 16#0959
+/khhagurmukhi 16#0A59
+/khieukhacirclekorean 16#3278
+/khieukhaparenkorean 16#3218
+/khieukhcirclekorean 16#326A
+/khieukhkorean 16#314B
+/khieukhparenkorean 16#320A
+/khokhaithai 16#0E02
+/khokhonthai 16#0E05
+/khokhuatthai 16#0E03
+/khokhwaithai 16#0E04
+/khomutthai 16#0E5B
+/khook 16#0199
+/khorakhangthai 16#0E06
+/khzsquare 16#3391
+/kihiragana 16#304D
+/kikatakana 16#30AD
+/kikatakanahalfwidth 16#FF77
+/kiroguramusquare 16#3315
+/kiromeetorusquare 16#3316
+/kirosquare 16#3314
+/kiyeokacirclekorean 16#326E
+/kiyeokaparenkorean 16#320E
+/kiyeokcirclekorean 16#3260
+/kiyeokkorean 16#3131
+/kiyeokparenkorean 16#3200
+/kiyeoksioskorean 16#3133
+/kjecyrillic 16#045C
+/klinebelow 16#1E35
+/klsquare 16#3398
+/kmcubedsquare 16#33A6
+/kmonospace 16#FF4B
+/kmsquaredsquare 16#33A2
+/kohiragana 16#3053
+/kohmsquare 16#33C0
+/kokaithai 16#0E01
+/kokatakana 16#30B3
+/kokatakanahalfwidth 16#FF7A
+/kooposquare 16#331E
+/koppacyrillic 16#0481
+/koreanstandardsymbol 16#327F
+/koroniscmb 16#0343
+/kparen 16#24A6
+/kpasquare 16#33AA
+/ksicyrillic 16#046F
+/ktsquare 16#33CF
+/kturned 16#029E
+/kuhiragana 16#304F
+/kukatakana 16#30AF
+/kukatakanahalfwidth 16#FF78
+/kvsquare 16#33B8
+/kwsquare 16#33BE
+/l 16#006C
+/labengali 16#09B2
+/lacute 16#013A
+/ladeva 16#0932
+/lagujarati 16#0AB2
+/lagurmukhi 16#0A32
+/lakkhangyaothai 16#0E45
+/lamaleffinalarabic 16#FEFC
+/lamalefhamzaabovefinalarabic 16#FEF8
+/lamalefhamzaaboveisolatedarabic 16#FEF7
+/lamalefhamzabelowfinalarabic 16#FEFA
+/lamalefhamzabelowisolatedarabic 16#FEF9
+/lamalefisolatedarabic 16#FEFB
+/lamalefmaddaabovefinalarabic 16#FEF6
+/lamalefmaddaaboveisolatedarabic 16#FEF5
+/lamarabic 16#0644
+/lambda 16#03BB
+/lambdastroke 16#019B
+/lamed 16#05DC
+/lameddagesh 16#FB3C
+/lameddageshhebrew 16#FB3C
+/lamedhebrew 16#05DC
+% /lamedholam 16#05DC 16#05B9
+% /lamedholamdagesh 16#05DC 16#05B9 16#05BC
+% /lamedholamdageshhebrew 16#05DC 16#05B9 16#05BC
+% /lamedholamhebrew 16#05DC 16#05B9
+/lamfinalarabic 16#FEDE
+/lamhahinitialarabic 16#FCCA
+/laminitialarabic 16#FEDF
+/lamjeeminitialarabic 16#FCC9
+/lamkhahinitialarabic 16#FCCB
+/lamlamhehisolatedarabic 16#FDF2
+/lammedialarabic 16#FEE0
+/lammeemhahinitialarabic 16#FD88
+/lammeeminitialarabic 16#FCCC
+% /lammeemjeeminitialarabic 16#FEDF 16#FEE4 16#FEA0
+% /lammeemkhahinitialarabic 16#FEDF 16#FEE4 16#FEA8
+/largecircle 16#25EF
+/lbar 16#019A
+/lbelt 16#026C
+/lbopomofo 16#310C
+/lcaron 16#013E
+/lcedilla 16#013C
+/lcircle 16#24DB
+/lcircumflexbelow 16#1E3D
+/lcommaaccent 16#013C
+/ldot 16#0140
+/ldotaccent 16#0140
+/ldotbelow 16#1E37
+/ldotbelowmacron 16#1E39
+/leftangleabovecmb 16#031A
+/lefttackbelowcmb 16#0318
+/less 16#003C
+/lessequal 16#2264
+/lessequalorgreater 16#22DA
+/lessmonospace 16#FF1C
+/lessorequivalent 16#2272
+/lessorgreater 16#2276
+/lessoverequal 16#2266
+/lesssmall 16#FE64
+/lezh 16#026E
+/lfblock 16#258C
+/lhookretroflex 16#026D
+/lira 16#20A4
+/liwnarmenian 16#056C
+/lj 16#01C9
+/ljecyrillic 16#0459
+/ll 16#F6C0
+/lladeva 16#0933
+/llagujarati 16#0AB3
+/llinebelow 16#1E3B
+/llladeva 16#0934
+/llvocalicbengali 16#09E1
+/llvocalicdeva 16#0961
+/llvocalicvowelsignbengali 16#09E3
+/llvocalicvowelsigndeva 16#0963
+/lmiddletilde 16#026B
+/lmonospace 16#FF4C
+/lmsquare 16#33D0
+/lochulathai 16#0E2C
+/logicaland 16#2227
+/logicalnot 16#00AC
+/logicalnotreversed 16#2310
+/logicalor 16#2228
+/lolingthai 16#0E25
+/longs 16#017F
+/lowlinecenterline 16#FE4E
+/lowlinecmb 16#0332
+/lowlinedashed 16#FE4D
+/lozenge 16#25CA
+/lparen 16#24A7
+/lslash 16#0142
+/lsquare 16#2113
+/lsuperior 16#F6EE
+/ltshade 16#2591
+/luthai 16#0E26
+/lvocalicbengali 16#098C
+/lvocalicdeva 16#090C
+/lvocalicvowelsignbengali 16#09E2
+/lvocalicvowelsigndeva 16#0962
+/lxsquare 16#33D3
+/m 16#006D
+/mabengali 16#09AE
+/macron 16#00AF
+/macronbelowcmb 16#0331
+/macroncmb 16#0304
+/macronlowmod 16#02CD
+/macronmonospace 16#FFE3
+/macute 16#1E3F
+/madeva 16#092E
+/magujarati 16#0AAE
+/magurmukhi 16#0A2E
+/mahapakhhebrew 16#05A4
+/mahapakhlefthebrew 16#05A4
+/mahiragana 16#307E
+/maichattawalowleftthai 16#F895
+/maichattawalowrightthai 16#F894
+/maichattawathai 16#0E4B
+/maichattawaupperleftthai 16#F893
+/maieklowleftthai 16#F88C
+/maieklowrightthai 16#F88B
+/maiekthai 16#0E48
+/maiekupperleftthai 16#F88A
+/maihanakatleftthai 16#F884
+/maihanakatthai 16#0E31
+/maitaikhuleftthai 16#F889
+/maitaikhuthai 16#0E47
+/maitholowleftthai 16#F88F
+/maitholowrightthai 16#F88E
+/maithothai 16#0E49
+/maithoupperleftthai 16#F88D
+/maitrilowleftthai 16#F892
+/maitrilowrightthai 16#F891
+/maitrithai 16#0E4A
+/maitriupperleftthai 16#F890
+/maiyamokthai 16#0E46
+/makatakana 16#30DE
+/makatakanahalfwidth 16#FF8F
+/male 16#2642
+/mansyonsquare 16#3347
+/maqafhebrew 16#05BE
+/mars 16#2642
+/masoracirclehebrew 16#05AF
+/masquare 16#3383
+/mbopomofo 16#3107
+/mbsquare 16#33D4
+/mcircle 16#24DC
+/mcubedsquare 16#33A5
+/mdotaccent 16#1E41
+/mdotbelow 16#1E43
+/meemarabic 16#0645
+/meemfinalarabic 16#FEE2
+/meeminitialarabic 16#FEE3
+/meemmedialarabic 16#FEE4
+/meemmeeminitialarabic 16#FCD1
+/meemmeemisolatedarabic 16#FC48
+/meetorusquare 16#334D
+/mehiragana 16#3081
+/meizierasquare 16#337E
+/mekatakana 16#30E1
+/mekatakanahalfwidth 16#FF92
+/mem 16#05DE
+/memdagesh 16#FB3E
+/memdageshhebrew 16#FB3E
+/memhebrew 16#05DE
+/menarmenian 16#0574
+/merkhahebrew 16#05A5
+/merkhakefulahebrew 16#05A6
+/merkhakefulalefthebrew 16#05A6
+/merkhalefthebrew 16#05A5
+/mhook 16#0271
+/mhzsquare 16#3392
+/middledotkatakanahalfwidth 16#FF65
+/middot 16#00B7
+/mieumacirclekorean 16#3272
+/mieumaparenkorean 16#3212
+/mieumcirclekorean 16#3264
+/mieumkorean 16#3141
+/mieumpansioskorean 16#3170
+/mieumparenkorean 16#3204
+/mieumpieupkorean 16#316E
+/mieumsioskorean 16#316F
+/mihiragana 16#307F
+/mikatakana 16#30DF
+/mikatakanahalfwidth 16#FF90
+/minus 16#2212
+/minusbelowcmb 16#0320
+/minuscircle 16#2296
+/minusmod 16#02D7
+/minusplus 16#2213
+/minute 16#2032
+/miribaarusquare 16#334A
+/mirisquare 16#3349
+/mlonglegturned 16#0270
+/mlsquare 16#3396
+/mmcubedsquare 16#33A3
+/mmonospace 16#FF4D
+/mmsquaredsquare 16#339F
+/mohiragana 16#3082
+/mohmsquare 16#33C1
+/mokatakana 16#30E2
+/mokatakanahalfwidth 16#FF93
+/molsquare 16#33D6
+/momathai 16#0E21
+/moverssquare 16#33A7
+/moverssquaredsquare 16#33A8
+/mparen 16#24A8
+/mpasquare 16#33AB
+/mssquare 16#33B3
+/msuperior 16#F6EF
+/mturned 16#026F
+/mu 16#00B5
+/mu1 16#00B5
+/muasquare 16#3382
+/muchgreater 16#226B
+/muchless 16#226A
+/mufsquare 16#338C
+/mugreek 16#03BC
+/mugsquare 16#338D
+/muhiragana 16#3080
+/mukatakana 16#30E0
+/mukatakanahalfwidth 16#FF91
+/mulsquare 16#3395
+/multiply 16#00D7
+/mumsquare 16#339B
+/munahhebrew 16#05A3
+/munahlefthebrew 16#05A3
+/musicalnote 16#266A
+/musicalnotedbl 16#266B
+/musicflatsign 16#266D
+/musicsharpsign 16#266F
+/mussquare 16#33B2
+/muvsquare 16#33B6
+/muwsquare 16#33BC
+/mvmegasquare 16#33B9
+/mvsquare 16#33B7
+/mwmegasquare 16#33BF
+/mwsquare 16#33BD
+/n 16#006E
+/nabengali 16#09A8
+/nabla 16#2207
+/nacute 16#0144
+/nadeva 16#0928
+/nagujarati 16#0AA8
+/nagurmukhi 16#0A28
+/nahiragana 16#306A
+/nakatakana 16#30CA
+/nakatakanahalfwidth 16#FF85
+/napostrophe 16#0149
+/nasquare 16#3381
+/nbopomofo 16#310B
+/nbspace 16#00A0
+/ncaron 16#0148
+/ncedilla 16#0146
+/ncircle 16#24DD
+/ncircumflexbelow 16#1E4B
+/ncommaaccent 16#0146
+/ndotaccent 16#1E45
+/ndotbelow 16#1E47
+/nehiragana 16#306D
+/nekatakana 16#30CD
+/nekatakanahalfwidth 16#FF88
+/newsheqelsign 16#20AA
+/nfsquare 16#338B
+/ngabengali 16#0999
+/ngadeva 16#0919
+/ngagujarati 16#0A99
+/ngagurmukhi 16#0A19
+/ngonguthai 16#0E07
+/nhiragana 16#3093
+/nhookleft 16#0272
+/nhookretroflex 16#0273
+/nieunacirclekorean 16#326F
+/nieunaparenkorean 16#320F
+/nieuncieuckorean 16#3135
+/nieuncirclekorean 16#3261
+/nieunhieuhkorean 16#3136
+/nieunkorean 16#3134
+/nieunpansioskorean 16#3168
+/nieunparenkorean 16#3201
+/nieunsioskorean 16#3167
+/nieuntikeutkorean 16#3166
+/nihiragana 16#306B
+/nikatakana 16#30CB
+/nikatakanahalfwidth 16#FF86
+/nikhahitleftthai 16#F899
+/nikhahitthai 16#0E4D
+/nine 16#0039
+/ninearabic 16#0669
+/ninebengali 16#09EF
+/ninecircle 16#2468
+/ninecircleinversesansserif 16#2792
+/ninedeva 16#096F
+/ninegujarati 16#0AEF
+/ninegurmukhi 16#0A6F
+/ninehackarabic 16#0669
+/ninehangzhou 16#3029
+/nineideographicparen 16#3228
+/nineinferior 16#2089
+/ninemonospace 16#FF19
+/nineoldstyle 16#F739
+/nineparen 16#247C
+/nineperiod 16#2490
+/ninepersian 16#06F9
+/nineroman 16#2178
+/ninesuperior 16#2079
+/nineteencircle 16#2472
+/nineteenparen 16#2486
+/nineteenperiod 16#249A
+/ninethai 16#0E59
+/nj 16#01CC
+/njecyrillic 16#045A
+/nkatakana 16#30F3
+/nkatakanahalfwidth 16#FF9D
+/nlegrightlong 16#019E
+/nlinebelow 16#1E49
+/nmonospace 16#FF4E
+/nmsquare 16#339A
+/nnabengali 16#09A3
+/nnadeva 16#0923
+/nnagujarati 16#0AA3
+/nnagurmukhi 16#0A23
+/nnnadeva 16#0929
+/nohiragana 16#306E
+/nokatakana 16#30CE
+/nokatakanahalfwidth 16#FF89
+/nonbreakingspace 16#00A0
+/nonenthai 16#0E13
+/nonuthai 16#0E19
+/noonarabic 16#0646
+/noonfinalarabic 16#FEE6
+/noonghunnaarabic 16#06BA
+/noonghunnafinalarabic 16#FB9F
+% /noonhehinitialarabic 16#FEE7 16#FEEC
+/nooninitialarabic 16#FEE7
+/noonjeeminitialarabic 16#FCD2
+/noonjeemisolatedarabic 16#FC4B
+/noonmedialarabic 16#FEE8
+/noonmeeminitialarabic 16#FCD5
+/noonmeemisolatedarabic 16#FC4E
+/noonnoonfinalarabic 16#FC8D
+/notcontains 16#220C
+/notelement 16#2209
+/notelementof 16#2209
+/notequal 16#2260
+/notgreater 16#226F
+/notgreaternorequal 16#2271
+/notgreaternorless 16#2279
+/notidentical 16#2262
+/notless 16#226E
+/notlessnorequal 16#2270
+/notparallel 16#2226
+/notprecedes 16#2280
+/notsubset 16#2284
+/notsucceeds 16#2281
+/notsuperset 16#2285
+/nowarmenian 16#0576
+/nparen 16#24A9
+/nssquare 16#33B1
+/nsuperior 16#207F
+/ntilde 16#00F1
+/nu 16#03BD
+/nuhiragana 16#306C
+/nukatakana 16#30CC
+/nukatakanahalfwidth 16#FF87
+/nuktabengali 16#09BC
+/nuktadeva 16#093C
+/nuktagujarati 16#0ABC
+/nuktagurmukhi 16#0A3C
+/numbersign 16#0023
+/numbersignmonospace 16#FF03
+/numbersignsmall 16#FE5F
+/numeralsigngreek 16#0374
+/numeralsignlowergreek 16#0375
+/numero 16#2116
+/nun 16#05E0
+/nundagesh 16#FB40
+/nundageshhebrew 16#FB40
+/nunhebrew 16#05E0
+/nvsquare 16#33B5
+/nwsquare 16#33BB
+/nyabengali 16#099E
+/nyadeva 16#091E
+/nyagujarati 16#0A9E
+/nyagurmukhi 16#0A1E
+/o 16#006F
+/oacute 16#00F3
+/oangthai 16#0E2D
+/obarred 16#0275
+/obarredcyrillic 16#04E9
+/obarreddieresiscyrillic 16#04EB
+/obengali 16#0993
+/obopomofo 16#311B
+/obreve 16#014F
+/ocandradeva 16#0911
+/ocandragujarati 16#0A91
+/ocandravowelsigndeva 16#0949
+/ocandravowelsigngujarati 16#0AC9
+/ocaron 16#01D2
+/ocircle 16#24DE
+/ocircumflex 16#00F4
+/ocircumflexacute 16#1ED1
+/ocircumflexdotbelow 16#1ED9
+/ocircumflexgrave 16#1ED3
+/ocircumflexhookabove 16#1ED5
+/ocircumflextilde 16#1ED7
+/ocyrillic 16#043E
+/odblacute 16#0151
+/odblgrave 16#020D
+/odeva 16#0913
+/odieresis 16#00F6
+/odieresiscyrillic 16#04E7
+/odotbelow 16#1ECD
+/oe 16#0153
+/oekorean 16#315A
+/ogonek 16#02DB
+/ogonekcmb 16#0328
+/ograve 16#00F2
+/ogujarati 16#0A93
+/oharmenian 16#0585
+/ohiragana 16#304A
+/ohookabove 16#1ECF
+/ohorn 16#01A1
+/ohornacute 16#1EDB
+/ohorndotbelow 16#1EE3
+/ohorngrave 16#1EDD
+/ohornhookabove 16#1EDF
+/ohorntilde 16#1EE1
+/ohungarumlaut 16#0151
+/oi 16#01A3
+/oinvertedbreve 16#020F
+/okatakana 16#30AA
+/okatakanahalfwidth 16#FF75
+/okorean 16#3157
+/olehebrew 16#05AB
+/omacron 16#014D
+/omacronacute 16#1E53
+/omacrongrave 16#1E51
+/omdeva 16#0950
+/omega 16#03C9
+/omega1 16#03D6
+/omegacyrillic 16#0461
+/omegalatinclosed 16#0277
+/omegaroundcyrillic 16#047B
+/omegatitlocyrillic 16#047D
+/omegatonos 16#03CE
+/omgujarati 16#0AD0
+/omicron 16#03BF
+/omicrontonos 16#03CC
+/omonospace 16#FF4F
+/one 16#0031
+/onearabic 16#0661
+/onebengali 16#09E7
+/onecircle 16#2460
+/onecircleinversesansserif 16#278A
+/onedeva 16#0967
+/onedotenleader 16#2024
+/oneeighth 16#215B
+/onefitted 16#F6DC
+/onegujarati 16#0AE7
+/onegurmukhi 16#0A67
+/onehackarabic 16#0661
+/onehalf 16#00BD
+/onehangzhou 16#3021
+/oneideographicparen 16#3220
+/oneinferior 16#2081
+/onemonospace 16#FF11
+/onenumeratorbengali 16#09F4
+/oneoldstyle 16#F731
+/oneparen 16#2474
+/oneperiod 16#2488
+/onepersian 16#06F1
+/onequarter 16#00BC
+/oneroman 16#2170
+/onesuperior 16#00B9
+/onethai 16#0E51
+/onethird 16#2153
+/oogonek 16#01EB
+/oogonekmacron 16#01ED
+/oogurmukhi 16#0A13
+/oomatragurmukhi 16#0A4B
+/oopen 16#0254
+/oparen 16#24AA
+/openbullet 16#25E6
+/option 16#2325
+/ordfeminine 16#00AA
+/ordmasculine 16#00BA
+/orthogonal 16#221F
+/oshortdeva 16#0912
+/oshortvowelsigndeva 16#094A
+/oslash 16#00F8
+/oslashacute 16#01FF
+/osmallhiragana 16#3049
+/osmallkatakana 16#30A9
+/osmallkatakanahalfwidth 16#FF6B
+/ostrokeacute 16#01FF
+/osuperior 16#F6F0
+/otcyrillic 16#047F
+/otilde 16#00F5
+/otildeacute 16#1E4D
+/otildedieresis 16#1E4F
+/oubopomofo 16#3121
+/overline 16#203E
+/overlinecenterline 16#FE4A
+/overlinecmb 16#0305
+/overlinedashed 16#FE49
+/overlinedblwavy 16#FE4C
+/overlinewavy 16#FE4B
+/overscore 16#00AF
+/ovowelsignbengali 16#09CB
+/ovowelsigndeva 16#094B
+/ovowelsigngujarati 16#0ACB
+/p 16#0070
+/paampssquare 16#3380
+/paasentosquare 16#332B
+/pabengali 16#09AA
+/pacute 16#1E55
+/padeva 16#092A
+/pagedown 16#21DF
+/pageup 16#21DE
+/pagujarati 16#0AAA
+/pagurmukhi 16#0A2A
+/pahiragana 16#3071
+/paiyannoithai 16#0E2F
+/pakatakana 16#30D1
+/palatalizationcyrilliccmb 16#0484
+/palochkacyrillic 16#04C0
+/pansioskorean 16#317F
+/paragraph 16#00B6
+/parallel 16#2225
+/parenleft 16#0028
+/parenleftaltonearabic 16#FD3E
+/parenleftbt 16#F8ED
+/parenleftex 16#F8EC
+/parenleftinferior 16#208D
+/parenleftmonospace 16#FF08
+/parenleftsmall 16#FE59
+/parenleftsuperior 16#207D
+/parenlefttp 16#F8EB
+/parenleftvertical 16#FE35
+/parenright 16#0029
+/parenrightaltonearabic 16#FD3F
+/parenrightbt 16#F8F8
+/parenrightex 16#F8F7
+/parenrightinferior 16#208E
+/parenrightmonospace 16#FF09
+/parenrightsmall 16#FE5A
+/parenrightsuperior 16#207E
+/parenrighttp 16#F8F6
+/parenrightvertical 16#FE36
+/partialdiff 16#2202
+/paseqhebrew 16#05C0
+/pashtahebrew 16#0599
+/pasquare 16#33A9
+/patah 16#05B7
+/patah11 16#05B7
+/patah1d 16#05B7
+/patah2a 16#05B7
+/patahhebrew 16#05B7
+/patahnarrowhebrew 16#05B7
+/patahquarterhebrew 16#05B7
+/patahwidehebrew 16#05B7
+/pazerhebrew 16#05A1
+/pbopomofo 16#3106
+/pcircle 16#24DF
+/pdotaccent 16#1E57
+/pe 16#05E4
+/pecyrillic 16#043F
+/pedagesh 16#FB44
+/pedageshhebrew 16#FB44
+/peezisquare 16#333B
+/pefinaldageshhebrew 16#FB43
+/peharabic 16#067E
+/peharmenian 16#057A
+/pehebrew 16#05E4
+/pehfinalarabic 16#FB57
+/pehinitialarabic 16#FB58
+/pehiragana 16#307A
+/pehmedialarabic 16#FB59
+/pekatakana 16#30DA
+/pemiddlehookcyrillic 16#04A7
+/perafehebrew 16#FB4E
+/percent 16#0025
+/percentarabic 16#066A
+/percentmonospace 16#FF05
+/percentsmall 16#FE6A
+/period 16#002E
+/periodarmenian 16#0589
+/periodcentered 16#00B7
+/periodhalfwidth 16#FF61
+/periodinferior 16#F6E7
+/periodmonospace 16#FF0E
+/periodsmall 16#FE52
+/periodsuperior 16#F6E8
+/perispomenigreekcmb 16#0342
+/perpendicular 16#22A5
+/perthousand 16#2030
+/peseta 16#20A7
+/pfsquare 16#338A
+/phabengali 16#09AB
+/phadeva 16#092B
+/phagujarati 16#0AAB
+/phagurmukhi 16#0A2B
+/phi 16#03C6
+/phi1 16#03D5
+/phieuphacirclekorean 16#327A
+/phieuphaparenkorean 16#321A
+/phieuphcirclekorean 16#326C
+/phieuphkorean 16#314D
+/phieuphparenkorean 16#320C
+/philatin 16#0278
+/phinthuthai 16#0E3A
+/phisymbolgreek 16#03D5
+/phook 16#01A5
+/phophanthai 16#0E1E
+/phophungthai 16#0E1C
+/phosamphaothai 16#0E20
+/pi 16#03C0
+/pieupacirclekorean 16#3273
+/pieupaparenkorean 16#3213
+/pieupcieuckorean 16#3176
+/pieupcirclekorean 16#3265
+/pieupkiyeokkorean 16#3172
+/pieupkorean 16#3142
+/pieupparenkorean 16#3205
+/pieupsioskiyeokkorean 16#3174
+/pieupsioskorean 16#3144
+/pieupsiostikeutkorean 16#3175
+/pieupthieuthkorean 16#3177
+/pieuptikeutkorean 16#3173
+/pihiragana 16#3074
+/pikatakana 16#30D4
+/pisymbolgreek 16#03D6
+/piwrarmenian 16#0583
+/plus 16#002B
+/plusbelowcmb 16#031F
+/pluscircle 16#2295
+/plusminus 16#00B1
+/plusmod 16#02D6
+/plusmonospace 16#FF0B
+/plussmall 16#FE62
+/plussuperior 16#207A
+/pmonospace 16#FF50
+/pmsquare 16#33D8
+/pohiragana 16#307D
+/pointingindexdownwhite 16#261F
+/pointingindexleftwhite 16#261C
+/pointingindexrightwhite 16#261E
+/pointingindexupwhite 16#261D
+/pokatakana 16#30DD
+/poplathai 16#0E1B
+/postalmark 16#3012
+/postalmarkface 16#3020
+/pparen 16#24AB
+/precedes 16#227A
+/prescription 16#211E
+/primemod 16#02B9
+/primereversed 16#2035
+/product 16#220F
+/projective 16#2305
+/prolongedkana 16#30FC
+/propellor 16#2318
+/propersubset 16#2282
+/propersuperset 16#2283
+/proportion 16#2237
+/proportional 16#221D
+/psi 16#03C8
+/psicyrillic 16#0471
+/psilipneumatacyrilliccmb 16#0486
+/pssquare 16#33B0
+/puhiragana 16#3077
+/pukatakana 16#30D7
+/pvsquare 16#33B4
+/pwsquare 16#33BA
+/q 16#0071
+/qadeva 16#0958
+/qadmahebrew 16#05A8
+/qafarabic 16#0642
+/qaffinalarabic 16#FED6
+/qafinitialarabic 16#FED7
+/qafmedialarabic 16#FED8
+/qamats 16#05B8
+/qamats10 16#05B8
+/qamats1a 16#05B8
+/qamats1c 16#05B8
+/qamats27 16#05B8
+/qamats29 16#05B8
+/qamats33 16#05B8
+/qamatsde 16#05B8
+/qamatshebrew 16#05B8
+/qamatsnarrowhebrew 16#05B8
+/qamatsqatanhebrew 16#05B8
+/qamatsqatannarrowhebrew 16#05B8
+/qamatsqatanquarterhebrew 16#05B8
+/qamatsqatanwidehebrew 16#05B8
+/qamatsquarterhebrew 16#05B8
+/qamatswidehebrew 16#05B8
+/qarneyparahebrew 16#059F
+/qbopomofo 16#3111
+/qcircle 16#24E0
+/qhook 16#02A0
+/qmonospace 16#FF51
+/qof 16#05E7
+/qofdagesh 16#FB47
+/qofdageshhebrew 16#FB47
+% /qofhatafpatah 16#05E7 16#05B2
+% /qofhatafpatahhebrew 16#05E7 16#05B2
+% /qofhatafsegol 16#05E7 16#05B1
+% /qofhatafsegolhebrew 16#05E7 16#05B1
+/qofhebrew 16#05E7
+% /qofhiriq 16#05E7 16#05B4
+% /qofhiriqhebrew 16#05E7 16#05B4
+% /qofholam 16#05E7 16#05B9
+% /qofholamhebrew 16#05E7 16#05B9
+% /qofpatah 16#05E7 16#05B7
+% /qofpatahhebrew 16#05E7 16#05B7
+% /qofqamats 16#05E7 16#05B8
+% /qofqamatshebrew 16#05E7 16#05B8
+% /qofqubuts 16#05E7 16#05BB
+% /qofqubutshebrew 16#05E7 16#05BB
+% /qofsegol 16#05E7 16#05B6
+% /qofsegolhebrew 16#05E7 16#05B6
+% /qofsheva 16#05E7 16#05B0
+% /qofshevahebrew 16#05E7 16#05B0
+% /qoftsere 16#05E7 16#05B5
+% /qoftserehebrew 16#05E7 16#05B5
+/qparen 16#24AC
+/quarternote 16#2669
+/qubuts 16#05BB
+/qubuts18 16#05BB
+/qubuts25 16#05BB
+/qubuts31 16#05BB
+/qubutshebrew 16#05BB
+/qubutsnarrowhebrew 16#05BB
+/qubutsquarterhebrew 16#05BB
+/qubutswidehebrew 16#05BB
+/question 16#003F
+/questionarabic 16#061F
+/questionarmenian 16#055E
+/questiondown 16#00BF
+/questiondownsmall 16#F7BF
+/questiongreek 16#037E
+/questionmonospace 16#FF1F
+/questionsmall 16#F73F
+/quotedbl 16#0022
+/quotedblbase 16#201E
+/quotedblleft 16#201C
+/quotedblmonospace 16#FF02
+/quotedblprime 16#301E
+/quotedblprimereversed 16#301D
+/quotedblright 16#201D
+/quoteleft 16#2018
+/quoteleftreversed 16#201B
+/quotereversed 16#201B
+/quoteright 16#2019
+/quoterightn 16#0149
+/quotesinglbase 16#201A
+/quotesingle 16#0027
+/quotesinglemonospace 16#FF07
+/r 16#0072
+/raarmenian 16#057C
+/rabengali 16#09B0
+/racute 16#0155
+/radeva 16#0930
+/radical 16#221A
+/radicalex 16#F8E5
+/radoverssquare 16#33AE
+/radoverssquaredsquare 16#33AF
+/radsquare 16#33AD
+/rafe 16#05BF
+/rafehebrew 16#05BF
+/ragujarati 16#0AB0
+/ragurmukhi 16#0A30
+/rahiragana 16#3089
+/rakatakana 16#30E9
+/rakatakanahalfwidth 16#FF97
+/ralowerdiagonalbengali 16#09F1
+/ramiddlediagonalbengali 16#09F0
+/ramshorn 16#0264
+/ratio 16#2236
+/rbopomofo 16#3116
+/rcaron 16#0159
+/rcedilla 16#0157
+/rcircle 16#24E1
+/rcommaaccent 16#0157
+/rdblgrave 16#0211
+/rdotaccent 16#1E59
+/rdotbelow 16#1E5B
+/rdotbelowmacron 16#1E5D
+/referencemark 16#203B
+/reflexsubset 16#2286
+/reflexsuperset 16#2287
+/registered 16#00AE
+/registersans 16#F8E8
+/registerserif 16#F6DA
+/reharabic 16#0631
+/reharmenian 16#0580
+/rehfinalarabic 16#FEAE
+/rehiragana 16#308C
+% /rehyehaleflamarabic 16#0631 16#FEF3 16#FE8E 16#0644
+/rekatakana 16#30EC
+/rekatakanahalfwidth 16#FF9A
+/resh 16#05E8
+/reshdageshhebrew 16#FB48
+% /reshhatafpatah 16#05E8 16#05B2
+% /reshhatafpatahhebrew 16#05E8 16#05B2
+% /reshhatafsegol 16#05E8 16#05B1
+% /reshhatafsegolhebrew 16#05E8 16#05B1
+/reshhebrew 16#05E8
+% /reshhiriq 16#05E8 16#05B4
+% /reshhiriqhebrew 16#05E8 16#05B4
+% /reshholam 16#05E8 16#05B9
+% /reshholamhebrew 16#05E8 16#05B9
+% /reshpatah 16#05E8 16#05B7
+% /reshpatahhebrew 16#05E8 16#05B7
+% /reshqamats 16#05E8 16#05B8
+% /reshqamatshebrew 16#05E8 16#05B8
+% /reshqubuts 16#05E8 16#05BB
+% /reshqubutshebrew 16#05E8 16#05BB
+% /reshsegol 16#05E8 16#05B6
+% /reshsegolhebrew 16#05E8 16#05B6
+% /reshsheva 16#05E8 16#05B0
+% /reshshevahebrew 16#05E8 16#05B0
+% /reshtsere 16#05E8 16#05B5
+% /reshtserehebrew 16#05E8 16#05B5
+/reversedtilde 16#223D
+/reviahebrew 16#0597
+/reviamugrashhebrew 16#0597
+/revlogicalnot 16#2310
+/rfishhook 16#027E
+/rfishhookreversed 16#027F
+/rhabengali 16#09DD
+/rhadeva 16#095D
+/rho 16#03C1
+/rhook 16#027D
+/rhookturned 16#027B
+/rhookturnedsuperior 16#02B5
+/rhosymbolgreek 16#03F1
+/rhotichookmod 16#02DE
+/rieulacirclekorean 16#3271
+/rieulaparenkorean 16#3211
+/rieulcirclekorean 16#3263
+/rieulhieuhkorean 16#3140
+/rieulkiyeokkorean 16#313A
+/rieulkiyeoksioskorean 16#3169
+/rieulkorean 16#3139
+/rieulmieumkorean 16#313B
+/rieulpansioskorean 16#316C
+/rieulparenkorean 16#3203
+/rieulphieuphkorean 16#313F
+/rieulpieupkorean 16#313C
+/rieulpieupsioskorean 16#316B
+/rieulsioskorean 16#313D
+/rieulthieuthkorean 16#313E
+/rieultikeutkorean 16#316A
+/rieulyeorinhieuhkorean 16#316D
+/rightangle 16#221F
+/righttackbelowcmb 16#0319
+/righttriangle 16#22BF
+/rihiragana 16#308A
+/rikatakana 16#30EA
+/rikatakanahalfwidth 16#FF98
+/ring 16#02DA
+/ringbelowcmb 16#0325
+/ringcmb 16#030A
+/ringhalfleft 16#02BF
+/ringhalfleftarmenian 16#0559
+/ringhalfleftbelowcmb 16#031C
+/ringhalfleftcentered 16#02D3
+/ringhalfright 16#02BE
+/ringhalfrightbelowcmb 16#0339
+/ringhalfrightcentered 16#02D2
+/rinvertedbreve 16#0213
+/rittorusquare 16#3351
+/rlinebelow 16#1E5F
+/rlongleg 16#027C
+/rlonglegturned 16#027A
+/rmonospace 16#FF52
+/rohiragana 16#308D
+/rokatakana 16#30ED
+/rokatakanahalfwidth 16#FF9B
+/roruathai 16#0E23
+/rparen 16#24AD
+/rrabengali 16#09DC
+/rradeva 16#0931
+/rragurmukhi 16#0A5C
+/rreharabic 16#0691
+/rrehfinalarabic 16#FB8D
+/rrvocalicbengali 16#09E0
+/rrvocalicdeva 16#0960
+/rrvocalicgujarati 16#0AE0
+/rrvocalicvowelsignbengali 16#09C4
+/rrvocalicvowelsigndeva 16#0944
+/rrvocalicvowelsigngujarati 16#0AC4
+/rsuperior 16#F6F1
+/rtblock 16#2590
+/rturned 16#0279
+/rturnedsuperior 16#02B4
+/ruhiragana 16#308B
+/rukatakana 16#30EB
+/rukatakanahalfwidth 16#FF99
+/rupeemarkbengali 16#09F2
+/rupeesignbengali 16#09F3
+/rupiah 16#F6DD
+/ruthai 16#0E24
+/rvocalicbengali 16#098B
+/rvocalicdeva 16#090B
+/rvocalicgujarati 16#0A8B
+/rvocalicvowelsignbengali 16#09C3
+/rvocalicvowelsigndeva 16#0943
+/rvocalicvowelsigngujarati 16#0AC3
+/s 16#0073
+/sabengali 16#09B8
+/sacute 16#015B
+/sacutedotaccent 16#1E65
+/sadarabic 16#0635
+/sadeva 16#0938
+/sadfinalarabic 16#FEBA
+/sadinitialarabic 16#FEBB
+/sadmedialarabic 16#FEBC
+/sagujarati 16#0AB8
+/sagurmukhi 16#0A38
+/sahiragana 16#3055
+/sakatakana 16#30B5
+/sakatakanahalfwidth 16#FF7B
+/sallallahoualayhewasallamarabic 16#FDFA
+/samekh 16#05E1
+/samekhdagesh 16#FB41
+/samekhdageshhebrew 16#FB41
+/samekhhebrew 16#05E1
+/saraaathai 16#0E32
+/saraaethai 16#0E41
+/saraaimaimalaithai 16#0E44
+/saraaimaimuanthai 16#0E43
+/saraamthai 16#0E33
+/saraathai 16#0E30
+/saraethai 16#0E40
+/saraiileftthai 16#F886
+/saraiithai 16#0E35
+/saraileftthai 16#F885
+/saraithai 16#0E34
+/saraothai 16#0E42
+/saraueeleftthai 16#F888
+/saraueethai 16#0E37
+/saraueleftthai 16#F887
+/sarauethai 16#0E36
+/sarauthai 16#0E38
+/sarauuthai 16#0E39
+/sbopomofo 16#3119
+/scaron 16#0161
+/scarondotaccent 16#1E67
+/scedilla 16#015F
+/schwa 16#0259
+/schwacyrillic 16#04D9
+/schwadieresiscyrillic 16#04DB
+/schwahook 16#025A
+/scircle 16#24E2
+/scircumflex 16#015D
+/scommaaccent 16#0219
+/sdotaccent 16#1E61
+/sdotbelow 16#1E63
+/sdotbelowdotaccent 16#1E69
+/seagullbelowcmb 16#033C
+/second 16#2033
+/secondtonechinese 16#02CA
+/section 16#00A7
+/seenarabic 16#0633
+/seenfinalarabic 16#FEB2
+/seeninitialarabic 16#FEB3
+/seenmedialarabic 16#FEB4
+/segol 16#05B6
+/segol13 16#05B6
+/segol1f 16#05B6
+/segol2c 16#05B6
+/segolhebrew 16#05B6
+/segolnarrowhebrew 16#05B6
+/segolquarterhebrew 16#05B6
+/segoltahebrew 16#0592
+/segolwidehebrew 16#05B6
+/seharmenian 16#057D
+/sehiragana 16#305B
+/sekatakana 16#30BB
+/sekatakanahalfwidth 16#FF7E
+/semicolon 16#003B
+/semicolonarabic 16#061B
+/semicolonmonospace 16#FF1B
+/semicolonsmall 16#FE54
+/semivoicedmarkkana 16#309C
+/semivoicedmarkkanahalfwidth 16#FF9F
+/sentisquare 16#3322
+/sentosquare 16#3323
+/seven 16#0037
+/sevenarabic 16#0667
+/sevenbengali 16#09ED
+/sevencircle 16#2466
+/sevencircleinversesansserif 16#2790
+/sevendeva 16#096D
+/seveneighths 16#215E
+/sevengujarati 16#0AED
+/sevengurmukhi 16#0A6D
+/sevenhackarabic 16#0667
+/sevenhangzhou 16#3027
+/sevenideographicparen 16#3226
+/seveninferior 16#2087
+/sevenmonospace 16#FF17
+/sevenoldstyle 16#F737
+/sevenparen 16#247A
+/sevenperiod 16#248E
+/sevenpersian 16#06F7
+/sevenroman 16#2176
+/sevensuperior 16#2077
+/seventeencircle 16#2470
+/seventeenparen 16#2484
+/seventeenperiod 16#2498
+/seventhai 16#0E57
+/sfthyphen 16#00AD
+/shaarmenian 16#0577
+/shabengali 16#09B6
+/shacyrillic 16#0448
+/shaddaarabic 16#0651
+/shaddadammaarabic 16#FC61
+/shaddadammatanarabic 16#FC5E
+/shaddafathaarabic 16#FC60
+% /shaddafathatanarabic 16#0651 16#064B
+/shaddakasraarabic 16#FC62
+/shaddakasratanarabic 16#FC5F
+/shade 16#2592
+/shadedark 16#2593
+/shadelight 16#2591
+/shademedium 16#2592
+/shadeva 16#0936
+/shagujarati 16#0AB6
+/shagurmukhi 16#0A36
+/shalshelethebrew 16#0593
+/shbopomofo 16#3115
+/shchacyrillic 16#0449
+/sheenarabic 16#0634
+/sheenfinalarabic 16#FEB6
+/sheeninitialarabic 16#FEB7
+/sheenmedialarabic 16#FEB8
+/sheicoptic 16#03E3
+/sheqel 16#20AA
+/sheqelhebrew 16#20AA
+/sheva 16#05B0
+/sheva115 16#05B0
+/sheva15 16#05B0
+/sheva22 16#05B0
+/sheva2e 16#05B0
+/shevahebrew 16#05B0
+/shevanarrowhebrew 16#05B0
+/shevaquarterhebrew 16#05B0
+/shevawidehebrew 16#05B0
+/shhacyrillic 16#04BB
+/shimacoptic 16#03ED
+/shin 16#05E9
+/shindagesh 16#FB49
+/shindageshhebrew 16#FB49
+/shindageshshindot 16#FB2C
+/shindageshshindothebrew 16#FB2C
+/shindageshsindot 16#FB2D
+/shindageshsindothebrew 16#FB2D
+/shindothebrew 16#05C1
+/shinhebrew 16#05E9
+/shinshindot 16#FB2A
+/shinshindothebrew 16#FB2A
+/shinsindot 16#FB2B
+/shinsindothebrew 16#FB2B
+/shook 16#0282
+/sigma 16#03C3
+/sigma1 16#03C2
+/sigmafinal 16#03C2
+/sigmalunatesymbolgreek 16#03F2
+/sihiragana 16#3057
+/sikatakana 16#30B7
+/sikatakanahalfwidth 16#FF7C
+/siluqhebrew 16#05BD
+/siluqlefthebrew 16#05BD
+/similar 16#223C
+/sindothebrew 16#05C2
+/siosacirclekorean 16#3274
+/siosaparenkorean 16#3214
+/sioscieuckorean 16#317E
+/sioscirclekorean 16#3266
+/sioskiyeokkorean 16#317A
+/sioskorean 16#3145
+/siosnieunkorean 16#317B
+/siosparenkorean 16#3206
+/siospieupkorean 16#317D
+/siostikeutkorean 16#317C
+/six 16#0036
+/sixarabic 16#0666
+/sixbengali 16#09EC
+/sixcircle 16#2465
+/sixcircleinversesansserif 16#278F
+/sixdeva 16#096C
+/sixgujarati 16#0AEC
+/sixgurmukhi 16#0A6C
+/sixhackarabic 16#0666
+/sixhangzhou 16#3026
+/sixideographicparen 16#3225
+/sixinferior 16#2086
+/sixmonospace 16#FF16
+/sixoldstyle 16#F736
+/sixparen 16#2479
+/sixperiod 16#248D
+/sixpersian 16#06F6
+/sixroman 16#2175
+/sixsuperior 16#2076
+/sixteencircle 16#246F
+/sixteencurrencydenominatorbengali 16#09F9
+/sixteenparen 16#2483
+/sixteenperiod 16#2497
+/sixthai 16#0E56
+/slash 16#002F
+/slashmonospace 16#FF0F
+/slong 16#017F
+/slongdotaccent 16#1E9B
+/smileface 16#263A
+/smonospace 16#FF53
+/sofpasuqhebrew 16#05C3
+/softhyphen 16#00AD
+/softsigncyrillic 16#044C
+/sohiragana 16#305D
+/sokatakana 16#30BD
+/sokatakanahalfwidth 16#FF7F
+/soliduslongoverlaycmb 16#0338
+/solidusshortoverlaycmb 16#0337
+/sorusithai 16#0E29
+/sosalathai 16#0E28
+/sosothai 16#0E0B
+/sosuathai 16#0E2A
+/space 16#0020
+/spacehackarabic 16#0020
+/spade 16#2660
+/spadesuitblack 16#2660
+/spadesuitwhite 16#2664
+/sparen 16#24AE
+/squarebelowcmb 16#033B
+/squarecc 16#33C4
+/squarecm 16#339D
+/squarediagonalcrosshatchfill 16#25A9
+/squarehorizontalfill 16#25A4
+/squarekg 16#338F
+/squarekm 16#339E
+/squarekmcapital 16#33CE
+/squareln 16#33D1
+/squarelog 16#33D2
+/squaremg 16#338E
+/squaremil 16#33D5
+/squaremm 16#339C
+/squaremsquared 16#33A1
+/squareorthogonalcrosshatchfill 16#25A6
+/squareupperlefttolowerrightfill 16#25A7
+/squareupperrighttolowerleftfill 16#25A8
+/squareverticalfill 16#25A5
+/squarewhitewithsmallblack 16#25A3
+/srsquare 16#33DB
+/ssabengali 16#09B7
+/ssadeva 16#0937
+/ssagujarati 16#0AB7
+/ssangcieuckorean 16#3149
+/ssanghieuhkorean 16#3185
+/ssangieungkorean 16#3180
+/ssangkiyeokkorean 16#3132
+/ssangnieunkorean 16#3165
+/ssangpieupkorean 16#3143
+/ssangsioskorean 16#3146
+/ssangtikeutkorean 16#3138
+/ssuperior 16#F6F2
+/sterling 16#00A3
+/sterlingmonospace 16#FFE1
+/strokelongoverlaycmb 16#0336
+/strokeshortoverlaycmb 16#0335
+/subset 16#2282
+/subsetnotequal 16#228A
+/subsetorequal 16#2286
+/succeeds 16#227B
+/suchthat 16#220B
+/suhiragana 16#3059
+/sukatakana 16#30B9
+/sukatakanahalfwidth 16#FF7D
+/sukunarabic 16#0652
+/summation 16#2211
+/sun 16#263C
+/superset 16#2283
+/supersetnotequal 16#228B
+/supersetorequal 16#2287
+/svsquare 16#33DC
+/syouwaerasquare 16#337C
+/t 16#0074
+/tabengali 16#09A4
+/tackdown 16#22A4
+/tackleft 16#22A3
+/tadeva 16#0924
+/tagujarati 16#0AA4
+/tagurmukhi 16#0A24
+/taharabic 16#0637
+/tahfinalarabic 16#FEC2
+/tahinitialarabic 16#FEC3
+/tahiragana 16#305F
+/tahmedialarabic 16#FEC4
+/taisyouerasquare 16#337D
+/takatakana 16#30BF
+/takatakanahalfwidth 16#FF80
+/tatweelarabic 16#0640
+/tau 16#03C4
+/tav 16#05EA
+/tavdages 16#FB4A
+/tavdagesh 16#FB4A
+/tavdageshhebrew 16#FB4A
+/tavhebrew 16#05EA
+/tbar 16#0167
+/tbopomofo 16#310A
+/tcaron 16#0165
+/tccurl 16#02A8
+/tcedilla 16#0163
+/tcheharabic 16#0686
+/tchehfinalarabic 16#FB7B
+/tchehinitialarabic 16#FB7C
+/tchehmedialarabic 16#FB7D
+% /tchehmeeminitialarabic 16#FB7C 16#FEE4
+/tcircle 16#24E3
+/tcircumflexbelow 16#1E71
+/tcommaaccent 16#0163
+/tdieresis 16#1E97
+/tdotaccent 16#1E6B
+/tdotbelow 16#1E6D
+/tecyrillic 16#0442
+/tedescendercyrillic 16#04AD
+/teharabic 16#062A
+/tehfinalarabic 16#FE96
+/tehhahinitialarabic 16#FCA2
+/tehhahisolatedarabic 16#FC0C
+/tehinitialarabic 16#FE97
+/tehiragana 16#3066
+/tehjeeminitialarabic 16#FCA1
+/tehjeemisolatedarabic 16#FC0B
+/tehmarbutaarabic 16#0629
+/tehmarbutafinalarabic 16#FE94
+/tehmedialarabic 16#FE98
+/tehmeeminitialarabic 16#FCA4
+/tehmeemisolatedarabic 16#FC0E
+/tehnoonfinalarabic 16#FC73
+/tekatakana 16#30C6
+/tekatakanahalfwidth 16#FF83
+/telephone 16#2121
+/telephoneblack 16#260E
+/telishagedolahebrew 16#05A0
+/telishaqetanahebrew 16#05A9
+/tencircle 16#2469
+/tenideographicparen 16#3229
+/tenparen 16#247D
+/tenperiod 16#2491
+/tenroman 16#2179
+/tesh 16#02A7
+/tet 16#05D8
+/tetdagesh 16#FB38
+/tetdageshhebrew 16#FB38
+/tethebrew 16#05D8
+/tetsecyrillic 16#04B5
+/tevirhebrew 16#059B
+/tevirlefthebrew 16#059B
+/thabengali 16#09A5
+/thadeva 16#0925
+/thagujarati 16#0AA5
+/thagurmukhi 16#0A25
+/thalarabic 16#0630
+/thalfinalarabic 16#FEAC
+/thanthakhatlowleftthai 16#F898
+/thanthakhatlowrightthai 16#F897
+/thanthakhatthai 16#0E4C
+/thanthakhatupperleftthai 16#F896
+/theharabic 16#062B
+/thehfinalarabic 16#FE9A
+/thehinitialarabic 16#FE9B
+/thehmedialarabic 16#FE9C
+/thereexists 16#2203
+/therefore 16#2234
+/theta 16#03B8
+/theta1 16#03D1
+/thetasymbolgreek 16#03D1
+/thieuthacirclekorean 16#3279
+/thieuthaparenkorean 16#3219
+/thieuthcirclekorean 16#326B
+/thieuthkorean 16#314C
+/thieuthparenkorean 16#320B
+/thirteencircle 16#246C
+/thirteenparen 16#2480
+/thirteenperiod 16#2494
+/thonangmonthothai 16#0E11
+/thook 16#01AD
+/thophuthaothai 16#0E12
+/thorn 16#00FE
+/thothahanthai 16#0E17
+/thothanthai 16#0E10
+/thothongthai 16#0E18
+/thothungthai 16#0E16
+/thousandcyrillic 16#0482
+/thousandsseparatorarabic 16#066C
+/thousandsseparatorpersian 16#066C
+/three 16#0033
+/threearabic 16#0663
+/threebengali 16#09E9
+/threecircle 16#2462
+/threecircleinversesansserif 16#278C
+/threedeva 16#0969
+/threeeighths 16#215C
+/threegujarati 16#0AE9
+/threegurmukhi 16#0A69
+/threehackarabic 16#0663
+/threehangzhou 16#3023
+/threeideographicparen 16#3222
+/threeinferior 16#2083
+/threemonospace 16#FF13
+/threenumeratorbengali 16#09F6
+/threeoldstyle 16#F733
+/threeparen 16#2476
+/threeperiod 16#248A
+/threepersian 16#06F3
+/threequarters 16#00BE
+/threequartersemdash 16#F6DE
+/threeroman 16#2172
+/threesuperior 16#00B3
+/threethai 16#0E53
+/thzsquare 16#3394
+/tihiragana 16#3061
+/tikatakana 16#30C1
+/tikatakanahalfwidth 16#FF81
+/tikeutacirclekorean 16#3270
+/tikeutaparenkorean 16#3210
+/tikeutcirclekorean 16#3262
+/tikeutkorean 16#3137
+/tikeutparenkorean 16#3202
+/tilde 16#02DC
+/tildebelowcmb 16#0330
+/tildecmb 16#0303
+/tildecomb 16#0303
+/tildedoublecmb 16#0360
+/tildeoperator 16#223C
+/tildeoverlaycmb 16#0334
+/tildeverticalcmb 16#033E
+/timescircle 16#2297
+/tipehahebrew 16#0596
+/tipehalefthebrew 16#0596
+/tippigurmukhi 16#0A70
+/titlocyrilliccmb 16#0483
+/tiwnarmenian 16#057F
+/tlinebelow 16#1E6F
+/tmonospace 16#FF54
+/toarmenian 16#0569
+/tohiragana 16#3068
+/tokatakana 16#30C8
+/tokatakanahalfwidth 16#FF84
+/tonebarextrahighmod 16#02E5
+/tonebarextralowmod 16#02E9
+/tonebarhighmod 16#02E6
+/tonebarlowmod 16#02E8
+/tonebarmidmod 16#02E7
+/tonefive 16#01BD
+/tonesix 16#0185
+/tonetwo 16#01A8
+/tonos 16#0384
+/tonsquare 16#3327
+/topatakthai 16#0E0F
+/tortoiseshellbracketleft 16#3014
+/tortoiseshellbracketleftsmall 16#FE5D
+/tortoiseshellbracketleftvertical 16#FE39
+/tortoiseshellbracketright 16#3015
+/tortoiseshellbracketrightsmall 16#FE5E
+/tortoiseshellbracketrightvertical 16#FE3A
+/totaothai 16#0E15
+/tpalatalhook 16#01AB
+/tparen 16#24AF
+/trademark 16#2122
+/trademarksans 16#F8EA
+/trademarkserif 16#F6DB
+/tretroflexhook 16#0288
+/triagdn 16#25BC
+/triaglf 16#25C4
+/triagrt 16#25BA
+/triagup 16#25B2
+/ts 16#02A6
+/tsadi 16#05E6
+/tsadidagesh 16#FB46
+/tsadidageshhebrew 16#FB46
+/tsadihebrew 16#05E6
+/tsecyrillic 16#0446
+/tsere 16#05B5
+/tsere12 16#05B5
+/tsere1e 16#05B5
+/tsere2b 16#05B5
+/tserehebrew 16#05B5
+/tserenarrowhebrew 16#05B5
+/tserequarterhebrew 16#05B5
+/tserewidehebrew 16#05B5
+/tshecyrillic 16#045B
+/tsuperior 16#F6F3
+/ttabengali 16#099F
+/ttadeva 16#091F
+/ttagujarati 16#0A9F
+/ttagurmukhi 16#0A1F
+/tteharabic 16#0679
+/ttehfinalarabic 16#FB67
+/ttehinitialarabic 16#FB68
+/ttehmedialarabic 16#FB69
+/tthabengali 16#09A0
+/tthadeva 16#0920
+/tthagujarati 16#0AA0
+/tthagurmukhi 16#0A20
+/tturned 16#0287
+/tuhiragana 16#3064
+/tukatakana 16#30C4
+/tukatakanahalfwidth 16#FF82
+/tusmallhiragana 16#3063
+/tusmallkatakana 16#30C3
+/tusmallkatakanahalfwidth 16#FF6F
+/twelvecircle 16#246B
+/twelveparen 16#247F
+/twelveperiod 16#2493
+/twelveroman 16#217B
+/twentycircle 16#2473
+/twentyhangzhou 16#5344
+/twentyparen 16#2487
+/twentyperiod 16#249B
+/two 16#0032
+/twoarabic 16#0662
+/twobengali 16#09E8
+/twocircle 16#2461
+/twocircleinversesansserif 16#278B
+/twodeva 16#0968
+/twodotenleader 16#2025
+/twodotleader 16#2025
+/twodotleadervertical 16#FE30
+/twogujarati 16#0AE8
+/twogurmukhi 16#0A68
+/twohackarabic 16#0662
+/twohangzhou 16#3022
+/twoideographicparen 16#3221
+/twoinferior 16#2082
+/twomonospace 16#FF12
+/twonumeratorbengali 16#09F5
+/twooldstyle 16#F732
+/twoparen 16#2475
+/twoperiod 16#2489
+/twopersian 16#06F2
+/tworoman 16#2171
+/twostroke 16#01BB
+/twosuperior 16#00B2
+/twothai 16#0E52
+/twothirds 16#2154
+/u 16#0075
+/uacute 16#00FA
+/ubar 16#0289
+/ubengali 16#0989
+/ubopomofo 16#3128
+/ubreve 16#016D
+/ucaron 16#01D4
+/ucircle 16#24E4
+/ucircumflex 16#00FB
+/ucircumflexbelow 16#1E77
+/ucyrillic 16#0443
+/udattadeva 16#0951
+/udblacute 16#0171
+/udblgrave 16#0215
+/udeva 16#0909
+/udieresis 16#00FC
+/udieresisacute 16#01D8
+/udieresisbelow 16#1E73
+/udieresiscaron 16#01DA
+/udieresiscyrillic 16#04F1
+/udieresisgrave 16#01DC
+/udieresismacron 16#01D6
+/udotbelow 16#1EE5
+/ugrave 16#00F9
+/ugujarati 16#0A89
+/ugurmukhi 16#0A09
+/uhiragana 16#3046
+/uhookabove 16#1EE7
+/uhorn 16#01B0
+/uhornacute 16#1EE9
+/uhorndotbelow 16#1EF1
+/uhorngrave 16#1EEB
+/uhornhookabove 16#1EED
+/uhorntilde 16#1EEF
+/uhungarumlaut 16#0171
+/uhungarumlautcyrillic 16#04F3
+/uinvertedbreve 16#0217
+/ukatakana 16#30A6
+/ukatakanahalfwidth 16#FF73
+/ukcyrillic 16#0479
+/ukorean 16#315C
+/umacron 16#016B
+/umacroncyrillic 16#04EF
+/umacrondieresis 16#1E7B
+/umatragurmukhi 16#0A41
+/umonospace 16#FF55
+/underscore 16#005F
+/underscoredbl 16#2017
+/underscoremonospace 16#FF3F
+/underscorevertical 16#FE33
+/underscorewavy 16#FE4F
+/union 16#222A
+/universal 16#2200
+/uogonek 16#0173
+/uparen 16#24B0
+/upblock 16#2580
+/upperdothebrew 16#05C4
+/upsilon 16#03C5
+/upsilondieresis 16#03CB
+/upsilondieresistonos 16#03B0
+/upsilonlatin 16#028A
+/upsilontonos 16#03CD
+/uptackbelowcmb 16#031D
+/uptackmod 16#02D4
+/uragurmukhi 16#0A73
+/uring 16#016F
+/ushortcyrillic 16#045E
+/usmallhiragana 16#3045
+/usmallkatakana 16#30A5
+/usmallkatakanahalfwidth 16#FF69
+/ustraightcyrillic 16#04AF
+/ustraightstrokecyrillic 16#04B1
+/utilde 16#0169
+/utildeacute 16#1E79
+/utildebelow 16#1E75
+/uubengali 16#098A
+/uudeva 16#090A
+/uugujarati 16#0A8A
+/uugurmukhi 16#0A0A
+/uumatragurmukhi 16#0A42
+/uuvowelsignbengali 16#09C2
+/uuvowelsigndeva 16#0942
+/uuvowelsigngujarati 16#0AC2
+/uvowelsignbengali 16#09C1
+/uvowelsigndeva 16#0941
+/uvowelsigngujarati 16#0AC1
+/v 16#0076
+/vadeva 16#0935
+/vagujarati 16#0AB5
+/vagurmukhi 16#0A35
+/vakatakana 16#30F7
+/vav 16#05D5
+/vavdagesh 16#FB35
+/vavdagesh65 16#FB35
+/vavdageshhebrew 16#FB35
+/vavhebrew 16#05D5
+/vavholam 16#FB4B
+/vavholamhebrew 16#FB4B
+/vavvavhebrew 16#05F0
+/vavyodhebrew 16#05F1
+/vcircle 16#24E5
+/vdotbelow 16#1E7F
+/vecyrillic 16#0432
+/veharabic 16#06A4
+/vehfinalarabic 16#FB6B
+/vehinitialarabic 16#FB6C
+/vehmedialarabic 16#FB6D
+/vekatakana 16#30F9
+/venus 16#2640
+/verticalbar 16#007C
+/verticallineabovecmb 16#030D
+/verticallinebelowcmb 16#0329
+/verticallinelowmod 16#02CC
+/verticallinemod 16#02C8
+/vewarmenian 16#057E
+/vhook 16#028B
+/vikatakana 16#30F8
+/viramabengali 16#09CD
+/viramadeva 16#094D
+/viramagujarati 16#0ACD
+/visargabengali 16#0983
+/visargadeva 16#0903
+/visargagujarati 16#0A83
+/vmonospace 16#FF56
+/voarmenian 16#0578
+/voicediterationhiragana 16#309E
+/voicediterationkatakana 16#30FE
+/voicedmarkkana 16#309B
+/voicedmarkkanahalfwidth 16#FF9E
+/vokatakana 16#30FA
+/vparen 16#24B1
+/vtilde 16#1E7D
+/vturned 16#028C
+/vuhiragana 16#3094
+/vukatakana 16#30F4
+/w 16#0077
+/wacute 16#1E83
+/waekorean 16#3159
+/wahiragana 16#308F
+/wakatakana 16#30EF
+/wakatakanahalfwidth 16#FF9C
+/wakorean 16#3158
+/wasmallhiragana 16#308E
+/wasmallkatakana 16#30EE
+/wattosquare 16#3357
+/wavedash 16#301C
+/wavyunderscorevertical 16#FE34
+/wawarabic 16#0648
+/wawfinalarabic 16#FEEE
+/wawhamzaabovearabic 16#0624
+/wawhamzaabovefinalarabic 16#FE86
+/wbsquare 16#33DD
+/wcircle 16#24E6
+/wcircumflex 16#0175
+/wdieresis 16#1E85
+/wdotaccent 16#1E87
+/wdotbelow 16#1E89
+/wehiragana 16#3091
+/weierstrass 16#2118
+/wekatakana 16#30F1
+/wekorean 16#315E
+/weokorean 16#315D
+/wgrave 16#1E81
+/whitebullet 16#25E6
+/whitecircle 16#25CB
+/whitecircleinverse 16#25D9
+/whitecornerbracketleft 16#300E
+/whitecornerbracketleftvertical 16#FE43
+/whitecornerbracketright 16#300F
+/whitecornerbracketrightvertical 16#FE44
+/whitediamond 16#25C7
+/whitediamondcontainingblacksmalldiamond 16#25C8
+/whitedownpointingsmalltriangle 16#25BF
+/whitedownpointingtriangle 16#25BD
+/whiteleftpointingsmalltriangle 16#25C3
+/whiteleftpointingtriangle 16#25C1
+/whitelenticularbracketleft 16#3016
+/whitelenticularbracketright 16#3017
+/whiterightpointingsmalltriangle 16#25B9
+/whiterightpointingtriangle 16#25B7
+/whitesmallsquare 16#25AB
+/whitesmilingface 16#263A
+/whitesquare 16#25A1
+/whitestar 16#2606
+/whitetelephone 16#260F
+/whitetortoiseshellbracketleft 16#3018
+/whitetortoiseshellbracketright 16#3019
+/whiteuppointingsmalltriangle 16#25B5
+/whiteuppointingtriangle 16#25B3
+/wihiragana 16#3090
+/wikatakana 16#30F0
+/wikorean 16#315F
+/wmonospace 16#FF57
+/wohiragana 16#3092
+/wokatakana 16#30F2
+/wokatakanahalfwidth 16#FF66
+/won 16#20A9
+/wonmonospace 16#FFE6
+/wowaenthai 16#0E27
+/wparen 16#24B2
+/wring 16#1E98
+/wsuperior 16#02B7
+/wturned 16#028D
+/wynn 16#01BF
+/x 16#0078
+/xabovecmb 16#033D
+/xbopomofo 16#3112
+/xcircle 16#24E7
+/xdieresis 16#1E8D
+/xdotaccent 16#1E8B
+/xeharmenian 16#056D
+/xi 16#03BE
+/xmonospace 16#FF58
+/xparen 16#24B3
+/xsuperior 16#02E3
+/y 16#0079
+/yaadosquare 16#334E
+/yabengali 16#09AF
+/yacute 16#00FD
+/yadeva 16#092F
+/yaekorean 16#3152
+/yagujarati 16#0AAF
+/yagurmukhi 16#0A2F
+/yahiragana 16#3084
+/yakatakana 16#30E4
+/yakatakanahalfwidth 16#FF94
+/yakorean 16#3151
+/yamakkanthai 16#0E4E
+/yasmallhiragana 16#3083
+/yasmallkatakana 16#30E3
+/yasmallkatakanahalfwidth 16#FF6C
+/yatcyrillic 16#0463
+/ycircle 16#24E8
+/ycircumflex 16#0177
+/ydieresis 16#00FF
+/ydotaccent 16#1E8F
+/ydotbelow 16#1EF5
+/yeharabic 16#064A
+/yehbarreearabic 16#06D2
+/yehbarreefinalarabic 16#FBAF
+/yehfinalarabic 16#FEF2
+/yehhamzaabovearabic 16#0626
+/yehhamzaabovefinalarabic 16#FE8A
+/yehhamzaaboveinitialarabic 16#FE8B
+/yehhamzaabovemedialarabic 16#FE8C
+/yehinitialarabic 16#FEF3
+/yehmedialarabic 16#FEF4
+/yehmeeminitialarabic 16#FCDD
+/yehmeemisolatedarabic 16#FC58
+/yehnoonfinalarabic 16#FC94
+/yehthreedotsbelowarabic 16#06D1
+/yekorean 16#3156
+/yen 16#00A5
+/yenmonospace 16#FFE5
+/yeokorean 16#3155
+/yeorinhieuhkorean 16#3186
+/yerahbenyomohebrew 16#05AA
+/yerahbenyomolefthebrew 16#05AA
+/yericyrillic 16#044B
+/yerudieresiscyrillic 16#04F9
+/yesieungkorean 16#3181
+/yesieungpansioskorean 16#3183
+/yesieungsioskorean 16#3182
+/yetivhebrew 16#059A
+/ygrave 16#1EF3
+/yhook 16#01B4
+/yhookabove 16#1EF7
+/yiarmenian 16#0575
+/yicyrillic 16#0457
+/yikorean 16#3162
+/yinyang 16#262F
+/yiwnarmenian 16#0582
+/ymonospace 16#FF59
+/yod 16#05D9
+/yoddagesh 16#FB39
+/yoddageshhebrew 16#FB39
+/yodhebrew 16#05D9
+/yodyodhebrew 16#05F2
+/yodyodpatahhebrew 16#FB1F
+/yohiragana 16#3088
+/yoikorean 16#3189
+/yokatakana 16#30E8
+/yokatakanahalfwidth 16#FF96
+/yokorean 16#315B
+/yosmallhiragana 16#3087
+/yosmallkatakana 16#30E7
+/yosmallkatakanahalfwidth 16#FF6E
+/yotgreek 16#03F3
+/yoyaekorean 16#3188
+/yoyakorean 16#3187
+/yoyakthai 16#0E22
+/yoyingthai 16#0E0D
+/yparen 16#24B4
+/ypogegrammeni 16#037A
+/ypogegrammenigreekcmb 16#0345
+/yr 16#01A6
+/yring 16#1E99
+/ysuperior 16#02B8
+/ytilde 16#1EF9
+/yturned 16#028E
+/yuhiragana 16#3086
+/yuikorean 16#318C
+/yukatakana 16#30E6
+/yukatakanahalfwidth 16#FF95
+/yukorean 16#3160
+/yusbigcyrillic 16#046B
+/yusbigiotifiedcyrillic 16#046D
+/yuslittlecyrillic 16#0467
+/yuslittleiotifiedcyrillic 16#0469
+/yusmallhiragana 16#3085
+/yusmallkatakana 16#30E5
+/yusmallkatakanahalfwidth 16#FF6D
+/yuyekorean 16#318B
+/yuyeokorean 16#318A
+/yyabengali 16#09DF
+/yyadeva 16#095F
+/z 16#007A
+/zaarmenian 16#0566
+/zacute 16#017A
+/zadeva 16#095B
+/zagurmukhi 16#0A5B
+/zaharabic 16#0638
+/zahfinalarabic 16#FEC6
+/zahinitialarabic 16#FEC7
+/zahiragana 16#3056
+/zahmedialarabic 16#FEC8
+/zainarabic 16#0632
+/zainfinalarabic 16#FEB0
+/zakatakana 16#30B6
+/zaqefgadolhebrew 16#0595
+/zaqefqatanhebrew 16#0594
+/zarqahebrew 16#0598
+/zayin 16#05D6
+/zayindagesh 16#FB36
+/zayindageshhebrew 16#FB36
+/zayinhebrew 16#05D6
+/zbopomofo 16#3117
+/zcaron 16#017E
+/zcircle 16#24E9
+/zcircumflex 16#1E91
+/zcurl 16#0291
+/zdot 16#017C
+/zdotaccent 16#017C
+/zdotbelow 16#1E93
+/zecyrillic 16#0437
+/zedescendercyrillic 16#0499
+/zedieresiscyrillic 16#04DF
+/zehiragana 16#305C
+/zekatakana 16#30BC
+/zero 16#0030
+/zeroarabic 16#0660
+/zerobengali 16#09E6
+/zerodeva 16#0966
+/zerogujarati 16#0AE6
+/zerogurmukhi 16#0A66
+/zerohackarabic 16#0660
+/zeroinferior 16#2080
+/zeromonospace 16#FF10
+/zerooldstyle 16#F730
+/zeropersian 16#06F0
+/zerosuperior 16#2070
+/zerothai 16#0E50
+/zerowidthjoiner 16#FEFF
+/zerowidthnonjoiner 16#200C
+/zerowidthspace 16#200B
+/zeta 16#03B6
+/zhbopomofo 16#3113
+/zhearmenian 16#056A
+/zhebrevecyrillic 16#04C2
+/zhecyrillic 16#0436
+/zhedescendercyrillic 16#0497
+/zhedieresiscyrillic 16#04DD
+/zihiragana 16#3058
+/zikatakana 16#30B8
+/zinorhebrew 16#05AE
+/zlinebelow 16#1E95
+/zmonospace 16#FF5A
+/zohiragana 16#305E
+/zokatakana 16#30BE
+/zparen 16#24B5
+/zretroflexhook 16#0290
+/zstroke 16#01B6
+/zuhiragana 16#305A
+/zukatakana 16#30BA
+.dicttomark readonly def
+
+/ReverseAdobeGlyphList mark
+  16#F769       [/Ismall]
+  16#263B       [/invsmileface /blacksmilingface]
+  16#FB48       [/reshdageshhebrew]
+  16#A1A        [/cagurmukhi]
+  16#183        [/btopbar]
+  16#F8EC       [/parenleftex]
+  16#3055       [/sahiragana]
+  16#FF27       [/Gmonospace]
+  16#562        [/benarmenian]
+  16#FCCB       [/lamkhahinitialarabic]
+  16#2562       [/SF200000]
+  16#306        [/brevecmb]
+  16#941        [/uvowelsigndeva]
+  16#20AA       [/sheqelhebrew /sheqel /newsheqelsign /afii57636]
+  16#AA         [/ordfeminine]
+  16#FE4E       [/lowlinecenterline]
+  16#1E4E       [/Otildedieresis]
+  16#2489       [/twoperiod]
+  16#AC4        [/rrvocalicvowelsigngujarati]
+  16#60C        [/commaarabic /afii57388]
+  16#3B0        [/upsilondieresistonos]
+  16#9EB        [/fivebengali]
+  16#2154       [/twothirds]
+  16#154        [/Racute]
+  16#3026       [/sixhangzhou]
+  16#278F       [/sixcircleinversesansserif]
+  16#FEF8       [/lamalefhamzaabovefinalarabic]
+  16#1EF8       [/Ytilde]
+  16#533        [/Gimarmenian]
+  16#2D7        [/minusmod]
+  16#912        [/oshortdeva]
+  16#7B         [/braceleft]
+  16#F7E4       [/Adieresissmall]
+  16#1E1F       [/fdotaccent]
+  16#45A        [/njecyrillic /afii10107]
+  16#A95        [/kagujarati]
+  16#1FE        [/Ostrokeacute /Oslashacute]
+  16#30D0       [/bakatakana]
+  16#5DD        [/finalmemhebrew /finalmem /afii57677]
+  16#9BC        [/nuktabengali]
+  16#125        [/hcircumflex]
+  16#F88E       [/maitholowrightthai]
+  16#1EC9       [/ihookabove]
+  16#FC6D       [/behnoonfinalarabic]
+  16#33D6       [/molsquare]
+  16#2A8        [/tccurl]
+  16#317A       [/sioskiyeokkorean]
+  16#4C         [/L]
+  16#42B        [/Yericyrillic /afii10045]
+  16#FB94       [/gafinitialarabic]
+  16#A66        [/zerogurmukhi]
+  16#21CF       [/arrowrightdblstroke]
+  16#1CF        [/Icaron]
+  16#30A1       [/asmallkatakana]
+  16#FF73       [/ukatakanahalfwidth]
+  16#F6DC       [/onefitted]
+  16#E45        [/lakkhangyaothai]
+  16#5AE        [/zinorhebrew]
+  16#3224       [/fiveideographicparen]
+  16#F6         [/odieresis]
+  16#FE9A       [/thehfinalarabic]
+  16#1E9A       [/arighthalfring]
+  16#24D5       [/fcircle]
+  16#4D5        [/aiecyrillic]
+  16#33A7       [/moverssquare]
+  16#279        [/rturned]
+  16#2279       [/notgreaternorless]
+  16#314B       [/khieukhkorean]
+  16#1D         [/controlGS]
+  16#201D       [/quotedblright]
+  16#1A0        [/Ohorn]
+  16#3072       [/hihiragana]
+  16#FF44       [/dmonospace]
+  16#E16        [/thothungthai]
+  16#57F        [/tiwnarmenian]
+  16#323        [/dotbelowcomb /dotbelowcmb]
+  16#95E        [/fadeva]
+  16#C7         [/Ccedilla]
+  16#1E6B       [/tdotaccent]
+  16#FE6B       [/atsmall]
+  16#24A6       [/kparen]
+  16#4A6        [/Pemiddlehookcyrillic]
+  16#311C       [/ebopomofo]
+  16#629        [/tehmarbutaarabic /afii57417]
+  16#3CD        [/upsilontonos]
+  16#FB36       [/zayindageshhebrew /zayindagesh]
+  16#A08        [/iigurmukhi]
+  16#2171       [/tworoman]
+  16#171        [/udblacute /uhungarumlaut]
+  16#3043       [/ismallhiragana]
+  16#FF15       [/fivemonospace]
+  16#2550       [/SF430000]
+  16#550        [/Reharmenian]
+  16#92F        [/yadeva]
+  16#FE3C       [/blacklenticularbracketrightvertical]
+  16#1E3C       [/Lcircumflexbelow]
+  16#477        [/izhitsadblgravecyrillic]
+  16#2477       [/fourparen]
+  16#3349       [/mirisquare]
+  16#AB2        [/lagujarati]
+  16#30ED       [/rokatakana]
+  16#39E        [/Xi]
+  16#3270       [/tikeutacirclekorean]
+  16#142        [/lslash]
+  16#3014       [/tortoiseshellbracketleft]
+  16#FEE6       [/noonfinalarabic]
+  16#1EE6       [/Uhookabove]
+  16#2C5        [/arrowheaddownmod]
+  16#22C5       [/dotmath]
+  16#69         [/i]
+  16#6A4        [/veharabic /afii57505]
+  16#1E0D       [/ddotbelow]
+  16#448        [/shacyrillic /afii10090]
+  16#A83        [/visargagujarati]
+  16#1EC        [/Oogonekmacron]
+  16#30BE       [/zokatakana]
+  16#FF90       [/mikatakanahalfwidth]
+  16#F6F9       [/Lslashsmall]
+  16#25CB       [/whitecircle /circle]
+  16#9AA        [/pabengali]
+  16#2113       [/lsquare /afii61289]
+  16#113        [/emacron]
+  16#FEB7       [/sheeninitialarabic]
+  16#1EB7       [/abrevedotbelow]
+  16#4F2        [/Uhungarumlautcyrillic]
+  16#33C4       [/squarecc]
+  16#2296       [/minuscircle]
+  16#296        [/glottalstopinverted]
+  16#3168       [/nieunpansioskorean]
+  16#203A       [/guilsinglright]
+  16#3A         [/colon]
+  16#419        [/afii10027 /Iishortcyrillic]
+  16#1BD        [/tonefive]
+  16#308F       [/wahiragana]
+  16#FF61       [/periodhalfwidth]
+  16#F6CA       [/Caron]
+  16#E33        [/saraamthai]
+  16#59C        [/gereshaccenthebrew]
+  16#340        [/gravetonecmb]
+  16#3212       [/mieumaparenkorean]
+  16#E4         [/adieresis]
+  16#FE88       [/alefhamzabelowfinalarabic]
+  16#1E88       [/Wdotbelow]
+  16#24C3       [/Ncircle]
+  16#4C3        [/Kahookcyrillic]
+  16#3395       [/mulsquare]
+  16#2267       [/greateroverequal]
+  16#267        [/henghook]
+  16#3139       [/rieulkorean]
+  16#200B       [/zerowidthspace]
+  16#B          [/controlVT]
+  16#F774       [/Tsmall]
+  16#646        [/noonarabic /afii57446]
+  16#3EA        [/Gangiacoptic]
+  16#A25        [/thagurmukhi]
+  16#18E        [/Ereversed]
+  16#F8F7       [/parenrightex]
+  16#3060       [/dahiragana]
+  16#FF32       [/Rmonospace]
+  16#E04        [/khokhwaithai]
+  16#56D        [/xeharmenian]
+  16#311        [/breveinvertedcmb]
+  16#94C        [/auvowelsigndeva]
+  16#B5         [/mu1 /mu]
+  16#6F0        [/zeropersian]
+  16#FE59       [/parenleftsmall]
+  16#1E59       [/rdotaccent]
+  16#2494       [/thirteenperiod]
+  16#494        [/Ghemiddlehookcyrillic]
+  16#310A       [/tbopomofo]
+  16#3BB        [/lambda]
+  16#328D       [/ideographwoodcircle]
+  16#9F6        [/threenumeratorbengali]
+  16#15F        [/scedilla]
+  16#FF03       [/numbersignmonospace]
+  16#53E        [/Caarmenian]
+  16#91D        [/jhadeva]
+  16#2086       [/sixinferior]
+  16#F7EF       [/Idieresissmall]
+  16#6C1        [/haaltonearabic /hehaltonearabic]
+  16#1E2A       [/Hbrevebelow]
+  16#2465       [/sixcircle]
+  16#465        [/eiotifiedcyrillic]
+  16#AA0        [/tthagujarati]
+  16#2209       [/notelementof /notelement]
+  16#209        [/idblgrave]
+  16#30DB       [/hokatakana]
+  16#5E8        [/resh /reshhebrew /afii57688]
+  16#38C        [/Omicrontonos]
+  16#9C7        [/evowelsignbengali]
+  16#130        [/Idotaccent /Idot]
+  16#F899       [/nikhahitleftthai]
+  16#3002       [/ideographicperiod]
+  16#FED4       [/fehmedialarabic]
+  16#1ED4       [/Ocircumflexhookabove]
+  16#3185       [/ssanghieuhkorean]
+  16#57         [/W]
+  16#436        [/zhecyrillic /afii10072]
+  16#FB9F       [/noonghunnafinalarabic]
+  16#A71        [/addakgurmukhi]
+  16#1DA        [/udieresiscaron]
+  16#30AC       [/gakatakana]
+  16#FF7E       [/sekatakanahalfwidth]
+  16#F6E7       [/periodinferior]
+  16#E50        [/zerothai]
+  16#25B9       [/whiterightpointingsmalltriangle]
+  16#5B9        [/holamwidehebrew /holamquarterhebrew /holamnarrowhebrew /holamhebrew /holam32 /holam26 /holam19 /holam /afii57806]
+  16#322F       [/ideographicearthparen]
+  16#998        [/ghabengali]
+  16#101        [/amacron]
+  16#1EA5       [/acircumflexacute]
+  16#24E0       [/qcircle]
+  16#4E0        [/Dzeabkhasiancyrillic]
+  16#33B2       [/mussquare]
+  16#284        [/dotlessjstrokehook]
+  16#2284       [/notsubset]
+  16#3156       [/yekorean]
+  16#28         [/parenleft]
+  16#663        [/threehackarabic /threearabic /afii57395]
+  16#2663       [/clubsuitblack /club]
+  16#407        [/afii10056 /Yicyrillic]
+  16#A42        [/uumatragurmukhi]
+  16#1AB        [/tpalatalhook]
+  16#307D       [/pohiragana]
+  16#FF4F       [/omonospace]
+  16#E21        [/momathai]
+  16#32E        [/brevebelowcmb]
+  16#3200       [/kiyeokparenkorean]
+  16#969        [/threedeva]
+  16#D2         [/Ograve]
+  16#1E76       [/Ucircumflexbelow]
+  16#4B1        [/ustraightstrokecyrillic]
+  16#24B1       [/vparen]
+  16#3383       [/masquare]
+  16#AEC        [/sixgujarati]
+  16#255        [/ccurl]
+  16#3127       [/ibopomofo]
+  16#F762       [/Bsmall]
+  16#634        [/sheenarabic /afii57428]
+  16#FB41       [/samekhdageshhebrew /samekhdagesh]
+  16#A13        [/oogurmukhi]
+  16#17C        [/zdotaccent /zdot]
+  16#F8E5       [/radicalex]
+  16#304E       [/gihiragana]
+  16#FF20       [/atmonospace]
+  16#55B        [/emphasismarkarmenian]
+  16#255B       [/SF280000]
+  16#20A3       [/franc]
+  16#A3         [/sterling]
+  16#1E47       [/ndotbelow]
+  16#482        [/thousandcyrillic]
+  16#2482       [/fifteenparen]
+  16#2226       [/notparallel]
+  16#30F8       [/vikatakana]
+  16#F733       [/threeoldstyle]
+  16#2605       [/blackstar]
+  16#3A9        [/Omegagreek]
+  16#327B       [/hieuhacirclekorean]
+  16#14D        [/omacron]
+  16#1EF1       [/uhorndotbelow]
+  16#252C       [/SF060000]
+  16#2D0        [/colontriangularmod]
+  16#90B        [/rvocalicdeva]
+  16#2074       [/foursuperior]
+  16#74         [/t]
+  16#6AF        [/gafarabic /afii57509]
+  16#1E18       [/Ecircumflexbelow]
+  16#453        [/gjecyrillic /afii10100]
+  16#30C9       [/dokatakana]
+  16#FF9B       [/rokatakanahalfwidth]
+  16#5D6        [/zayinhebrew /zayin /afii57670]
+  16#FD3F       [/parenrightaltonearabic]
+  16#37A        [/ypogegrammeni]
+  16#211E       [/prescription]
+  16#F887       [/saraueleftthai]
+  16#11E        [/Gbreve]
+  16#FEC2       [/tahfinalarabic]
+  16#1EC2       [/Ecircumflexhookabove]
+  16#33CF       [/ktsquare]
+  16#2A1        [/glottalstopstroke]
+  16#3173       [/pieuptikeutkorean]
+  16#45         [/E]
+  16#424        [/afii10038 /Efcyrillic]
+  16#FB8D       [/rrehfinalarabic]
+  16#1C8        [/Lj]
+  16#FF6C       [/yasmallkatakanahalfwidth]
+  16#F6D5       [/cyrflex]
+  16#25A7       [/squareupperlefttolowerrightfill]
+  16#5A7        [/dargalefthebrew /dargahebrew]
+  16#986        [/aabengali]
+  16#EF         [/idieresis]
+  16#1E93       [/zdotbelow]
+  16#24CE       [/Ycircle]
+  16#33A0       [/cmsquaredsquare]
+  16#272        [/nhookleft]
+  16#2272       [/lessorequivalent]
+  16#3144       [/pieupsioskorean]
+  16#16         [/controlSYN]
+  16#2016       [/dblverticalbar]
+  16#651        [/shaddaarabic /afii57457]
+  16#A30        [/ragurmukhi]
+  16#199        [/khook]
+  16#2199       [/arrowdownleft]
+  16#306B       [/nihiragana]
+  16#FF3D       [/bracketrightmonospace]
+  16#E0F        [/topatakthai]
+  16#578        [/voarmenian]
+  16#31C        [/ringhalfleftbelowcmb]
+  16#C0         [/Agrave]
+  16#FE64       [/lesssmall]
+  16#1E64       [/Sacutedotaccent]
+  16#49F        [/kastrokecyrillic]
+  16#249F       [/dparen]
+  16#FC08       [/behmeemisolatedarabic]
+  16#2243       [/asymptoticallyequal]
+  16#3115       [/shbopomofo]
+  16#622        [/afii57410 /alefmaddaabovearabic]
+  16#3C6        [/phi]
+  16#FB2F       [/alefqamatshebrew]
+  16#3298       [/ideographiclaborcircle]
+  16#16A        [/Umacron]
+  16#216A       [/Elevenroman]
+  16#FF0E       [/periodmonospace]
+  16#549        [/Chaarmenian]
+  16#928        [/nadeva]
+  16#F7FA       [/Uacutesmall]
+  16#FE35       [/parenleftvertical]
+  16#1E35       [/klinebelow]
+  16#2470       [/seventeencircle]
+  16#470        [/Psicyrillic]
+  16#3342       [/hoonsquare]
+  16#AAB        [/phagujarati]
+  16#214        [/Udblgrave]
+  16#30E6       [/yukatakana]
+  16#F721       [/exclamsmall]
+  16#5F3        [/gereshhebrew]
+  16#397        [/Eta]
+  16#FB00       [/ff]
+  16#3269       [/chieuchcirclekorean]
+  16#13B        [/Lcommaaccent /Lcedilla]
+  16#300D       [/cornerbracketright]
+  16#1EDF       [/ohornhookabove]
+  16#FEDF       [/laminitialarabic]
+  16#2BE        [/ringhalfright]
+  16#62         [/b]
+  16#1E06       [/Blinebelow]
+  16#441        [/escyrillic /afii10083]
+  16#1E5        [/gstroke]
+  16#21E5       [/arrowtabright]
+  16#30B7       [/sikatakana]
+  16#FF89       [/nokatakanahalfwidth]
+  16#F6F2       [/ssuperior]
+  16#E5B        [/khomutthai]
+  16#5C4        [/upperdothebrew]
+  16#25C4       [/triaglf /blackleftpointingpointer]
+  16#323A       [/ideographiccallparen]
+  16#9A3        [/nnabengali]
+  16#10C        [/Ccaron]
+  16#FEB0       [/zainfinalarabic]
+  16#1EB0       [/Abrevegrave]
+  16#4EB        [/obarreddieresiscyrillic]
+  16#33BD       [/mwsquare]
+  16#3161       [/eukorean]
+  16#2033       [/second]
+  16#33         [/three]
+  16#412        [/afii10019 /Vecyrillic]
+  16#FB7B       [/tchehfinalarabic]
+  16#A4D        [/halantgurmukhi]
+  16#1B6        [/zstroke]
+  16#3088       [/yohiragana]
+  16#FF5A       [/zmonospace]
+  16#F6C3       [/commaaccent]
+  16#E2C        [/lochulathai]
+  16#595        [/zaqefgadolhebrew]
+  16#339        [/ringhalfrightbelowcmb]
+  16#320B       [/thieuthparenkorean]
+  16#DD         [/Yacute]
+  16#1E81       [/wgrave]
+  16#24BC       [/Gcircle]
+  16#4BC        [/Cheabkhasiancyrillic]
+  16#338E       [/squaremg]
+  16#260        [/ghook]
+  16#2260       [/notequal]
+  16#3132       [/ssangkiyeokkorean]
+  16#4          [/controlEOT]
+  16#F76D       [/Msmall]
+  16#3E3        [/sheicoptic]
+  16#FB4C       [/betrafehebrew]
+  16#A1E        [/nyagurmukhi]
+  16#187        [/Chook]
+  16#F8F0       [/bracketleftbt]
+  16#3059       [/suhiragana]
+  16#FF2B       [/Kmonospace]
+  16#566        [/zaarmenian]
+  16#2566       [/SF410000]
+  16#30A        [/ringcmb]
+  16#945        [/ecandravowelsigndeva]
+  16#AE         [/registered]
+  16#FE52       [/periodsmall]
+  16#1E52       [/Omacronacute]
+  16#248D       [/sixperiod]
+  16#AC8        [/aivowelsigngujarati]
+  16#3B4        [/delta]
+  16#9EF        [/ninebengali]
+  16#158        [/Rcaron]
+  16#FEFC       [/lamaleffinalarabic]
+  16#537        [/Eharmenian]
+  16#22DB       [/greaterequalorless]
+  16#2DB        [/ogonek]
+  16#916        [/khadeva]
+  16#207F       [/nsuperior]
+  16#7F         [/controlDEL]
+  16#F7E8       [/Egravesmall]
+  16#6BA        [/noonghunnaarabic /afii57514]
+  16#1E23       [/hdotaccent]
+  16#45E        [/ushortcyrillic /afii10110]
+  16#A99        [/ngagujarati]
+  16#202        [/Ainvertedbreve]
+  16#2202       [/partialdiff]
+  16#30D4       [/pikatakana]
+  16#5E1        [/samekhhebrew /samekh /afii57681]
+  16#385        [/dialytikatonos /dieresistonos]
+  16#9C0        [/iivowelsignbengali]
+  16#129        [/itilde]
+  16#F892       [/maitrilowleftthai]
+  16#1ECD       [/odotbelow]
+  16#317E       [/sioscieuckorean]
+  16#50         [/P]
+  16#42F        [/afii10049 /IAcyrillic]
+  16#A6A        [/fourgurmukhi]
+  16#1D3        [/Ucaron]
+  16#21D3       [/arrowdbldown]
+  16#30A5       [/usmallkatakana]
+  16#FF77       [/kikatakanahalfwidth]
+  16#F6E0       [/centsuperior]
+  16#E49        [/maithothai]
+  16#25B2       [/triagup /blackuppointingtriangle]
+  16#5B2        [/hatafpatahquarterhebrew /hatafpatahnarrowhebrew /hatafpatahhebrew /hatafpatah2f /hatafpatah23 /hatafpatah16 /hatafpatah /hatafpatahwidehebrew /afii57800]
+  16#3228       [/nineideographicparen]
+  16#FA         [/uacute]
+  16#FE9E       [/jeemfinalarabic]
+  16#4D9        [/schwacyrillic /afii10846]
+  16#24D9       [/jcircle]
+  16#33AB       [/mpasquare]
+  16#27D        [/rhook]
+  16#314F       [/akorean]
+  16#2021       [/daggerdbl]
+  16#21         [/exclam]
+  16#FB69       [/ttehmedialarabic]
+  16#1A4        [/Phook]
+  16#3076       [/buhiragana]
+  16#FF48       [/hmonospace]
+  16#E1A        [/bobaimaithai]
+  16#583        [/piwrarmenian]
+  16#327        [/cedillacmb]
+  16#2327       [/clear]
+  16#962        [/lvocalicvowelsigndeva]
+  16#CB         [/Edieresis]
+  16#1E6F       [/tlinebelow]
+  16#24AA       [/oparen]
+  16#4AA        [/Esdescendercyrillic]
+  16#337C       [/syouwaerasquare]
+  16#3120       [/aubopomofo]
+  16#62D        [/haharabic /afii57421]
+  16#3D1        [/thetasymbolgreek /theta1]
+  16#FB3A       [/finalkafdageshhebrew /finalkafdagesh]
+  16#32A3       [/ideographiccorrectcircle]
+  16#175        [/wcircumflex]
+  16#2175       [/sixroman]
+  16#3047       [/esmallhiragana]
+  16#FF19       [/ninemonospace]
+  16#554        [/Keharmenian]
+  16#2554       [/SF390000]
+  16#933        [/lladeva]
+  16#FE40       [/anglebracketrightvertical]
+  16#1E40       [/Mdotaccent]
+  16#47B        [/omegaroundcyrillic]
+  16#247B       [/eightparen]
+  16#334D       [/meetorusquare]
+  16#AB6        [/shagujarati]
+  16#221F       [/rightangle /orthogonal]
+  16#30F1       [/wekatakana]
+  16#3274       [/siosacirclekorean]
+  16#9DD        [/rhabengali]
+  16#146        [/ncommaaccent /ncedilla]
+  16#3018       [/whitetortoiseshellbracketleft]
+  16#FEEA       [/hehfinalarabic /hehfinalalttwoarabic]
+  16#1EEA       [/Uhorngrave]
+  16#2C9        [/firsttonechinese]
+  16#6D         [/m]
+  16#1E11       [/dcedilla]
+  16#44C        [/softsigncyrillic /afii10094]
+  16#331E       [/kooposquare]
+  16#A87        [/igujarati]
+  16#1F0        [/jcaron]
+  16#30C2       [/dikatakana]
+  16#FF94       [/yakatakanahalfwidth]
+  16#F6FD       [/Scaronsmall]
+  16#25CF       [/blackcircle /H18533]
+  16#9AE        [/mabengali]
+  16#117        [/edotaccent /edot]
+  16#FEBB       [/sadinitialarabic]
+  16#1EBB       [/ehookabove]
+  16#FC5F       [/shaddakasratanarabic]
+  16#33C8       [/dbsquare]
+  16#29A        [/eopenclosed]
+  16#316C       [/rieulpansioskorean]
+  16#203E       [/overline]
+  16#3E         [/greater]
+  16#679        [/tteharabic /afii57511]
+  16#41D        [/afii10031 /Encyrillic]
+  16#1C1        [/clicklateral]
+  16#3093       [/nhiragana]
+  16#FF65       [/middledotkatakanahalfwidth]
+  16#F6CE       [/Grave]
+  16#E37        [/saraueethai]
+  16#5A0        [/telishagedolahebrew]
+  16#25A0       [/blacksquare /filledbox]
+  16#344        [/dialytikatonoscmb]
+  16#3216       [/cieucaparenkorean]
+  16#E8         [/egrave]
+  16#FE8C       [/yehhamzaabovemedialarabic]
+  16#1E8C       [/Xdieresis]
+  16#24C7       [/Rcircle]
+  16#4C7        [/Enhookcyrillic]
+  16#3399       [/fmsquare]
+  16#226B       [/muchgreater]
+  16#26B        [/lmiddletilde]
+  16#313D       [/rieulsioskorean]
+  16#F          [/controlSI]
+  16#200F       [/afii300]
+  16#F778       [/Xsmall]
+  16#64A        [/yeharabic /afii57450]
+  16#3EE        [/Deicoptic]
+  16#FB57       [/pehfinalarabic]
+  16#192        [/florin]
+  16#F8FB       [/bracketrightbt]
+  16#3064       [/tuhiragana]
+  16#2192       [/arrowright]
+  16#FF36       [/Vmonospace]
+  16#E08        [/chochanthai]
+  16#571        [/jaarmenian]
+  16#315        [/commaaboverightcmb]
+  16#950        [/omdeva]
+  16#B9         [/onesuperior]
+  16#6F4        [/fourpersian]
+  16#FE5D       [/tortoiseshellbracketleftsmall]
+  16#1E5D       [/rdotbelowmacron]
+  16#2498       [/seventeenperiod]
+  16#498        [/Zedescendercyrillic]
+  16#223C       [/tildeoperator /similar]
+  16#310E       [/kbopomofo]
+  16#FFE0       [/centmonospace]
+  16#61B        [/semicolonarabic /afii57403]
+  16#3BF        [/omicron]
+  16#9FA        [/issharbengali]
+  16#163        [/tcedilla /tcommaaccent]
+  16#2163       [/Fourroman]
+  16#279E       [/arrowrightheavy]
+  16#FF07       [/quotesinglemonospace]
+  16#542        [/Ghadarmenian]
+  16#2E6        [/tonebarhighmod]
+  16#921        [/ddadeva]
+  16#F7F3       [/Oacutesmall]
+  16#1E2E       [/Idieresisacute]
+  16#469        [/yuslittleiotifiedcyrillic]
+  16#2469       [/tencircle]
+  16#333B       [/peezisquare]
+  16#AA4        [/tagujarati]
+  16#20D        [/odblgrave]
+  16#30DF       [/mikatakana]
+  16#390        [/iotadieresistonos]
+  16#3262       [/tikeutcirclekorean]
+  16#9CB        [/ovowelsignbengali]
+  16#134        [/Jcircumflex]
+  16#3006       [/ideographicclose]
+  16#FED8       [/qafmedialarabic]
+  16#1ED8       [/Ocircumflexdotbelow]
+  16#2B7        [/wsuperior]
+  16#3189       [/yoikorean]
+  16#5B         [/bracketleft]
+  16#43A        [/kacyrillic /afii10076]
+  16#21DE       [/pageup]
+  16#1DE        [/Adieresismacron]
+  16#30B0       [/gukatakana]
+  16#FF82       [/tukatakanahalfwidth]
+  16#F6EB       [/dsuperior]
+  16#E54        [/fourthai]
+  16#25BD       [/whitedownpointingtriangle]
+  16#5BD        [/siluqlefthebrew /siluqhebrew /afii57839]
+  16#361        [/breveinverteddoublecmb]
+  16#3233       [/ideographicsocietyparen]
+  16#99C        [/jabengali]
+  16#2105       [/careof /afii61248]
+  16#105        [/aogonek]
+  16#1EA9       [/acircumflexhookabove]
+  16#24E4       [/ucircle]
+  16#4E4        [/Idieresiscyrillic]
+  16#33B6       [/muvsquare]
+  16#288        [/tretroflexhook]
+  16#315A       [/oekorean]
+  16#202C       [/afii61573]
+  16#2C         [/comma]
+  16#667        [/sevenhackarabic /sevenarabic /afii57399]
+  16#2667       [/clubsuitwhite]
+  16#40B        [/afii10060 /Tshecyrillic]
+  16#1AF        [/Uhorn]
+  16#3081       [/mehiragana]
+  16#FF53       [/smonospace]
+  16#E25        [/lolingthai]
+  16#332        [/lowlinecmb]
+  16#3204       [/mieumparenkorean]
+  16#96D        [/sevendeva]
+  16#D6         [/Odieresis]
+  16#1E7A       [/Umacrondieresis]
+  16#24B5       [/zparen]
+  16#4B5        [/tetsecyrillic]
+  16#3387       [/GBsquare]
+  16#259        [/schwa]
+  16#F766       [/Fsmall]
+  16#638        [/zaharabic /afii57432]
+  16#3DC        [/Digammagreek]
+  16#A17        [/gagurmukhi]
+  16#180        [/bstroke]
+  16#F8E9       [/copyrightsans]
+  16#3052       [/gehiragana]
+  16#FF24       [/Dmonospace]
+  16#55F        [/abbreviationmarkarmenian]
+  16#255F       [/SF370000]
+  16#303        [/tildecomb /tildecmb]
+  16#2303       [/control]
+  16#93E        [/aavowelsigndeva]
+  16#20A7       [/peseta]
+  16#A7         [/section]
+  16#FE4B       [/overlinewavy]
+  16#1E4B       [/ncircumflexbelow]
+  16#486        [/psilipneumatacyrilliccmb]
+  16#2486       [/nineteenparen]
+  16#AC1        [/uvowelsigngujarati]
+  16#222A       [/union]
+  16#30FC       [/prolongedkana]
+  16#F737       [/sevenoldstyle]
+  16#3AD        [/epsilontonos]
+  16#327F       [/koreanstandardsymbol]
+  16#9E8        [/twobengali]
+  16#151        [/odblacute /ohungarumlaut]
+  16#3023       [/threehangzhou]
+  16#278C       [/threecircleinversesansserif]
+  16#1EF5       [/ydotbelow]
+  16#FEF5       [/lamalefmaddaaboveisolatedarabic]
+  16#2D4        [/uptackmod]
+  16#90F        [/edeva]
+  16#2078       [/eightsuperior]
+  16#F7E1       [/Aacutesmall]
+  16#78         [/x]
+  16#1E1C       [/Ecedillabreve]
+  16#457        [/yicyrillic /afii10104]
+  16#1FB        [/aringacute]
+  16#30CD       [/nekatakana]
+  16#FF9F       [/semivoicedmarkkanahalfwidth]
+  16#5DA        [/finalkafhebrew /finalkaf /afii57674]
+  16#37E        [/questiongreek]
+  16#9B9        [/habengali]
+  16#2122       [/trademark]
+  16#F88B       [/maieklowrightthai]
+  16#122        [/Gcommaaccent /Gcedilla]
+  16#FEC6       [/zahfinalarabic]
+  16#1EC6       [/Ecircumflexdotbelow]
+  16#33D3       [/lxsquare]
+  16#2A5        [/dzcurl]
+  16#22A5       [/perpendicular]
+  16#3177       [/pieupthieuthkorean]
+  16#49         [/I]
+  16#428        [/afii10042 /Shacyrillic]
+  16#1CC        [/nj]
+  16#309E       [/voicediterationhiragana]
+  16#FF70       [/katahiraprolongmarkhalfwidth]
+  16#F6D9       [/copyrightserif]
+  16#E42        [/saraothai]
+  16#25AB       [/whitesmallsquare /H18551]
+  16#5AB        [/olehebrew]
+  16#3221       [/twoideographicparen]
+  16#98A        [/uubengali]
+  16#F3         [/oacute]
+  16#FE97       [/tehinitialarabic]
+  16#1E97       [/tdieresis]
+  16#24D2       [/ccircle]
+  16#4D2        [/Adieresiscyrillic]
+  16#33A4       [/cmcubedsquare]
+  16#2276       [/lessorgreater]
+  16#3148       [/cieuckorean]
+  16#1A         [/controlSUB]
+  16#201A       [/quotesinglbase]
+  16#19D        [/Nhookleft]
+  16#306F       [/hahiragana]
+  16#FF41       [/amonospace]
+  16#E13        [/nonenthai]
+  16#57C        [/raarmenian]
+  16#320        [/minusbelowcmb]
+  16#2320       [/integraltop /integraltp]
+  16#95B        [/zadeva]
+  16#C4         [/Adieresis]
+  16#1E68       [/Sdotbelowdotaccent]
+  16#24A3       [/hparen]
+  16#FC0C       [/tehhahisolatedarabic]
+  16#4A3        [/endescendercyrillic]
+  16#3119       [/sbopomofo]
+  16#626        [/yehhamzaabovearabic /afii57414]
+  16#3CA        [/iotadieresis]
+  16#FB33       [/daletdageshhebrew /daletdagesh]
+  16#A05        [/agurmukhi]
+  16#16E        [/Uring]
+  16#FF12       [/twomonospace]
+  16#54D        [/Seharmenian]
+  16#92C        [/badeva]
+  16#F7FE       [/Thornsmall]
+  16#FE39       [/tortoiseshellbracketleftvertical]
+  16#1E39       [/ldotbelowmacron]
+  16#2474       [/oneparen]
+  16#474        [/afii10148 /Izhitsacyrillic]
+  16#AAF        [/yagujarati]
+  16#218        [/Scommaaccent]
+  16#30EA       [/rikatakana]
+  16#39B        [/Lambda]
+  16#FB04       [/ffl]
+  16#326D       [/hieuhcirclekorean]
+  16#13F        [/Ldotaccent /Ldot]
+  16#3011       [/blacklenticularbracketright]
+  16#1EE3       [/ohorndotbelow]
+  16#FEE3       [/meeminitialarabic]
+  16#2C2        [/arrowheadleftmod]
+  16#66         [/f]
+  16#1E0A       [/Ddotaccent]
+  16#445        [/khacyrillic /afii10087]
+  16#1E9        [/kcaron]
+  16#21E9       [/arrowdownwhite]
+  16#30BB       [/sekatakana]
+  16#FF8D       [/hekatakanahalfwidth]
+  16#F6F6       [/Circumflexsmall]
+  16#25C8       [/whitediamondcontainingblacksmalldiamond]
+  16#323E       [/ideographicresourceparen]
+  16#9A7        [/dhabengali]
+  16#110        [/Dslash /Dcroat]
+  16#FEB4       [/seenmedialarabic]
+  16#1EB4       [/Abrevetilde]
+  16#4EF        [/umacroncyrillic]
+  16#FC58       [/yehmeemisolatedarabic]
+  16#33C1       [/mohmsquare]
+  16#293        [/ezhcurl]
+  16#3165       [/ssangnieunkorean]
+  16#37         [/seven]
+  16#416        [/Zhecyrillic /afii10024]
+  16#1BA        [/ezhtail]
+  16#308C       [/rehiragana]
+  16#FF5E       [/asciitildemonospace]
+  16#F6C7       [/afii10831]
+  16#E30        [/saraathai]
+  16#599        [/pashtahebrew]
+  16#33D        [/xabovecmb]
+  16#320F       [/nieunaparenkorean]
+  16#E1         [/aacute]
+  16#1E85       [/wdieresis]
+  16#4C0        [/palochkacyrillic]
+  16#24C0       [/Kcircle]
+  16#3392       [/mhzsquare]
+  16#264        [/ramshorn]
+  16#2264       [/lessequal]
+  16#3136       [/nieunhieuhkorean]
+  16#8          [/controlBS]
+  16#F771       [/Qsmall]
+  16#643        [/kafarabic /afii57443]
+  16#3E7        [/kheicoptic]
+  16#A22        [/ddhagurmukhi]
+  16#18B        [/Dtopbar]
+  16#F8F4       [/braceex]
+  16#305D       [/sohiragana]
+  16#FF2F       [/Omonospace]
+  16#E01        [/kokaithai]
+  16#56A        [/zhearmenian]
+  16#256A       [/SF540000]
+  16#30E        [/dblverticallineabovecmb]
+  16#949        [/ocandravowelsigndeva]
+  16#B2         [/twosuperior]
+  16#1E56       [/Pdotaccent]
+  16#2491       [/tenperiod]
+  16#491        [/gheupturncyrillic /afii10098]
+  16#ACC        [/auvowelsigngujarati]
+  16#2235       [/because]
+  16#3107       [/mbopomofo]
+  16#3B8        [/theta]
+  16#328A       [/ideographmooncircle]
+  16#9F3        [/rupeesignbengali]
+  16#215C       [/threeeighths]
+  16#15C        [/Scircumflex]
+  16#53B        [/Iniarmenian]
+  16#FCA4       [/tehmeeminitialarabic]
+  16#91A        [/cadeva]
+  16#2083       [/threeinferior]
+  16#F7EC       [/Igravesmall]
+  16#1E27       [/hdieresis]
+  16#2462       [/threecircle]
+  16#462        [/afii10146 /Yatcyrillic]
+  16#A9D        [/jhagujarati]
+  16#2206       [/increment /Delta]
+  16#206        [/Einvertedbreve]
+  16#30D8       [/hekatakana]
+  16#5E5        [/finaltsadihebrew /finaltsadi /afii57685]
+  16#25E5       [/blackupperrighttriangle]
+  16#389        [/Etatonos]
+  16#9C4        [/rrvocalicvowelsignbengali]
+  16#12D        [/ibreve]
+  16#F896       [/thanthakhatupperleftthai]
+  16#1ED1       [/ocircumflexacute]
+  16#250C       [/SF010000]
+  16#2B0        [/hsuperior]
+  16#3182       [/yesieungsioskorean]
+  16#54         [/T]
+  16#433        [/gecyrillic /afii10068]
+  16#3305       [/intisquare]
+  16#A6E        [/eightgurmukhi]
+  16#1D7        [/Udieresisacute]
+  16#30A9       [/osmallkatakana]
+  16#FF7B       [/sakatakanahalfwidth]
+  16#F6E4       [/dollarsuperior]
+  16#E4D        [/nikhahitthai]
+  16#5B6        [/segolwidehebrew /segolquarterhebrew /segolnarrowhebrew /segolhebrew /segol2c /segol1f /segol13 /segol /afii57795]
+  16#25B6       [/blackrightpointingtriangle]
+  16#322C       [/ideographicwaterparen]
+  16#995        [/kabengali]
+  16#FE         [/thorn]
+  16#FEA2       [/hahfinalarabic]
+  16#1EA2       [/Ahookabove]
+  16#4DD        [/zhedieresiscyrillic]
+  16#24DD       [/ncircle]
+  16#33AF       [/radoverssquaredsquare]
+  16#2281       [/notsucceeds]
+  16#281        [/Rsmallinverted]
+  16#3153       [/eokorean]
+  16#2025       [/twodotleader /twodotenleader]
+  16#25         [/percent]
+  16#660        [/zerohackarabic /zeroarabic /afii57392]
+  16#2660       [/spadesuitblack /spade]
+  16#404        [/afii10053 /Ecyrillic]
+  16#FB6D       [/vehmedialarabic]
+  16#A3F        [/imatragurmukhi]
+  16#1A8        [/tonetwo]
+  16#21A8       [/arrowupdownbase /arrowupdnbse]
+  16#307A       [/pehiragana]
+  16#FF4C       [/lmonospace]
+  16#E1E        [/phophanthai]
+  16#587        [/echyiwnarmenian]
+  16#32B        [/dblarchinvertedbelowcmb]
+  16#232B       [/deleteleft]
+  16#966        [/zerodeva]
+  16#CF         [/Idieresis]
+  16#1E73       [/udieresisbelow]
+  16#24AE       [/sparen]
+  16#4AE        [/Ustraightcyrillic]
+  16#3380       [/paampssquare]
+  16#AE9        [/threegujarati]
+  16#252        [/ascriptturned]
+  16#2252       [/approxequalorimage]
+  16#3124       [/angbopomofo]
+  16#631        [/reharabic /afii57425]
+  16#3D5        [/phisymbolgreek /phi1]
+  16#FB3E       [/memdageshhebrew /memdagesh]
+  16#32A7       [/ideographicleftcircle]
+  16#A10        [/aigurmukhi]
+  16#2179       [/tenroman]
+  16#179        [/Zacute]
+  16#304B       [/kahiragana]
+  16#FF1D       [/equalmonospace]
+  16#2558       [/SF500000]
+  16#937        [/ssadeva]
+  16#A0         [/nonbreakingspace /nbspace]
+  16#FE44       [/whitecornerbracketrightvertical]
+  16#1E44       [/Ndotaccent]
+  16#247F       [/twelveparen]
+  16#47F        [/otcyrillic]
+  16#3351       [/rittorusquare]
+  16#2223       [/divides]
+  16#30F5       [/kasmallkatakana]
+  16#F730       [/zerooldstyle]
+  16#3A6        [/Phi]
+  16#3278       [/khieukhacirclekorean]
+  16#9E1        [/llvocalicbengali]
+  16#14A        [/Eng]
+  16#301C       [/wavedash]
+  16#FEEE       [/wawfinalarabic]
+  16#1EEE       [/Uhorntilde]
+  16#2CD        [/macronlowmod]
+  16#908        [/iideva]
+  16#71         [/q]
+  16#1E15       [/emacrongrave]
+  16#3322       [/sentisquare]
+  16#A8B        [/rvocalicgujarati]
+  16#1F4        [/Gacute]
+  16#30C6       [/tekatakana]
+  16#FF98       [/rikatakanahalfwidth]
+  16#5D3        [/dalethebrew /dalet /afii57667]
+  16#9B2        [/labengali]
+  16#11B        [/ecaron]
+  16#F884       [/maihanakatleftthai]
+  16#1EBF       [/ecircumflexacute]
+  16#FEBF       [/dadinitialarabic]
+  16#29E        [/kturned]
+  16#3170       [/mieumpansioskorean]
+  16#2042       [/asterism]
+  16#42         [/B]
+  16#421        [/afii10035 /Escyrillic]
+  16#A5C        [/rragurmukhi]
+  16#21C5       [/arrowupleftofdown]
+  16#1C5        [/Dzcaron]
+  16#FF69       [/usmallkatakanahalfwidth]
+  16#F6D2       [/cyrFlex]
+  16#25A4       [/squarehorizontalfill]
+  16#5A4        [/mahapakhlefthebrew /mahapakhhebrew]
+  16#321A       [/phieuphaparenkorean]
+  16#983        [/visargabengali]
+  16#EC         [/igrave]
+  16#FE90       [/behfinalarabic]
+  16#1E90       [/Zcircumflex]
+  16#24CB       [/Vcircle]
+  16#4CB        [/Chekhakassiancyrillic]
+  16#339D       [/squarecm]
+  16#26F        [/mturned]
+  16#226F       [/notgreater]
+  16#3141       [/mieumkorean]
+  16#13         [/controlDC3]
+  16#2013       [/endash]
+  16#64E        [/fathalowarabic /fathaarabic /afii57454]
+  16#3F2        [/sigmalunatesymbolgreek]
+  16#A2D        [/bhagurmukhi]
+  16#2196       [/arrowupleft]
+  16#F8FF       [/apple]
+  16#3068       [/tohiragana]
+  16#196        [/Iotaafrican]
+  16#FF3A       [/Zmonospace]
+  16#E0C        [/chochoethai]
+  16#575        [/yiarmenian]
+  16#319        [/righttackbelowcmb]
+  16#954        [/acutedeva]
+  16#BD         [/onehalf]
+  16#6F8        [/eightpersian]
+  16#1E61       [/sdotaccent]
+  16#FE61       [/asterisksmall]
+  16#249C       [/aparen]
+  16#49C        [/Kaverticalstrokecyrillic]
+  16#3112       [/xbopomofo]
+  16#261F       [/pointingindexdownwhite]
+  16#61F        [/questionarabic /afii57407]
+  16#FD88       [/lammeemhahinitialarabic]
+  16#3C3        [/sigma]
+  16#FB2C       [/shindageshshindothebrew /shindageshshindot]
+  16#167        [/tbar]
+  16#2167       [/Eightroman]
+  16#FF0B       [/plusmonospace]
+  16#546        [/Nowarmenian]
+  16#925        [/thadeva]
+  16#208E       [/parenrightinferior]
+  16#FE32       [/endashvertical]
+  16#1E32       [/Kdotbelow]
+  16#46D        [/yusbigiotifiedcyrillic]
+  16#246D       [/fourteencircle]
+  16#AA8        [/nagujarati]
+  16#211        [/rdblgrave]
+  16#2211       [/summation]
+  16#30E3       [/yasmallkatakana]
+  16#5F0        [/vavvavhebrew /afii57716]
+  16#394        [/Deltagreek]
+  16#3266       [/sioscirclekorean]
+  16#138        [/kgreenlandic]
+  16#300A       [/dblanglebracketleft]
+  16#FEDC       [/kafmedialarabic]
+  16#1EDC       [/Ohorngrave]
+  16#2BB        [/commaturnedmod]
+  16#318D       [/araeakorean]
+  16#5F         [/underscore]
+  16#1E03       [/bdotaccent]
+  16#43E        [/ocyrillic /afii10080]
+  16#FBA7       [/hehfinalaltonearabic]
+  16#21E2       [/arrowdashright]
+  16#1E2        [/AEmacron]
+  16#30B4       [/gokatakana]
+  16#FF86       [/nikatakanahalfwidth]
+  16#F6EF       [/msuperior]
+  16#E58        [/eightthai]
+  16#25C1       [/whiteleftpointingtriangle]
+  16#5C1        [/shindothebrew /afii57804]
+  16#3237       [/ideographiccongratulationparen]
+  16#9A0        [/tthabengali]
+  16#2109       [/fahrenheit]
+  16#109        [/ccircumflex]
+  16#1EAD       [/acircumflexdotbelow]
+  16#24E8       [/ycircle]
+  16#4E8        [/Obarredcyrillic]
+  16#33BA       [/pwsquare]
+  16#28C        [/vturned]
+  16#315E       [/wekorean]
+  16#2030       [/perthousand]
+  16#30         [/zero]
+  16#266B       [/musicalnotedbl /eighthnotebeamed]
+  16#66B        [/decimalseparatorpersian /decimalseparatorarabic]
+  16#40F        [/afii10145 /Dzhecyrillic]
+  16#1B3        [/Yhook]
+  16#3085       [/yusmallhiragana]
+  16#FF57       [/wmonospace]
+  16#F6C0       [/ll]
+  16#E29        [/sorusithai]
+  16#2592       [/shademedium /shade]
+  16#592        [/segoltahebrew]
+  16#336        [/strokelongoverlaycmb]
+  16#3208       [/cieucparenkorean]
+  16#DA         [/Uacute]
+  16#1E7E       [/Vdotbelow]
+  16#4B9        [/cheverticalstrokecyrillic]
+  16#24B9       [/Dcircle]
+  16#338B       [/nfsquare]
+  16#25D        [/eopenreversedhook]
+  16#1          [/controlSTX]
+  16#F76A       [/Jsmall]
+  16#263C       [/sun /compass]
+  16#3E0        [/Sampigreek]
+  16#FB49       [/shindageshhebrew /shindagesh]
+  16#A1B        [/chagurmukhi]
+  16#184        [/Tonesix]
+  16#F8ED       [/parenleftbt]
+  16#3056       [/zahiragana]
+  16#FF28       [/Hmonospace]
+  16#563        [/gimarmenian]
+  16#FCCC       [/lammeeminitialarabic]
+  16#2563       [/SF230000]
+  16#307        [/dotaccentcmb]
+  16#942        [/uuvowelsigndeva]
+  16#20AB       [/dong]
+  16#AB         [/guillemotleft]
+  16#FE4F       [/underscorewavy]
+  16#1E4F       [/otildedieresis]
+  16#248A       [/threeperiod]
+  16#AC5        [/ecandravowelsigngujarati]
+  16#222E       [/contourintegral]
+  16#3B1        [/alpha]
+  16#9EC        [/sixbengali]
+  16#155        [/racute]
+  16#3027       [/sevenhangzhou]
+  16#2790       [/sevencircleinversesansserif]
+  16#1EF9       [/ytilde]
+  16#FEF9       [/lamalefhamzabelowisolatedarabic]
+  16#2534       [/SF070000]
+  16#534        [/Daarmenian]
+  16#2D8        [/breve]
+  16#913        [/odeva]
+  16#7C         [/verticalbar /bar]
+  16#207C       [/equalsuperior]
+  16#F7E5       [/Aringsmall]
+  16#1E20       [/Gmacron]
+  16#45B        [/tshecyrillic /afii10108]
+  16#A96        [/khagujarati]
+  16#1FF        [/ostrokeacute /oslashacute]
+  16#30D1       [/pakatakana]
+  16#5DE        [/memhebrew /mem /afii57678]
+  16#2126       [/Ohm /Omega]
+  16#F88F       [/maitholowleftthai]
+  16#126        [/Hbar]
+  16#FECA       [/ainfinalarabic]
+  16#1ECA       [/Idotbelow]
+  16#317B       [/siosnieunkorean]
+  16#4D         [/M]
+  16#688        [/ddalarabic /afii57512]
+  16#42C        [/afii10046 /Softsigncyrillic]
+  16#FB95       [/gafmedialarabic]
+  16#A67        [/onegurmukhi]
+  16#1D0        [/icaron]
+  16#21D0       [/arrowleftdbl /arrowdblleft]
+  16#30A2       [/akatakana]
+  16#FF74       [/ekatakanahalfwidth]
+  16#F6DD       [/rupiah]
+  16#E46        [/maiyamokthai]
+  16#5AF        [/masoracirclehebrew]
+  16#3225       [/sixideographicparen]
+  16#F7         [/divide]
+  16#FE9B       [/thehinitialarabic]
+  16#1E9B       [/slongdotaccent]
+  16#24D6       [/gcircle]
+  16#4D6        [/Iebrevecyrillic]
+  16#33A8       [/moverssquaredsquare]
+  16#227A       [/precedes]
+  16#27A        [/rlonglegturned]
+  16#314C       [/thieuthkorean]
+  16#1E         [/controlRS]
+  16#201E       [/quotedblbase]
+  16#A38        [/sagurmukhi]
+  16#1A1        [/ohorn]
+  16#3073       [/bihiragana]
+  16#FF45       [/emonospace]
+  16#E17        [/thothahanthai]
+  16#2580       [/upblock]
+  16#580        [/reharmenian]
+  16#324        [/dieresisbelowcmb]
+  16#95F        [/yyadeva]
+  16#C8         [/Egrave]
+  16#1E6C       [/Tdotbelow]
+  16#4A7        [/pemiddlehookcyrillic]
+  16#24A7       [/lparen]
+  16#311D       [/ehbopomofo]
+  16#62A        [/teharabic /afii57418]
+  16#3CE        [/omegatonos]
+  16#A09        [/ugurmukhi]
+  16#2172       [/threeroman]
+  16#172        [/Uogonek]
+  16#3044       [/ihiragana]
+  16#FF16       [/sixmonospace]
+  16#2551       [/SF240000]
+  16#551        [/Coarmenian]
+  16#930        [/radeva]
+  16#1E3D       [/lcircumflexbelow]
+  16#FE3D       [/dblanglebracketleftvertical]
+  16#2478       [/fiveparen]
+  16#478        [/Ukcyrillic]
+  16#334A       [/miribaarusquare]
+  16#AB3        [/llagujarati]
+  16#30EE       [/wasmallkatakana]
+  16#39F        [/Omicron]
+  16#3271       [/rieulacirclekorean]
+  16#143        [/Nacute]
+  16#3015       [/tortoiseshellbracketright]
+  16#1EE7       [/uhookabove]
+  16#FEE7       [/nooninitialarabic]
+  16#2C6        [/circumflex]
+  16#901        [/candrabindudeva]
+  16#6A         [/j]
+  16#1E0E       [/Dlinebelow]
+  16#449        [/shchacyrillic /afii10091]
+  16#1ED        [/oogonekmacron]
+  16#30BF       [/takatakana]
+  16#FF91       [/mukatakanahalfwidth]
+  16#F6FA       [/OEsmall]
+  16#25CC       [/dottedcircle]
+  16#3242       [/ideographicselfparen]
+  16#9AB        [/phabengali]
+  16#114        [/Ebreve]
+  16#FEB8       [/sheenmedialarabic]
+  16#1EB8       [/Edotbelow]
+  16#4F3        [/uhungarumlautcyrillic]
+  16#33C5       [/cdsquare]
+  16#2297       [/timescircle /circlemultiply]
+  16#297        [/cstretched]
+  16#3169       [/rieulkiyeoksioskorean]
+  16#203B       [/referencemark]
+  16#3B         [/semicolon]
+  16#41A        [/afii10028 /Kacyrillic]
+  16#1BE        [/glottalinvertedstroke]
+  16#3090       [/wihiragana]
+  16#FF62       [/cornerbracketlefthalfwidth]
+  16#F6CB       [/Dieresis]
+  16#E34        [/saraithai]
+  16#59D        [/gereshmuqdamhebrew]
+  16#341        [/acutetonecmb]
+  16#3213       [/pieupaparenkorean]
+  16#E5         [/aring]
+  16#1E89       [/wdotbelow]
+  16#4C4        [/kahookcyrillic]
+  16#24C4       [/Ocircle]
+  16#3396       [/mlsquare]
+  16#268        [/istroke]
+  16#313A       [/rieulkiyeokkorean]
+  16#200C       [/zerowidthnonjoiner /afii61664]
+  16#C          [/controlFF]
+  16#F775       [/Usmall]
+  16#647        [/heharabic /afii57470]
+  16#3EB        [/gangiacoptic]
+  16#A26        [/dagurmukhi]
+  16#18F        [/Schwa]
+  16#F8F8       [/parenrightbt]
+  16#3061       [/tihiragana]
+  16#FF33       [/Smonospace]
+  16#E05        [/khokhonthai]
+  16#56E        [/caarmenian]
+  16#312        [/commaturnedabovecmb]
+  16#2312       [/arc]
+  16#94D        [/viramadeva]
+  16#B6         [/paragraph]
+  16#6F1        [/onepersian]
+  16#FE5A       [/parenrightsmall]
+  16#1E5A       [/Rdotbelow]
+  16#495        [/ghemiddlehookcyrillic]
+  16#2495       [/fourteenperiod]
+  16#AD0        [/omgujarati]
+  16#310B       [/nbopomofo]
+  16#3BC        [/mugreek]
+  16#328E       [/ideographmetalcircle]
+  16#9F7        [/fournumeratorbengali]
+  16#2160       [/Oneroman]
+  16#160        [/Scaron]
+  16#FF04       [/dollarmonospace]
+  16#53F        [/Kenarmenian]
+  16#2E3        [/xsuperior]
+  16#91E        [/nyadeva]
+  16#2087       [/seveninferior]
+  16#F7F0       [/Ethsmall]
+  16#1E2B       [/hbrevebelow]
+  16#2466       [/sevencircle]
+  16#466        [/Yuslittlecyrillic]
+  16#AA1        [/ddagujarati]
+  16#20A        [/Iinvertedbreve]
+  16#30DC       [/bokatakana]
+  16#5E9        [/shinhebrew /shin /afii57689]
+  16#9C8        [/aivowelsignbengali]
+  16#131        [/dotlessi]
+  16#3003       [/dittomark]
+  16#1ED5       [/ocircumflexhookabove]
+  16#2510       [/SF030000]
+  16#2B4        [/rturnedsuperior]
+  16#3186       [/yeorinhieuhkorean]
+  16#58         [/X]
+  16#437        [/zecyrillic /afii10073]
+  16#A72        [/irigurmukhi]
+  16#1DB        [/Udieresisgrave]
+  16#30AD       [/kikatakana]
+  16#FF7F       [/sokatakanahalfwidth]
+  16#F6E8       [/periodsuperior]
+  16#E51        [/onethai]
+  16#25BA       [/triagrt /blackrightpointingpointer]
+  16#3230       [/ideographicsunparen]
+  16#999        [/ngabengali]
+  16#102        [/Abreve]
+  16#FEA6       [/khahfinalarabic]
+  16#1EA6       [/Acircumflexgrave]
+  16#24E1       [/rcircle]
+  16#4E1        [/dzeabkhasiancyrillic]
+  16#33B3       [/mssquare]
+  16#2285       [/notsuperset]
+  16#285        [/eshsquatreversed]
+  16#3157       [/okorean]
+  16#29         [/parenright]
+  16#2664       [/spadesuitwhite]
+  16#664        [/fourhackarabic /fourarabic /afii57396]
+  16#408        [/afii10057 /Jecyrillic]
+  16#1AC        [/Thook]
+  16#307E       [/mahiragana]
+  16#FF50       [/pmonospace]
+  16#E22        [/yoyakthai]
+  16#32F        [/breveinvertedbelowcmb]
+  16#3201       [/nieunparenkorean]
+  16#96A        [/fourdeva]
+  16#D3         [/Oacute]
+  16#1E77       [/ucircumflexbelow]
+  16#24B2       [/wparen]
+  16#4B2        [/Hadescendercyrillic]
+  16#3384       [/kasquare]
+  16#AED        [/sevengujarati]
+  16#256        [/dtail]
+  16#3128       [/ubopomofo]
+  16#F763       [/Csmall]
+  16#635        [/sadarabic /afii57429]
+  16#A14        [/augurmukhi]
+  16#17D        [/Zcaron]
+  16#F8E6       [/arrowvertex]
+  16#304F       [/kuhiragana]
+  16#FF21       [/Amonospace]
+  16#55C        [/exclamarmenian]
+  16#255C       [/SF270000]
+  16#300        [/gravecomb /gravecmb]
+  16#20A4       [/lira /afii08941]
+  16#A4         [/currency]
+  16#1E48       [/Nlinebelow]
+  16#483        [/titlocyrilliccmb]
+  16#2483       [/sixteenparen]
+  16#ABE        [/aavowelsigngujarati]
+  16#2227       [/logicaland]
+  16#30F9       [/vekatakana]
+  16#F734       [/fouroldstyle]
+  16#2606       [/whitestar]
+  16#3AA        [/Iotadieresis]
+  16#14E        [/Obreve]
+  16#3020       [/postalmarkface]
+  16#FEF2       [/yehfinalarabic]
+  16#1EF2       [/Ygrave]
+  16#2D1        [/colontriangularhalfmod]
+  16#90C        [/lvocalicdeva]
+  16#2075       [/fivesuperior]
+  16#75         [/u]
+  16#1E19       [/ecircumflexbelow]
+  16#454        [/ecyrillic /afii10101]
+  16#3326       [/dorusquare]
+  16#A8F        [/egujarati]
+  16#30CA       [/nakatakana]
+  16#FF9C       [/wakatakanahalfwidth]
+  16#5D7        [/hethebrew /het /afii57671]
+  16#9B6        [/shabengali]
+  16#11F        [/gbreve]
+  16#F888       [/saraueeleftthai]
+  16#FEC3       [/tahinitialarabic]
+  16#1EC3       [/ecircumflexhookabove]
+  16#33D0       [/lmsquare]
+  16#2A2        [/glottalstopstrokereversed]
+  16#3174       [/pieupsioskiyeokkorean]
+  16#46         [/F]
+  16#F7AF       [/Macronsmall]
+  16#425        [/afii10039 /Khacyrillic]
+  16#1C9        [/lj]
+  16#309B       [/voicedmarkkana]
+  16#FF6D       [/yusmallkatakanahalfwidth]
+  16#F6D6       [/dblgrave]
+  16#E3F        [/bahtthai]
+  16#25A8       [/squareupperrighttolowerleftfill]
+  16#5A8        [/qadmahebrew]
+  16#987        [/ibengali]
+  16#F0         [/eth]
+  16#FE94       [/tehmarbutafinalarabic]
+  16#1E94       [/Zlinebelow]
+  16#24CF       [/Zcircle]
+  16#33A1       [/squaremsquared]
+  16#273        [/nhookretroflex]
+  16#2273       [/greaterorequivalent]
+  16#3145       [/sioskorean]
+  16#2017       [/underscoredbl /dbllowline]
+  16#17         [/controlETB]
+  16#652        [/sukunarabic /afii57458]
+  16#19A        [/lbar]
+  16#306C       [/nuhiragana]
+  16#FF3E       [/asciicircummonospace]
+  16#E10        [/thothanthai]
+  16#579        [/chaarmenian]
+  16#31D        [/uptackbelowcmb]
+  16#958        [/qadeva]
+  16#C1         [/Aacute]
+  16#1E65       [/sacutedotaccent]
+  16#FE65       [/greatersmall]
+  16#24A0       [/eparen]
+  16#4A0        [/Kabashkircyrillic]
+  16#3116       [/rbopomofo]
+  16#623        [/afii57411 /alefhamzaabovearabic]
+  16#3C7        [/chi]
+  16#FB30       [/alefdageshhebrew]
+  16#3299       [/ideographicsecretcircle]
+  16#A02        [/bindigurmukhi]
+  16#16B        [/umacron]
+  16#216B       [/Twelveroman]
+  16#FF0F       [/slashmonospace]
+  16#54A        [/Peharmenian]
+  16#22EE       [/ellipsisvertical]
+  16#929        [/nnnadeva]
+  16#F7FB       [/Ucircumflexsmall]
+  16#FE36       [/parenrightvertical]
+  16#1E36       [/Ldotbelow]
+  16#471        [/psicyrillic]
+  16#2471       [/eighteencircle]
+  16#AAC        [/bagujarati]
+  16#215        [/udblgrave]
+  16#2215       [/divisionslash]
+  16#30E7       [/yosmallkatakana]
+  16#5F4        [/gershayimhebrew]
+  16#398        [/Theta]
+  16#FB01       [/fi]
+  16#326A       [/khieukhcirclekorean]
+  16#13C        [/lcommaaccent /lcedilla]
+  16#300E       [/whitecornerbracketleft]
+  16#FEE0       [/lammedialarabic]
+  16#1EE0       [/Ohorntilde]
+  16#2BF        [/ringhalfleft]
+  16#22BF       [/righttriangle]
+  16#63         [/c]
+  16#1E07       [/blinebelow]
+  16#442        [/tecyrillic /afii10084]
+  16#3314       [/kirosquare]
+  16#21E6       [/arrowleftwhite]
+  16#1E6        [/Gcaron]
+  16#30B8       [/zikatakana]
+  16#FF8A       [/hakatakanahalfwidth]
+  16#F6F3       [/tsuperior]
+  16#323B       [/ideographicstudyparen]
+  16#9A4        [/tabengali]
+  16#10D        [/ccaron]
+  16#1EB1       [/abrevegrave]
+  16#33BE       [/kwsquare]
+  16#290        [/zretroflexhook]
+  16#3162       [/yikorean]
+  16#34         [/four]
+  16#266F       [/musicsharpsign]
+  16#413        [/afii10020 /Gecyrillic]
+  16#FB7C       [/tchehinitialarabic]
+  16#1B7        [/Ezh]
+  16#3089       [/rahiragana]
+  16#FF5B       [/braceleftmonospace]
+  16#F6C4       [/afii10063]
+  16#E2D        [/oangthai]
+  16#596        [/tipehalefthebrew /tipehahebrew]
+  16#33A        [/bridgeinvertedbelowcmb]
+  16#320C       [/phieuphparenkorean]
+  16#DE         [/Thorn]
+  16#FE82       [/alefmaddaabovefinalarabic]
+  16#1E82       [/Wacute]
+  16#4BD        [/cheabkhasiancyrillic]
+  16#24BD       [/Hcircle]
+  16#338F       [/squarekg]
+  16#261        [/gscript]
+  16#2261       [/equivalence]
+  16#3133       [/kiyeoksioskorean]
+  16#5          [/controlENQ]
+  16#F76E       [/Nsmall]
+  16#640        [/tatweelarabic /kashidaautonosidebearingarabic /kashidaautoarabic /afii57440]
+  16#2640       [/venus /female]
+  16#3E4        [/Feicoptic]
+  16#FB4D       [/kafrafehebrew]
+  16#A1F        [/ttagurmukhi]
+  16#188        [/chook]
+  16#F8F1       [/bracelefttp]
+  16#305A       [/zuhiragana]
+  16#FF2C       [/Lmonospace]
+  16#567        [/eharmenian]
+  16#2567       [/SF450000]
+  16#30B        [/hungarumlautcmb]
+  16#946        [/eshortvowelsigndeva]
+  16#AF         [/overscore /macron]
+  16#1E53       [/omacronacute]
+  16#248E       [/sevenperiod]
+  16#AC9        [/ocandravowelsigngujarati]
+  16#F73F       [/questionsmall]
+  16#3B5        [/epsilon]
+  16#9F0        [/ramiddlediagonalbengali]
+  16#159        [/rcaron]
+  16#538        [/Etarmenian]
+  16#FCA1       [/tehjeeminitialarabic]
+  16#2DC        [/ilde /tilde]
+  16#917        [/gadeva]
+  16#2080       [/zeroinferior]
+  16#F7E9       [/Eacutesmall]
+  16#1E24       [/Hdotbelow]
+  16#45F        [/dzhecyrillic /afii10193]
+  16#3331       [/birusquare]
+  16#A9A        [/cagujarati]
+  16#2203       [/thereexists /existential]
+  16#203        [/ainvertedbreve]
+  16#30D5       [/hukatakana]
+  16#25E2       [/blacklowerrighttriangle]
+  16#5E2        [/ayin /afii57682 /ayinhebrew]
+  16#386        [/Alphatonos]
+  16#9C1        [/uvowelsignbengali]
+  16#12A        [/Imacron]
+  16#F893       [/maichattawaupperleftthai]
+  16#FECE       [/ghainfinalarabic]
+  16#1ECE       [/Ohookabove]
+  16#33DB       [/srsquare]
+  16#317F       [/pansioskorean]
+  16#51         [/Q]
+  16#430        [/acyrillic /afii10065]
+  16#A6B        [/fivegurmukhi]
+  16#1D4        [/ucaron]
+  16#21D4       [/dblarrowleft /arrowdblboth]
+  16#30A6       [/ukatakana]
+  16#FF78       [/kukatakanahalfwidth]
+  16#F6E1       [/commainferior]
+  16#E4A        [/maitrithai]
+  16#25B3       [/whiteuppointingtriangle]
+  16#5B3        [/hatafqamatswidehebrew /hatafqamatsquarterhebrew /hatafqamatsnarrowhebrew /hatafqamatshebrew /hatafqamats34 /hatafqamats28 /hatafqamats1b /hatafqamats /afii57802]
+  16#3229       [/tenideographicparen]
+  16#FB         [/ucircumflex]
+  16#FE9F       [/jeeminitialarabic]
+  16#24DA       [/kcircle]
+  16#4DA        [/Schwadieresiscyrillic]
+  16#33AC       [/gpasquare]
+  16#27E        [/rfishhook]
+  16#3150       [/aekorean]
+  16#22         [/quotedbl]
+  16#2022       [/bullet]
+  16#401        [/afii10023 /Iocyrillic]
+  16#A3C        [/nuktagurmukhi]
+  16#1A5        [/phook]
+  16#3077       [/puhiragana]
+  16#FF49       [/imonospace]
+  16#E1B        [/poplathai]
+  16#584        [/keharmenian]
+  16#2584       [/dnblock]
+  16#328        [/ogonekcmb]
+  16#963        [/llvocalicvowelsigndeva]
+  16#CC         [/Igrave]
+  16#1E70       [/Tcircumflexbelow]
+  16#24AB       [/pparen]
+  16#4AB        [/esdescendercyrillic]
+  16#337D       [/taisyouerasquare]
+  16#AE6        [/zerogujarati]
+  16#3121       [/oubopomofo]
+  16#62E        [/khaharabic /afii57422]
+  16#3D2        [/Upsilonhooksymbol /Upsilon1]
+  16#FB3B       [/kafdageshhebrew /kafdagesh]
+  16#32A4       [/ideographichighcircle]
+  16#2176       [/sevenroman]
+  16#176        [/Ycircumflex]
+  16#3048       [/ehiragana]
+  16#FF1A       [/colonmonospace]
+  16#555        [/Oharmenian]
+  16#2555       [/SF220000]
+  16#934        [/llladeva]
+  16#1E41       [/mdotaccent]
+  16#FE41       [/cornerbracketleftvertical]
+  16#247C       [/nineparen]
+  16#47C        [/Omegatitlocyrillic]
+  16#334E       [/yaadosquare]
+  16#AB7        [/ssagujarati]
+  16#2220       [/angle]
+  16#30F2       [/wokatakana]
+  16#3A3        [/Sigma]
+  16#3275       [/ieungacirclekorean]
+  16#147        [/Ncaron]
+  16#3019       [/whitetortoiseshellbracketright]
+  16#1EEB       [/uhorngrave]
+  16#FEEB       [/hehinitialarabic]
+  16#2CA        [/secondtonechinese]
+  16#905        [/adeva]
+  16#6E         [/n]
+  16#1E12       [/Dcircumflexbelow]
+  16#44D        [/ereversedcyrillic /afii10095]
+  16#A88        [/iigujarati]
+  16#1F1        [/DZ]
+  16#30C3       [/tusmallkatakana]
+  16#FF95       [/yukatakanahalfwidth]
+  16#F6FE       [/Tildesmall]
+  16#25D0       [/circlewithlefthalfblack]
+  16#5D0        [/alefhebrew /afii57664 /alef]
+  16#374        [/numeralsigngreek]
+  16#9AF        [/yabengali]
+  16#118        [/Eogonek]
+  16#2118       [/weierstrass]
+  16#FEBC       [/sadmedialarabic]
+  16#1EBC       [/Etilde]
+  16#FC60       [/shaddafathaarabic]
+  16#33C9       [/gysquare]
+  16#29B        [/Gsmallhook]
+  16#316D       [/rieulyeorinhieuhkorean]
+  16#3F         [/question]
+  16#F7A8       [/Dieresissmall]
+  16#41E        [/afii10032 /Ocyrillic]
+  16#A59        [/khhagurmukhi]
+  16#1C2        [/clickalveolar]
+  16#3094       [/vuhiragana]
+  16#FF66       [/wokatakanahalfwidth]
+  16#F6CF       [/Hungarumlaut]
+  16#E38        [/sarauthai]
+  16#25A1       [/whitesquare /H22073]
+  16#5A1        [/pazerhebrew]
+  16#345        [/ypogegrammenigreekcmb]
+  16#3217       [/chieuchaparenkorean]
+  16#E9         [/eacute]
+  16#1E8D       [/xdieresis]
+  16#4C8        [/enhookcyrillic]
+  16#24C8       [/Scircle]
+  16#339A       [/nmsquare]
+  16#26C        [/lbelt]
+  16#313E       [/rieulthieuthkorean]
+  16#2010       [/hyphentwo]
+  16#10         [/controlDLE]
+  16#F779       [/Ysmall]
+  16#64B        [/fathatanarabic /afii57451]
+  16#3EF        [/deicoptic]
+  16#FB58       [/pehinitialarabic]
+  16#A2A        [/pagurmukhi]
+  16#193        [/Ghook]
+  16#F8FC       [/bracerighttp]
+  16#3065       [/duhiragana]
+  16#2193       [/arrowdown]
+  16#FF37       [/Wmonospace]
+  16#E09        [/chochingthai]
+  16#572        [/ghadarmenian]
+  16#316        [/gravebelowcmb]
+  16#951        [/udattadeva]
+  16#BA         [/ordmasculine]
+  16#6F5        [/fivepersian]
+  16#FE5E       [/tortoiseshellbracketrightsmall]
+  16#1E5E       [/Rlinebelow]
+  16#499        [/zedescendercyrillic]
+  16#2499       [/eighteenperiod]
+  16#223D       [/reversedtilde]
+  16#310F       [/hbopomofo]
+  16#FFE1       [/sterlingmonospace]
+  16#261C       [/pointingindexleftwhite]
+  16#3C0        [/pi]
+  16#2164       [/Fiveroman]
+  16#164        [/Tcaron]
+  16#3036       [/circlepostalmark]
+  16#FF08       [/parenleftmonospace]
+  16#543        [/Cheharmenian]
+  16#2E7        [/tonebarmidmod]
+  16#922        [/ddhadeva]
+  16#F7F4       [/Ocircumflexsmall]
+  16#1E2F       [/idieresisacute]
+  16#246A       [/elevencircle]
+  16#46A        [/Yusbigcyrillic]
+  16#AA5        [/thagujarati]
+  16#20E        [/Oinvertedbreve]
+  16#30E0       [/mukatakana]
+  16#391        [/Alpha]
+  16#3263       [/rieulcirclekorean]
+  16#9CC        [/auvowelsignbengali]
+  16#135        [/jcircumflex]
+  16#2135       [/aleph]
+  16#3007       [/ideographiczero]
+  16#1ED9       [/ocircumflexdotbelow]
+  16#2514       [/SF020000]
+  16#2B8        [/ysuperior]
+  16#318A       [/yuyeokorean]
+  16#5C         [/backslash]
+  16#1E00       [/Aringbelow]
+  16#43B        [/elcyrillic /afii10077]
+  16#FBA4       [/hehhamzaaboveisolatedarabic]
+  16#330D       [/karoriisquare]
+  16#21DF       [/pagedown]
+  16#1DF        [/adieresismacron]
+  16#30B1       [/kekatakana]
+  16#FF83       [/tekatakanahalfwidth]
+  16#F6EC       [/esuperior]
+  16#E55        [/fivethai]
+  16#5BE        [/maqafhebrew /afii57645]
+  16#3234       [/ideographicnameparen]
+  16#99D        [/jhabengali]
+  16#106        [/Cacute]
+  16#FEAA       [/dalfinalarabic]
+  16#1EAA       [/Acircumflextilde]
+  16#24E5       [/vcircle]
+  16#FC4E       [/noonmeemisolatedarabic]
+  16#33B7       [/mvsquare]
+  16#4E5        [/idieresiscyrillic]
+  16#289        [/ubar]
+  16#315B       [/yokorean]
+  16#202D       [/afii61574]
+  16#2D         [/hyphen]
+  16#2668       [/hotsprings]
+  16#668        [/eightarabic /eighthackarabic /afii57400]
+  16#40C        [/afii10061 /Kjecyrillic]
+  16#A47        [/eematragurmukhi]
+  16#1B0        [/uhorn]
+  16#3082       [/mohiragana]
+  16#FF54       [/tmonospace]
+  16#E26        [/luthai]
+  16#333        [/dbllowlinecmb]
+  16#3205       [/pieupparenkorean]
+  16#96E        [/eightdeva]
+  16#D7         [/multiply]
+  16#1E7B       [/umacrondieresis]
+  16#24B6       [/Acircle]
+  16#4B6        [/Chedescendercyrillic]
+  16#3388       [/calsquare]
+  16#25A        [/schwahook]
+  16#F767       [/Gsmall]
+  16#639        [/afii57433 /ainarabic]
+  16#FB46       [/tsadidageshhebrew /tsadidagesh]
+  16#A18        [/ghagurmukhi]
+  16#181        [/Bhook]
+  16#F8EA       [/trademarksans]
+  16#3053       [/kohiragana]
+  16#FF25       [/Emonospace]
+  16#2560       [/SF420000]
+  16#FCC9       [/lamjeeminitialarabic]
+  16#304        [/macroncmb]
+  16#93F        [/ivowelsigndeva]
+  16#A8         [/dieresis]
+  16#FE4C       [/overlinedblwavy]
+  16#1E4C       [/Otildeacute]
+  16#2487       [/twentyparen]
+  16#AC2        [/uuvowelsigngujarati]
+  16#222B       [/integral]
+  16#30FD       [/iterationkatakana]
+  16#F738       [/eightoldstyle]
+  16#3AE        [/etatonos]
+  16#9E9        [/threebengali]
+  16#152        [/OE]
+  16#3024       [/fourhangzhou]
+  16#278D       [/fourcircleinversesansserif]
+  16#FEF6       [/lamalefmaddaabovefinalarabic]
+  16#1EF6       [/Yhookabove]
+  16#531        [/Aybarmenian]
+  16#2D5        [/downtackmod]
+  16#910        [/aideva]
+  16#2079       [/ninesuperior]
+  16#F7E2       [/Acircumflexsmall]
+  16#79         [/y]
+  16#1E1D       [/ecedillabreve]
+  16#458        [/jecyrillic /afii10105]
+  16#332A       [/haitusquare]
+  16#A93        [/ogujarati]
+  16#1FC        [/AEacute]
+  16#30CE       [/nokatakana]
+  16#5DB        [/kafhebrew /kaf /afii57675]
+  16#123        [/gcommaaccent /gcedilla]
+  16#F88C       [/maieklowleftthai]
+  16#FEC7       [/zahinitialarabic]
+  16#1EC7       [/ecircumflexdotbelow]
+  16#2502       [/SF110000]
+  16#33D4       [/mbsquare]
+  16#2A6        [/ts]
+  16#3178       [/kapyeounpieupkorean]
+  16#4A         [/J]
+  16#429        [/afii10043 /Shchacyrillic]
+  16#21CD       [/arrowleftdblstroke]
+  16#1CD        [/Acaron]
+  16#FF71       [/akatakanahalfwidth]
+  16#F6DA       [/registerserif]
+  16#E43        [/saraaimaimuanthai]
+  16#5AC        [/iluyhebrew]
+  16#25AC       [/filledrect /blackrectangle]
+  16#3222       [/threeideographicparen]
+  16#98B        [/rvocalicbengali]
+  16#F4         [/ocircumflex]
+  16#FE98       [/tehmedialarabic]
+  16#1E98       [/wring]
+  16#24D3       [/dcircle]
+  16#4D3        [/adieresiscyrillic]
+  16#33A5       [/mcubedsquare]
+  16#277        [/omegalatinclosed]
+  16#2277       [/greaterorless]
+  16#3149       [/ssangcieuckorean]
+  16#201B       [/quotereversed /quoteleftreversed]
+  16#1B         [/controlESC]
+  16#A35        [/vagurmukhi]
+  16#19E        [/nlegrightlong]
+  16#3070       [/bahiragana]
+  16#FF42       [/bmonospace]
+  16#E14        [/dodekthai]
+  16#57D        [/seharmenian]
+  16#321        [/hookpalatalizedbelowcmb]
+  16#2321       [/integralbottom /integralbt]
+  16#95C        [/dddhadeva]
+  16#C5         [/Aring]
+  16#1E69       [/sdotbelowdotaccent]
+  16#FE69       [/dollarsmall]
+  16#24A4       [/iparen]
+  16#4A4        [/Enghecyrillic]
+  16#2248       [/approxequal]
+  16#311A       [/abopomofo]
+  16#627        [/afii57415 /alefarabic]
+  16#3CB        [/upsilondieresis]
+  16#FB34       [/hedageshhebrew /hedagesh]
+  16#329D       [/ideographicexcellentcircle]
+  16#A06        [/aagurmukhi]
+  16#16F        [/uring]
+  16#3041       [/asmallhiragana]
+  16#FF13       [/threemonospace]
+  16#54E        [/Vewarmenian]
+  16#92D        [/bhadeva]
+  16#F7FF       [/Ydieresissmall]
+  16#6D1        [/yehthreedotsbelowarabic]
+  16#FE3A       [/tortoiseshellbracketrightvertical]
+  16#1E3A       [/Llinebelow]
+  16#2475       [/twoparen]
+  16#475        [/izhitsacyrillic /afii10196]
+  16#3347       [/mansyonsquare]
+  16#AB0        [/ragujarati]
+  16#219        [/scommaaccent]
+  16#2219       [/bulletoperator]
+  16#30EB       [/rukatakana]
+  16#F726       [/ampersandsmall]
+  16#39C        [/Mu]
+  16#326E       [/kiyeokacirclekorean]
+  16#9D7        [/aulengthmarkbengali]
+  16#140        [/ldotaccent /ldot]
+  16#3012       [/postalmark]
+  16#FEE4       [/meemmedialarabic]
+  16#1EE4       [/Udotbelow]
+  16#2C3        [/arrowheadrightmod]
+  16#67         [/g]
+  16#1E0B       [/ddotaccent]
+  16#446        [/tsecyrillic /afii10088]
+  16#FBAF       [/yehbarreefinalarabic]
+  16#3318       [/guramusquare]
+  16#A81        [/candrabindugujarati]
+  16#21EA       [/capslock]
+  16#1EA        [/Oogonek]
+  16#30BC       [/zekatakana]
+  16#FF8E       [/hokatakanahalfwidth]
+  16#F6F7       [/Dotaccentsmall]
+  16#25C9       [/fisheye]
+  16#323F       [/ideographicallianceparen]
+  16#9A8        [/nabengali]
+  16#111        [/dmacron /dcroat]
+  16#2111       [/Ifraktur]
+  16#1EB5       [/abrevetilde]
+  16#4F0        [/Udieresiscyrillic]
+  16#33C2       [/amsquare]
+  16#294        [/glottalstop]
+  16#3166       [/nieuntikeutkorean]
+  16#38         [/eight]
+  16#F7A1       [/exclamdownsmall]
+  16#417        [/Zecyrillic /afii10025]
+  16#1BB        [/twostroke]
+  16#308D       [/rohiragana]
+  16#F6C8       [/afii10832]
+  16#E31        [/maihanakatthai]
+  16#59A        [/yetivhebrew]
+  16#33E        [/tildeverticalcmb]
+  16#3210       [/tikeutaparenkorean]
+  16#E2         [/acircumflex]
+  16#FE86       [/wawhamzaabovefinalarabic]
+  16#1E86       [/Wdotaccent]
+  16#4C1        [/Zhebrevecyrillic]
+  16#24C1       [/Lcircle]
+  16#3393       [/ghzsquare]
+  16#265        [/hturned]
+  16#2265       [/greaterequal]
+  16#3137       [/tikeutkorean]
+  16#9          [/controlHT]
+  16#F772       [/Rsmall]
+  16#644        [/lamarabic /afii57444]
+  16#3E8        [/Horicoptic]
+  16#A23        [/nnagurmukhi]
+  16#18C        [/dtopbar]
+  16#F8F5       [/integralex]
+  16#305E       [/zohiragana]
+  16#FF30       [/Pmonospace]
+  16#E02        [/khokhaithai]
+  16#56B        [/iniarmenian]
+  16#256B       [/SF530000]
+  16#30F        [/dblgravecmb]
+  16#94A        [/oshortvowelsigndeva]
+  16#B3         [/threesuperior]
+  16#1E57       [/pdotaccent]
+  16#2492       [/elevenperiod]
+  16#492        [/Ghestrokecyrillic]
+  16#ACD        [/viramagujarati]
+  16#2236       [/ratio]
+  16#3108       [/fbopomofo]
+  16#3B9        [/iota]
+  16#328B       [/ideographfirecircle]
+  16#9F4        [/onenumeratorbengali]
+  16#15D        [/scircumflex]
+  16#215D       [/fiveeighths]
+  16#FF01       [/exclammonospace]
+  16#53C        [/Liwnarmenian]
+  16#253C       [/SF050000]
+  16#2E0        [/gammasuperior]
+  16#91B        [/chadeva]
+  16#2084       [/fourinferior]
+  16#F7ED       [/Iacutesmall]
+  16#1E28       [/Hcedilla]
+  16#463        [/yatcyrillic /afii10194]
+  16#2463       [/fourcircle]
+  16#A9E        [/nyagujarati]
+  16#2207       [/nabla /gradient]
+  16#207        [/einvertedbreve]
+  16#30D9       [/bekatakana]
+  16#5E6        [/tsadihebrew /tsadi /afii57686]
+  16#25E6       [/whitebullet /openbullet]
+  16#38A        [/Iotatonos]
+  16#12E        [/Iogonek]
+  16#212E       [/estimated]
+  16#F897       [/thanthakhatlowrightthai]
+  16#3000       [/ideographicspace]
+  16#FED2       [/fehfinalarabic]
+  16#1ED2       [/Ocircumflexgrave]
+  16#2B1        [/hhooksuperior]
+  16#3183       [/yesieungpansioskorean]
+  16#55         [/U]
+  16#434        [/decyrillic /afii10069]
+  16#A6F        [/ninegurmukhi]
+  16#1D8        [/udieresisacute]
+  16#30AA       [/okatakana]
+  16#FF7C       [/sikatakanahalfwidth]
+  16#F6E5       [/hypheninferior]
+  16#E4E        [/yamakkanthai]
+  16#25B7       [/whiterightpointingtriangle]
+  16#5B7        [/patahwidehebrew /patahquarterhebrew /patahnarrowhebrew /patahhebrew /patah2a /patah1d /patah11 /patah /afii57798]
+  16#322D       [/ideographicwoodparen]
+  16#996        [/khabengali]
+  16#FF         [/ydieresis]
+  16#FEA3       [/hahinitialarabic]
+  16#1EA3       [/ahookabove]
+  16#24DE       [/ocircle]
+  16#4DE        [/Zedieresiscyrillic]
+  16#33B0       [/pssquare]
+  16#2282       [/subset /propersubset]
+  16#282        [/shook]
+  16#3154       [/ekorean]
+  16#26         [/ampersand]
+  16#2026       [/ellipsis]
+  16#661        [/onehackarabic /onearabic /afii57393]
+  16#2661       [/heartsuitwhite]
+  16#405        [/afii10054 /Dzecyrillic]
+  16#A40        [/iimatragurmukhi]
+  16#1A9        [/Esh]
+  16#307B       [/hohiragana]
+  16#FF4D       [/mmonospace]
+  16#E1F        [/fofanthai]
+  16#2588       [/block]
+  16#32C        [/caronbelowcmb]
+  16#967        [/onedeva]
+  16#D0         [/Eth]
+  16#1E74       [/Utildebelow]
+  16#4AF        [/ustraightcyrillic]
+  16#24AF       [/tparen]
+  16#3381       [/nasquare]
+  16#AEA        [/fourgujarati]
+  16#2253       [/imageorapproximatelyequal]
+  16#253        [/bhook]
+  16#3125       [/engbopomofo]
+  16#F760       [/Gravesmall]
+  16#632        [/zainarabic /afii57426]
+  16#3D6        [/pisymbolgreek /omega1]
+  16#32A8       [/ideographicrightcircle]
+  16#17A        [/zacute]
+  16#217A       [/elevenroman]
+  16#304C       [/gahiragana]
+  16#FF1E       [/greatermonospace]
+  16#559        [/ringhalfleftarmenian]
+  16#2559       [/SF490000]
+  16#938        [/sadeva]
+  16#20A1       [/colonmonetary /colonsign]
+  16#A1         [/exclamdown]
+  16#1E45       [/ndotaccent]
+  16#2480       [/thirteenparen]
+  16#480        [/Koppacyrillic]
+  16#30F6       [/kesmallkatakana]
+  16#F731       [/oneoldstyle]
+  16#3A7        [/Chi]
+  16#3279       [/thieuthacirclekorean]
+  16#9E2        [/lvocalicvowelsignbengali]
+  16#14B        [/eng]
+  16#301D       [/quotedblprimereversed]
+  16#1EEF       [/uhorntilde]
+  16#2CE        [/gravelowmod]
+  16#22CE       [/curlyor]
+  16#909        [/udeva]
+  16#72         [/r]
+  16#1E16       [/Emacronacute]
+  16#451        [/iocyrillic /afii10071]
+  16#3323       [/sentosquare]
+  16#1F5        [/gacute]
+  16#30C7       [/dekatakana]
+  16#FF99       [/rukatakanahalfwidth]
+  16#5D4        [/hehebrew /he /afii57668]
+  16#11C        [/Gcircumflex]
+  16#F885       [/saraileftthai]
+  16#211C       [/Rfraktur]
+  16#FEC0       [/dadmedialarabic]
+  16#1EC0       [/Ecircumflexgrave]
+  16#33CD       [/KKsquare]
+  16#3171       [/kapyeounmieumkorean]
+  16#43         [/C]
+  16#67E        [/peharabic /afii57506]
+  16#422        [/afii10036 /Tecyrillic]
+  16#FB8B       [/jehfinalarabic]
+  16#1C6        [/dzcaron]
+  16#21C6       [/arrowleftoverright]
+  16#FF6A       [/esmallkatakanahalfwidth]
+  16#F6D3       [/dblGrave]
+  16#25A5       [/squareverticalfill]
+  16#5A5        [/merkhalefthebrew /merkhahebrew]
+  16#321B       [/hieuhaparenkorean]
+  16#ED         [/iacute]
+  16#1E91       [/zcircumflex]
+  16#FE91       [/behinitialarabic]
+  16#4CC        [/chekhakassiancyrillic]
+  16#24CC       [/Wcircle]
+  16#339E       [/squarekm]
+  16#270        [/mlonglegturned]
+  16#2270       [/notlessnorequal]
+  16#3142       [/pieupkorean]
+  16#14         [/controlDC4]
+  16#2014       [/emdash]
+  16#64F        [/dammalowarabic /dammaarabic /afii57455]
+  16#3F3        [/yotgreek]
+  16#A2E        [/magurmukhi]
+  16#2197       [/arrowupright]
+  16#197        [/Istroke]
+  16#3069       [/dohiragana]
+  16#FF3B       [/bracketleftmonospace]
+  16#E0D        [/yoyingthai]
+  16#576        [/nowarmenian]
+  16#31A        [/leftangleabovecmb]
+  16#BE         [/threequarters]
+  16#6F9        [/ninepersian]
+  16#FE62       [/plussmall]
+  16#1E62       [/Sdotbelow]
+  16#49D        [/kaverticalstrokecyrillic]
+  16#249D       [/bparen]
+  16#3113       [/zhbopomofo]
+  16#FFE5       [/yenmonospace]
+  16#3C4        [/tau]
+  16#FB2D       [/shindageshsindothebrew /shindageshsindot]
+  16#3296       [/ideographicfinancialcircle]
+  16#168        [/Utilde]
+  16#2168       [/Nineroman]
+  16#FF0C       [/commamonospace]
+  16#547        [/Shaarmenian]
+  16#926        [/dadeva]
+  16#F7F8       [/Oslashsmall]
+  16#FE33       [/underscorevertical]
+  16#1E33       [/kdotbelow]
+  16#246E       [/fifteencircle]
+  16#46E        [/Ksicyrillic]
+  16#212        [/Rinvertedbreve]
+  16#2212       [/minus]
+  16#30E4       [/yakatakana]
+  16#5F1        [/vavyodhebrew /afii57717]
+  16#395        [/Epsilon]
+  16#3267       [/ieungcirclekorean]
+  16#139        [/Lacute]
+  16#300B       [/dblanglebracketright]
+  16#1EDD       [/ohorngrave]
+  16#2518       [/SF040000]
+  16#2BC        [/apostrophemod /afii57929]
+  16#318E       [/araeaekorean]
+  16#60         [/grave]
+  16#1E04       [/Bdotbelow]
+  16#43F        [/pecyrillic /afii10081]
+  16#FBA8       [/hehinitialaltonearabic]
+  16#1E3        [/aemacron]
+  16#21E3       [/arrowdashdown]
+  16#30B5       [/sakatakana]
+  16#FF87       [/nukatakanahalfwidth]
+  16#F6F0       [/osuperior]
+  16#E59        [/ninethai]
+  16#5C2        [/sindothebrew /afii57803]
+  16#3238       [/ideographiclaborparen]
+  16#9A1        [/ddabengali]
+  16#10A        [/Cdotaccent /Cdot]
+  16#FEAE       [/rehfinalarabic]
+  16#1EAE       [/Abreveacute]
+  16#24E9       [/zcircle]
+  16#4E9        [/obarredcyrillic]
+  16#33BB       [/nwsquare]
+  16#28D        [/wturned]
+  16#315F       [/wikorean]
+  16#31         [/one]
+  16#66C        [/thousandsseparatorpersian /thousandsseparatorarabic]
+  16#266C       [/beamedsixteenthnotes]
+  16#410        [/afii10017 /Acyrillic]
+  16#A4B        [/oomatragurmukhi]
+  16#1B4        [/yhook]
+  16#3086       [/yuhiragana]
+  16#FF58       [/xmonospace]
+  16#E2A        [/sosuathai]
+  16#2593       [/shadedark /dkshade]
+  16#593        [/shalshelethebrew]
+  16#337        [/solidusshortoverlaycmb]
+  16#3209       [/chieuchparenkorean]
+  16#DB         [/Ucircumflex]
+  16#1E7F       [/vdotbelow]
+  16#4BA        [/Shhacyrillic]
+  16#24BA       [/Ecircle]
+  16#338C       [/mufsquare]
+  16#25E        [/eopenreversedclosed]
+  16#2002       [/enspace]
+  16#2          [/controlSOT]
+  16#F76B       [/Ksmall]
+  16#FB4A       [/tavdageshhebrew /tavdagesh /tavdages]
+  16#A1C        [/jagurmukhi]
+  16#185        [/tonesix]
+  16#F8EE       [/bracketlefttp]
+  16#3057       [/sihiragana]
+  16#FF29       [/Imonospace]
+  16#564        [/daarmenian]
+  16#2564       [/SF470000]
+  16#308        [/dieresiscmb]
+  16#943        [/rvocalicvowelsigndeva]
+  16#20AC       [/euro /Euro]
+  16#AC         [/logicalnot]
+  16#FE50       [/commasmall]
+  16#1E50       [/Omacrongrave]
+  16#248B       [/fourperiod]
+  16#260E       [/telephoneblack]
+  16#3B2        [/beta]
+  16#9ED        [/sevenbengali]
+  16#156        [/Rcommaaccent /Rcedilla]
+  16#3028       [/eighthangzhou]
+  16#2791       [/eightcircleinversesansserif]
+  16#FEFA       [/lamalefhamzabelowfinalarabic]
+  16#535        [/Echarmenian]
+  16#2D9        [/dotaccent]
+  16#914        [/audeva]
+  16#207D       [/parenleftsuperior]
+  16#F7E6       [/AEsmall]
+  16#7D         [/braceright]
+  16#1E21       [/gmacron]
+  16#45C        [/kjecyrillic /afii10109]
+  16#A97        [/gagujarati]
+  16#200        [/Adblgrave]
+  16#2200       [/universal /forall]
+  16#30D2       [/hikatakana]
+  16#5DF        [/finalnunhebrew /finalnun /afii57679]
+  16#9BE        [/aavowelsignbengali]
+  16#127        [/hbar]
+  16#F890       [/maitriupperleftthai]
+  16#1ECB       [/idotbelow]
+  16#FECB       [/aininitialarabic]
+  16#33D8       [/pmsquare]
+  16#317C       [/siostikeutkorean]
+  16#4E         [/N]
+  16#FDF2       [/lamlamhehisolatedarabic]
+  16#42D        [/afii10047 /Ereversedcyrillic]
+  16#A68        [/twogurmukhi]
+  16#1D1        [/Ocaron]
+  16#21D1       [/arrowdblup]
+  16#30A3       [/ismallkatakana]
+  16#FF75       [/okatakanahalfwidth]
+  16#F6DE       [/threequartersemdash]
+  16#E47        [/maitaikhuthai]
+  16#5B0        [/shevawidehebrew /shevaquarterhebrew /shevanarrowhebrew /shevahebrew /sheva2e /sheva22 /sheva15 /sheva115 /sheva /afii57799]
+  16#3226       [/sevenideographicparen]
+  16#98F        [/ebengali]
+  16#F8         [/oslash]
+  16#FE9C       [/thehmedialarabic]
+  16#24D7       [/hcircle]
+  16#4D7        [/iebrevecyrillic]
+  16#33A9       [/pasquare]
+  16#227B       [/succeeds]
+  16#27B        [/rhookturned]
+  16#314D       [/phieuphkorean]
+  16#1F         [/controlUS]
+  16#FB67       [/ttehfinalarabic]
+  16#A39        [/hagurmukhi]
+  16#1A2        [/Oi]
+  16#3074       [/pihiragana]
+  16#FF46       [/fmonospace]
+  16#E18        [/thothongthai]
+  16#581        [/coarmenian]
+  16#325        [/ringbelowcmb]
+  16#2325       [/option]
+  16#960        [/rrvocalicdeva]
+  16#C9         [/Eacute]
+  16#1E6D       [/tdotbelow]
+  16#24A8       [/mparen]
+  16#4A8        [/Haabkhasiancyrillic]
+  16#224C       [/allequal]
+  16#311E       [/aibopomofo]
+  16#62B        [/theharabic /afii57419]
+  16#FB38       [/tetdageshhebrew /tetdagesh]
+  16#A0A        [/uugurmukhi]
+  16#173        [/uogonek]
+  16#2173       [/fourroman]
+  16#3045       [/usmallhiragana]
+  16#FF17       [/sevenmonospace]
+  16#552        [/Yiwnarmenian]
+  16#2552       [/SF510000]
+  16#931        [/rradeva]
+  16#6D5        [/afii57534]
+  16#FE3E       [/dblanglebracketrightvertical]
+  16#1E3E       [/Macute]
+  16#479        [/ukcyrillic]
+  16#2479       [/sixparen]
+  16#221D       [/proportional]
+  16#30EF       [/wakatakana]
+  16#3A0        [/Pi]
+  16#3272       [/mieumacirclekorean]
+  16#144        [/nacute]
+  16#3016       [/whitelenticularbracketleft]
+  16#FEE8       [/noonmedialarabic]
+  16#1EE8       [/Uhornacute]
+  16#2C7        [/caron]
+  16#902        [/anusvaradeva]
+  16#6B         [/k]
+  16#1E0F       [/dlinebelow]
+  16#44A        [/hardsigncyrillic /afii10092]
+  16#A85        [/agujarati]
+  16#1EE        [/Ezhcaron]
+  16#30C0       [/dakatakana]
+  16#FF92       [/mekatakanahalfwidth]
+  16#F6FB       [/Ogoneksmall]
+  16#3243       [/ideographicreachparen]
+  16#9AC        [/babengali]
+  16#115        [/ebreve]
+  16#1EB9       [/edotbelow]
+  16#4F4        [/Chedieresiscyrillic]
+  16#33C6       [/coverkgsquare]
+  16#298        [/bilabialclick]
+  16#316A       [/rieultikeutkorean]
+  16#203C       [/exclamdbl]
+  16#3C         [/less]
+  16#41B        [/afii10029 /Elcyrillic]
+  16#1BF        [/wynn]
+  16#3091       [/wehiragana]
+  16#FF63       [/cornerbracketrighthalfwidth]
+  16#F6CC       [/DieresisAcute]
+  16#E35        [/saraiithai]
+  16#59E        [/gershayimaccenthebrew]
+  16#342        [/perispomenigreekcmb]
+  16#3214       [/siosaparenkorean]
+  16#E6         [/ae]
+  16#FE8A       [/yehhamzaabovefinalarabic]
+  16#1E8A       [/Xdotaccent]
+  16#24C5       [/Pcircle]
+  16#3397       [/dlsquare]
+  16#269        [/iotalatin]
+  16#313B       [/rieulmieumkorean]
+  16#D          [/controlCR]
+  16#200D       [/afii301]
+  16#F776       [/Vsmall]
+  16#648        [/wawarabic /afii57448]
+  16#3EC        [/Shimacoptic]
+  16#A27        [/dhagurmukhi]
+  16#190        [/Eopen]
+  16#F8F9       [/bracketrighttp]
+  16#3062       [/dihiragana]
+  16#2190       [/arrowleft]
+  16#FF34       [/Tmonospace]
+  16#E06        [/khorakhangthai]
+  16#56F        [/kenarmenian]
+  16#313        [/commaabovecmb]
+  16#B7         [/middot /periodcentered]
+  16#6F2        [/twopersian]
+  16#1E5B       [/rdotbelow]
+  16#FE5B       [/braceleftsmall]
+  16#2496       [/fifteenperiod]
+  16#496        [/Zhedescendercyrillic]
+  16#310C       [/lbopomofo]
+  16#3BD        [/nu]
+  16#328F       [/ideographearthcircle]
+  16#9F8        [/denominatorminusonenumeratorbengali]
+  16#161        [/scaron]
+  16#2161       [/Tworoman]
+  16#FF05       [/percentmonospace]
+  16#540        [/Hoarmenian]
+  16#2E4        [/glottalstopreversedsuperior]
+  16#91F        [/ttadeva]
+  16#2088       [/eightinferior]
+  16#F7F1       [/Ntildesmall]
+  16#1E2C       [/Itildebelow]
+  16#467        [/yuslittlecyrillic]
+  16#2467       [/eightcircle]
+  16#3339       [/herutusquare]
+  16#AA2        [/ddhagujarati]
+  16#20B        [/iinvertedbreve]
+  16#220B       [/suchthat]
+  16#30DD       [/pokatakana]
+  16#5EA        [/tavhebrew /tav /afii57690]
+  16#38E        [/Upsilontonos]
+  16#3260       [/kiyeokcirclekorean]
+  16#132        [/IJ]
+  16#3004       [/jis]
+  16#FED6       [/qaffinalarabic]
+  16#1ED6       [/Ocircumflextilde]
+  16#2B5        [/rhookturnedsuperior]
+  16#3187       [/yoyakorean]
+  16#59         [/Y]
+  16#438        [/iicyrillic /afii10074]
+  16#A73        [/uragurmukhi]
+  16#1DC        [/udieresisgrave]
+  16#30AE       [/gikatakana]
+  16#FF80       [/takatakanahalfwidth]
+  16#F6E9       [/asuperior]
+  16#E52        [/twothai]
+  16#5BB        [/qubutswidehebrew /qubutsquarterhebrew /qubutsnarrowhebrew /qubutshebrew /qubuts31 /qubuts25 /qubuts18 /qubuts /afii57796]
+  16#3231       [/ideographicstockparen]
+  16#99A        [/cabengali]
+  16#2103       [/centigrade]
+  16#103        [/abreve]
+  16#FEA7       [/khahinitialarabic]
+  16#1EA7       [/acircumflexgrave]
+  16#24E2       [/scircle]
+  16#FC4B       [/noonjeemisolatedarabic]
+  16#33B4       [/pvsquare]
+  16#4E2        [/Imacroncyrillic]
+  16#2286       [/subsetorequal /reflexsubset]
+  16#286        [/eshcurl]
+  16#3158       [/wakorean]
+  16#2A         [/asterisk]
+  16#665        [/fivehackarabic /fivearabic /afii57397]
+  16#2665       [/heartsuitblack /heart]
+  16#409        [/afii10058 /Ljecyrillic]
+  16#1AD        [/thook]
+  16#307F       [/mihiragana]
+  16#FF51       [/qmonospace]
+  16#E23        [/roruathai]
+  16#258C       [/lfblock]
+  16#330        [/tildebelowcmb]
+  16#3202       [/tikeutparenkorean]
+  16#96B        [/fivedeva]
+  16#D4         [/Ocircumflex]
+  16#1E78       [/Utildeacute]
+  16#24B3       [/xparen]
+  16#4B3        [/hadescendercyrillic]
+  16#3385       [/KBsquare]
+  16#AEE        [/eightgujarati]
+  16#257        [/dhook]
+  16#3129       [/iubopomofo]
+  16#F764       [/Dsmall]
+  16#636        [/dadarabic /afii57430]
+  16#3DA        [/Stigmagreek]
+  16#FB43       [/pefinaldageshhebrew]
+  16#A15        [/kagurmukhi]
+  16#17E        [/zcaron]
+  16#F8E7       [/arrowhorizex]
+  16#3050       [/guhiragana]
+  16#FF22       [/Bmonospace]
+  16#55D        [/commaarmenian]
+  16#255D       [/SF260000]
+  16#301        [/acutecomb /acutecmb]
+  16#93C        [/nuktadeva]
+  16#A5         [/yen]
+  16#FE49       [/overlinedashed]
+  16#1E49       [/nlinebelow]
+  16#2484       [/seventeenparen]
+  16#484        [/palatalizationcyrilliccmb]
+  16#ABF        [/ivowelsigngujarati]
+  16#2228       [/logicalor]
+  16#30FA       [/vokatakana]
+  16#F735       [/fiveoldstyle]
+  16#3AB        [/Upsilondieresis]
+  16#9E6        [/zerobengali]
+  16#14F        [/obreve]
+  16#3021       [/onehangzhou]
+  16#278A       [/onecircleinversesansserif]
+  16#FEF3       [/yehinitialarabic /alefmaksurainitialarabic]
+  16#1EF3       [/ygrave]
+  16#2D2        [/ringhalfrightcentered]
+  16#90D        [/ecandradeva]
+  16#2076       [/sixsuperior]
+  16#76         [/v]
+  16#1E1A       [/Etildebelow]
+  16#455        [/dzecyrillic /afii10102]
+  16#3327       [/tonsquare]
+  16#A90        [/aigujarati]
+  16#30CB       [/nikatakana]
+  16#FF9D       [/nkatakanahalfwidth]
+  16#5D8        [/tethebrew /tet /afii57672]
+  16#25D8       [/invbullet /bulletinverse]
+  16#9B7        [/ssabengali]
+  16#120        [/Gdotaccent /Gdot]
+  16#F889       [/maitaikhuleftthai]
+  16#FEC4       [/tahmedialarabic]
+  16#1EC4       [/Ecircumflextilde]
+  16#33D1       [/squareln]
+  16#22A3       [/tackleft]
+  16#2A3        [/dzaltone]
+  16#3175       [/pieupsiostikeutkorean]
+  16#47         [/G]
+  16#426        [/afii10040 /Tsecyrillic]
+  16#1CA        [/NJ]
+  16#309C       [/semivoicedmarkkana]
+  16#FF6E       [/yosmallkatakanahalfwidth]
+  16#F6D7       [/dieresisacute]
+  16#E40        [/saraethai]
+  16#25A9       [/squarediagonalcrosshatchfill]
+  16#5A9        [/telishaqetanahebrew]
+  16#988        [/iibengali]
+  16#F1         [/ntilde]
+  16#1E95       [/zlinebelow]
+  16#24D0       [/acircle]
+  16#4D0        [/Abrevecyrillic]
+  16#33A2       [/kmsquaredsquare]
+  16#3146       [/ssangsioskorean]
+  16#18         [/controlCAN]
+  16#2018       [/quoteleft]
+  16#A32        [/lagurmukhi]
+  16#19B        [/lambdastroke]
+  16#306D       [/nehiragana]
+  16#FF3F       [/underscoremonospace]
+  16#E11        [/thonangmonthothai]
+  16#57A        [/peharmenian]
+  16#31E        [/downtackbelowcmb]
+  16#959        [/khhadeva]
+  16#C2         [/Acircumflex]
+  16#FE66       [/equalsmall]
+  16#1E66       [/Scarondotaccent]
+  16#24A1       [/fparen]
+  16#4A1        [/kabashkircyrillic]
+  16#2245       [/approximatelyequal /congruent]
+  16#3117       [/zbopomofo]
+  16#624        [/wawhamzaabovearabic /afii57412]
+  16#3C8        [/psi]
+  16#FB31       [/betdageshhebrew /betdagesh]
+  16#16C        [/Ubreve]
+  16#FF10       [/zeromonospace]
+  16#54B        [/Jheharmenian]
+  16#92A        [/padeva]
+  16#F7FC       [/Udieresissmall]
+  16#1E37       [/ldotbelow]
+  16#FE37       [/braceleftvertical]
+  16#2472       [/nineteencircle]
+  16#472        [/afii10147 /Fitacyrillic]
+  16#5344       [/twentyhangzhou]
+  16#AAD        [/bhagujarati]
+  16#216        [/Uinvertedbreve]
+  16#30E8       [/yokatakana]
+  16#399        [/Iota]
+  16#FB02       [/fl]
+  16#326B       [/thieuthcirclekorean]
+  16#13D        [/Lcaron]
+  16#300F       [/whitecornerbracketright]
+  16#1EE1       [/ohorntilde]
+  16#251C       [/SF080000]
+  16#2C0        [/glottalstopmod]
+  16#64         [/d]
+  16#1E08       [/Ccedillaacute]
+  16#443        [/ucyrillic /afii10085]
+  16#3315       [/kiroguramusquare]
+  16#1E7        [/gcaron]
+  16#21E7       [/arrowupwhite]
+  16#30B9       [/sukatakana]
+  16#FF8B       [/hikatakanahalfwidth]
+  16#F6F4       [/Brevesmall]
+  16#25C6       [/blackdiamond]
+  16#323C       [/ideographicsuperviseparen]
+  16#9A5        [/thabengali]
+  16#10E        [/Dcaron]
+  16#FEB2       [/seenfinalarabic]
+  16#1EB2       [/Abrevehookabove]
+  16#33BF       [/mwmegasquare]
+  16#291        [/zcurl]
+  16#3163       [/ikorean]
+  16#2035       [/primereversed]
+  16#35         [/five]
+  16#414        [/afii10021 /Decyrillic]
+  16#FB7D       [/tchehmedialarabic]
+  16#1B8        [/Ezhreversed]
+  16#308A       [/rihiragana]
+  16#FF5C       [/barmonospace]
+  16#F6C5       [/afii10064]
+  16#E2E        [/honokhukthai]
+  16#597        [/reviamugrashhebrew /reviahebrew]
+  16#33B        [/squarebelowcmb]
+  16#320D       [/hieuhparenkorean]
+  16#DF         [/germandbls]
+  16#1E83       [/wacute]
+  16#24BE       [/Icircle]
+  16#4BE        [/Chedescenderabkhasiancyrillic]
+  16#3390       [/Hzsquare]
+  16#2262       [/notidentical]
+  16#3134       [/nieunkorean]
+  16#6          [/controlACK]
+  16#F76F       [/Osmall]
+  16#641        [/feharabic /afii57441]
+  16#2641       [/earth]
+  16#3E5        [/feicoptic]
+  16#FB4E       [/perafehebrew]
+  16#A20        [/tthagurmukhi]
+  16#189        [/Dafrican]
+  16#F8F2       [/braceleftmid]
+  16#305B       [/sehiragana]
+  16#FF2D       [/Mmonospace]
+  16#568        [/etarmenian]
+  16#FCD1       [/meemmeeminitialarabic]
+  16#2568       [/SF460000]
+  16#30C        [/caroncmb]
+  16#947        [/evowelsigndeva]
+  16#B0         [/degree]
+  16#FE54       [/semicolonsmall]
+  16#1E54       [/Pacute]
+  16#248F       [/eightperiod]
+  16#3105       [/bbopomofo]
+  16#3B6        [/zeta]
+  16#FB1F       [/yodyodpatahhebrew /doubleyodpatahhebrew /doubleyodpatah /afii57705]
+  16#9F1        [/ralowerdiagonalbengali]
+  16#15A        [/Sacute]
+  16#539        [/Toarmenian]
+  16#FCA2       [/tehhahinitialarabic]
+  16#2DD        [/hungarumlaut]
+  16#918        [/ghadeva]
+  16#2081       [/oneinferior]
+  16#F7EA       [/Ecircumflexsmall]
+  16#1E25       [/hdotbelow]
+  16#2460       [/onecircle]
+  16#460        [/Omegacyrillic]
+  16#A9B        [/chagujarati]
+  16#204        [/Edblgrave]
+  16#30D6       [/bukatakana]
+  16#5E3        [/finalpehebrew /finalpe /afii57683]
+  16#25E3       [/blacklowerlefttriangle]
+  16#387        [/anoteleia]
+  16#9C2        [/uuvowelsignbengali]
+  16#12B        [/imacron]
+  16#F894       [/maichattawalowrightthai]
+  16#212B       [/angstrom]
+  16#1ECF       [/ohookabove]
+  16#FECF       [/ghaininitialarabic]
+  16#FC73       [/tehnoonfinalarabic]
+  16#33DC       [/svsquare]
+  16#3180       [/ssangieungkorean]
+  16#52         [/R]
+  16#431        [/becyrillic /afii10066]
+  16#3303       [/aarusquare]
+  16#A6C        [/sixgurmukhi]
+  16#1D5        [/Udieresismacron]
+  16#30A7       [/esmallkatakana]
+  16#FF79       [/kekatakanahalfwidth]
+  16#F6E2       [/commasuperior]
+  16#E4B        [/maichattawathai]
+  16#5B4        [/hiriq2d /hiriq21 /hiriq14 /hiriq /hiriqwidehebrew /hiriqquarterhebrew /hiriqnarrowhebrew /hiriqhebrew /afii57793]
+  16#25B4       [/blackuppointingsmalltriangle]
+  16#322A       [/ideographicmoonparen]
+  16#993        [/obengali]
+  16#FC         [/udieresis]
+  16#FEA0       [/jeemmedialarabic]
+  16#1EA0       [/Adotbelow]
+  16#4DB        [/schwadieresiscyrillic]
+  16#24DB       [/lcircle]
+  16#33AD       [/radsquare]
+  16#27F        [/rfishhookreversed]
+  16#3151       [/yakorean]
+  16#23         [/numbersign]
+  16#402        [/afii10051 /Djecyrillic]
+  16#FB6B       [/vehfinalarabic]
+  16#1A6        [/yr]
+  16#3078       [/hehiragana]
+  16#FF4A       [/jmonospace]
+  16#E1C        [/phophungthai]
+  16#585        [/oharmenian]
+  16#329        [/verticallinebelowcmb]
+  16#2329       [/angleleft]
+  16#964        [/danda]
+  16#CD         [/Iacute]
+  16#1E71       [/tcircumflexbelow]
+  16#24AC       [/qparen]
+  16#4AC        [/Tedescendercyrillic]
+  16#337E       [/meizierasquare]
+  16#AE7        [/onegujarati]
+  16#250        [/aturned]
+  16#2250       [/approaches]
+  16#3122       [/anbopomofo]
+  16#262F       [/yinyang]
+  16#62F        [/dalarabic /afii57423]
+  16#3D3        [/Upsilonacutehooksymbolgreek]
+  16#FB3C       [/lameddageshhebrew /lameddagesh]
+  16#32A5       [/ideographiccentrecircle]
+  16#177        [/ycircumflex]
+  16#2177       [/eightroman]
+  16#3049       [/osmallhiragana]
+  16#FF1B       [/semicolonmonospace]
+  16#556        [/Feharmenian]
+  16#2556       [/SF210000]
+  16#935        [/vadeva]
+  16#FE42       [/cornerbracketrightvertical]
+  16#1E42       [/Mdotbelow]
+  16#247D       [/tenparen]
+  16#47D        [/omegatitlocyrillic]
+  16#AB8        [/sagujarati]
+  16#30F3       [/nkatakana]
+  16#3A4        [/Tau]
+  16#3276       [/cieucacirclekorean]
+  16#9DF        [/yyabengali]
+  16#148        [/ncaron]
+  16#FEEC       [/hehmedialarabic]
+  16#1EEC       [/Uhornhookabove]
+  16#2CB        [/fourthtonechinese]
+  16#906        [/aadeva]
+  16#6F         [/o]
+  16#1E13       [/dcircumflexbelow]
+  16#44E        [/iucyrillic /afii10096]
+  16#A89        [/ugujarati]
+  16#1F2        [/Dz]
+  16#30C4       [/tukatakana]
+  16#FF96       [/yokatakanahalfwidth]
+  16#F6FF       [/Zcaronsmall]
+  16#25D1       [/circlewithrighthalfblack]
+  16#5D1        [/bethebrew /afii57665 /bet]
+  16#375        [/numeralsignlowergreek]
+  16#9B0        [/rabengali]
+  16#119        [/eogonek]
+  16#1EBD       [/etilde]
+  16#4F8        [/Yerudieresiscyrillic]
+  16#FC61       [/shaddadammaarabic]
+  16#33CA       [/hasquare]
+  16#316E       [/mieumpieupkorean]
+  16#40         [/at]
+  16#41F        [/afii10033 /Pecyrillic]
+  16#A5A        [/ghhagurmukhi]
+  16#1C3        [/clickretroflex]
+  16#FF67       [/asmallkatakanahalfwidth]
+  16#F6D0       [/Macron]
+  16#E39        [/sarauuthai]
+  16#3218       [/khieukhaparenkorean]
+  16#981        [/candrabindubengali]
+  16#EA         [/ecircumflex]
+  16#1E8E       [/Ydotaccent]
+  16#FE8E       [/aleffinalarabic]
+  16#24C9       [/Tcircle]
+  16#339B       [/mumsquare]
+  16#26D        [/lhookretroflex]
+  16#313F       [/rieulphieuphkorean]
+  16#11         [/controlDC1]
+  16#F77A       [/Zsmall]
+  16#64C        [/dammatanarabic /dammatanaltonearabic /afii57452]
+  16#3F0        [/kappasymbolgreek]
+  16#FB59       [/pehmedialarabic]
+  16#A2B        [/phagurmukhi]
+  16#194        [/Gammaafrican]
+  16#F8FD       [/bracerightmid]
+  16#3066       [/tehiragana]
+  16#2194       [/arrowboth]
+  16#FF38       [/Xmonospace]
+  16#E0A        [/chochangthai]
+  16#573        [/cheharmenian]
+  16#317        [/acutebelowcmb]
+  16#952        [/anudattadeva]
+  16#BB         [/guillemotright]
+  16#6F6        [/sixpersian]
+  16#1E5F       [/rlinebelow]
+  16#FE5F       [/numbersignsmall]
+  16#249A       [/nineteenperiod]
+  16#49A        [/Kadescendercyrillic]
+  16#3110       [/jbopomofo]
+  16#261D       [/pointingindexupwhite]
+  16#3C1        [/rho]
+  16#FB2A       [/shinshindothebrew /shinshindot /afii57694]
+  16#165        [/tcaron]
+  16#2165       [/Sixroman]
+  16#FF09       [/parenrightmonospace]
+  16#544        [/Menarmenian]
+  16#2E8        [/tonebarlowmod]
+  16#923        [/nnadeva]
+  16#F7F5       [/Otildesmall]
+  16#FE30       [/twodotleadervertical]
+  16#1E30       [/Kacute]
+  16#46B        [/yusbigcyrillic]
+  16#246B       [/twelvecircle]
+  16#AA6        [/dagujarati]
+  16#20F        [/oinvertedbreve]
+  16#220F       [/product]
+  16#30E1       [/mekatakana]
+  16#392        [/Beta]
+  16#3264       [/mieumcirclekorean]
+  16#9CD        [/viramabengali]
+  16#136        [/Kcommaaccent /Kcedilla]
+  16#3008       [/anglebracketleft]
+  16#FEDA       [/kaffinalarabic]
+  16#1EDA       [/Ohornacute]
+  16#2B9        [/primemod]
+  16#318B       [/yuyekorean]
+  16#5D         [/bracketright]
+  16#698        [/jeharabic /afii57508]
+  16#1E01       [/aringbelow]
+  16#43C        [/emcyrillic /afii10078]
+  16#FBA5       [/hehhamzaabovefinalarabic]
+  16#21E0       [/arrowdashleft]
+  16#1E0        [/Adotmacron]
+  16#30B2       [/gekatakana]
+  16#FF84       [/tokatakanahalfwidth]
+  16#F6ED       [/isuperior]
+  16#E56        [/sixthai]
+  16#25BF       [/whitedownpointingsmalltriangle]
+  16#5BF        [/rafehebrew /rafe /afii57841]
+  16#3235       [/ideographicspecialparen]
+  16#99E        [/nyabengali]
+  16#107        [/cacute]
+  16#1EAB       [/acircumflextilde]
+  16#24E6       [/wcircle]
+  16#4E6        [/Odieresiscyrillic]
+  16#33B8       [/kvsquare]
+  16#28A        [/upsilonlatin]
+  16#228A       [/subsetnotequal]
+  16#315C       [/ukorean]
+  16#202E       [/afii61575]
+  16#2E         [/period]
+  16#2669       [/quarternote]
+  16#669        [/ninearabic /ninehackarabic /afii57401]
+  16#A48        [/aimatragurmukhi]
+  16#1B1        [/Upsilonafrican]
+  16#3083       [/yasmallhiragana]
+  16#FF55       [/umonospace]
+  16#F6BE       [/dotlessj]
+  16#E27        [/wowaenthai]
+  16#2590       [/rtblock]
+  16#334        [/tildeoverlaycmb]
+  16#3206       [/siosparenkorean]
+  16#96F        [/ninedeva]
+  16#D8         [/Oslash]
+  16#2713       [/checkmark]
+  16#1E7C       [/Vtilde]
+  16#4B7        [/chedescendercyrillic]
+  16#24B7       [/Bcircle]
+  16#3389       [/kcalsquare]
+  16#25B        [/eopen]
+  16#F768       [/Hsmall]
+  16#263A       [/whitesmilingface /smileface]
+  16#63A        [/ghainarabic /afii57434]
+  16#3DE        [/Koppagreek]
+  16#FB47       [/qofdageshhebrew /qofdagesh]
+  16#A19        [/ngagurmukhi]
+  16#182        [/Btopbar]
+  16#F8EB       [/parenlefttp]
+  16#3054       [/gohiragana]
+  16#FF26       [/Fmonospace]
+  16#561        [/aybarmenian]
+  16#FCCA       [/lamhahinitialarabic]
+  16#2561       [/SF190000]
+  16#2305       [/projective]
+  16#305        [/overlinecmb]
+  16#940        [/iivowelsigndeva]
+  16#20A9       [/won]
+  16#A9         [/copyright]
+  16#FE4D       [/lowlinedashed]
+  16#1E4D       [/otildeacute]
+  16#2488       [/oneperiod]
+  16#AC3        [/rvocalicvowelsigngujarati]
+  16#222C       [/dblintegral]
+  16#30FE       [/voicediterationkatakana]
+  16#F739       [/nineoldstyle]
+  16#3AF        [/iotatonos]
+  16#9EA        [/fourbengali]
+  16#2153       [/onethird]
+  16#153        [/oe]
+  16#3025       [/fivehangzhou]
+  16#278E       [/fivecircleinversesansserif]
+  16#1EF7       [/yhookabove]
+  16#FEF7       [/lamalefhamzaaboveisolatedarabic]
+  16#532        [/Benarmenian]
+  16#2D6        [/plusmod]
+  16#911        [/ocandradeva]
+  16#207A       [/plussuperior]
+  16#F7E3       [/Atildesmall]
+  16#7A         [/z]
+  16#1E1E       [/Fdotaccent]
+  16#459        [/ljecyrillic /afii10106]
+  16#332B       [/paasentosquare]
+  16#A94        [/augujarati]
+  16#1FD        [/aeacute]
+  16#30CF       [/hakatakana]
+  16#5DC        [/lamedhebrew /lamed /afii57676]
+  16#124        [/Hcircumflex]
+  16#F88D       [/maithoupperleftthai]
+  16#FEC8       [/zahmedialarabic]
+  16#1EC8       [/Ihookabove]
+  16#33D5       [/squaremil]
+  16#2A7        [/tesh]
+  16#3179       [/kapyeounssangpieupkorean]
+  16#4B         [/K]
+  16#F7B4       [/Acutesmall]
+  16#686        [/tcheharabic /afii57507]
+  16#42A        [/afii10044 /Hardsigncyrillic]
+  16#FB93       [/gaffinalarabic]
+  16#1CE        [/acaron]
+  16#FF72       [/ikatakanahalfwidth]
+  16#F6DB       [/trademarkserif]
+  16#E44        [/saraaimaimalaithai]
+  16#5AD        [/dehihebrew]
+  16#3223       [/fourideographicparen]
+  16#98C        [/lvocalicbengali]
+  16#F5         [/otilde]
+  16#1E99       [/yring]
+  16#24D4       [/ecircle]
+  16#4D4        [/Aiecyrillic]
+  16#33A6       [/kmcubedsquare]
+  16#278        [/philatin]
+  16#314A       [/chieuchkorean]
+  16#1C         [/controlFS]
+  16#201C       [/quotedblleft]
+  16#A36        [/shagurmukhi]
+  16#19F        [/Ocenteredtilde]
+  16#3071       [/pahiragana]
+  16#FF43       [/cmonospace]
+  16#E15        [/totaothai]
+  16#57E        [/vewarmenian]
+  16#322        [/hookretroflexbelowcmb]
+  16#95D        [/rhadeva]
+  16#C6         [/AE]
+  16#FE6A       [/percentsmall]
+  16#1E6A       [/Tdotaccent]
+  16#24A5       [/jparen]
+  16#FC0E       [/tehmeemisolatedarabic]
+  16#4A5        [/enghecyrillic]
+  16#AE0        [/rrvocalicgujarati]
+  16#311B       [/obopomofo]
+  16#628        [/afii57416 /beharabic]
+  16#3CC        [/omicrontonos]
+  16#FB35       [/vavdageshhebrew /vavdagesh65 /vavdagesh /afii57723]
+  16#329E       [/ideographicprintcircle]
+  16#A07        [/igurmukhi]
+  16#2170       [/oneroman]
+  16#170        [/Uhungarumlaut /Udblacute]
+  16#3042       [/ahiragana]
+  16#FF14       [/fourmonospace]
+  16#54F        [/Tiwnarmenian]
+  16#92E        [/madeva]
+  16#6D2        [/yehbarreearabic /afii57519]
+  16#1E3B       [/llinebelow]
+  16#FE3B       [/blacklenticularbracketleftvertical]
+  16#2476       [/threeparen]
+  16#476        [/Izhitsadblgravecyrillic]
+  16#221A       [/radical]
+  16#30EC       [/rekatakana]
+  16#39D        [/Nu]
+  16#326F       [/nieunacirclekorean]
+  16#141        [/Lslash]
+  16#3013       [/getamark]
+  16#1EE5       [/udotbelow]
+  16#2C4        [/arrowheadupmod]
+  16#68         [/h]
+  16#1E0C       [/Ddotbelow]
+  16#447        [/checyrillic /afii10089]
+  16#A82        [/anusvaragujarati]
+  16#1EB        [/oogonek]
+  16#30BD       [/sokatakana]
+  16#FF8F       [/makatakanahalfwidth]
+  16#F6F8       [/Hungarumlautsmall]
+  16#25CA       [/lozenge]
+  16#3240       [/ideographicfestivalparen]
+  16#112        [/Emacron]
+  16#FEB6       [/sheenfinalarabic]
+  16#1EB6       [/Abrevedotbelow]
+  16#4F1        [/udieresiscyrillic]
+  16#33C3       [/bqsquare]
+  16#2295       [/pluscircle /circleplus]
+  16#295        [/glottalstopreversed]
+  16#3167       [/nieunsioskorean]
+  16#2039       [/guilsinglleft]
+  16#F7A2       [/centoldstyle]
+  16#39         [/nine]
+  16#418        [/afii10026 /Iicyrillic]
+  16#21BC       [/harpoonleftbarbup]
+  16#1BC        [/Tonefive]
+  16#308E       [/wasmallhiragana]
+  16#F6C9       [/Acute]
+  16#E32        [/saraaathai]
+  16#59B        [/tevirlefthebrew /tevirhebrew]
+  16#33F        [/dbloverlinecmb]
+  16#3211       [/rieulaparenkorean]
+  16#E3         [/atilde]
+  16#1E87       [/wdotaccent]
+  16#4C2        [/zhebrevecyrillic]
+  16#24C2       [/Mcircle]
+  16#3394       [/thzsquare]
+  16#2266       [/lessoverequal]
+  16#266        [/hhook]
+  16#3138       [/ssangtikeutkorean]
+  16#A          [/controlLF]
+  16#F773       [/Ssmall]
+  16#645        [/meemarabic /afii57445]
+  16#3E9        [/horicoptic]
+  16#A24        [/tagurmukhi]
+  16#18D        [/deltaturned]
+  16#F8F6       [/parenrighttp]
+  16#305F       [/tahiragana]
+  16#FF31       [/Qmonospace]
+  16#E03        [/khokhuatthai]
+  16#56C        [/liwnarmenian]
+  16#FCD5       [/noonmeeminitialarabic]
+  16#256C       [/SF440000]
+  16#2310       [/revlogicalnot /logicalnotreversed]
+  16#310        [/candrabinducmb]
+  16#94B        [/ovowelsigndeva]
+  16#B4         [/acute]
+  16#1E58       [/Rdotaccent]
+  16#2493       [/twelveperiod]
+  16#493        [/ghestrokecyrillic]
+  16#2237       [/proportion]
+  16#3109       [/dbopomofo]
+  16#3BA        [/kappa]
+  16#328C       [/ideographwatercircle]
+  16#9F5        [/twonumeratorbengali]
+  16#215E       [/seveneighths]
+  16#15E        [/Scedilla]
+  16#FF02       [/quotedblmonospace]
+  16#53D        [/Xeharmenian]
+  16#91C        [/jadeva]
+  16#2085       [/fiveinferior]
+  16#F7EE       [/Icircumflexsmall]
+  16#1E29       [/hcedilla]
+  16#2464       [/fivecircle]
+  16#464        [/Eiotifiedcyrillic]
+  16#3336       [/hekutaarusquare]
+  16#A9F        [/ttagujarati]
+  16#208        [/Idblgrave]
+  16#2208       [/element]
+  16#30DA       [/pekatakana]
+  16#5E7        [/qofhebrew /qof /afii57687]
+  16#12F        [/iogonek]
+  16#F898       [/thanthakhatlowleftthai]
+  16#3001       [/ideographiccomma]
+  16#1ED3       [/ocircumflexgrave]
+  16#FED3       [/fehinitialarabic]
+  16#2B2        [/jsuperior]
+  16#3184       [/kapyeounphieuphkorean]
+  16#56         [/V]
+  16#F7BF       [/questiondownsmall]
+  16#691        [/rreharabic /afii57513]
+  16#FDFA       [/sallallahoualayhewasallamarabic]
+  16#435        [/iecyrillic /afii10070]
+  16#A70        [/tippigurmukhi]
+  16#1D9        [/Udieresiscaron]
+  16#30AB       [/kakatakana]
+  16#FF7D       [/sukatakanahalfwidth]
+  16#F6E6       [/hyphensuperior]
+  16#E4F        [/fongmanthai]
+  16#5B8        [/qamatswidehebrew /qamatsquarterhebrew /qamatsqatanwidehebrew /qamatsqatanquarterhebrew /qamatsqatannarrowhebrew /qamatsqatanhebrew /qamatsnarrowhebrew /qamatshebrew /qamatsde /qamats33 /qamats29 /qamats27 /qamats1c /qamats1a /qamats10 /qamats /afii57797]
+  16#322E       [/ideographicmetalparen]
+  16#997        [/gabengali]
+  16#100        [/Amacron]
+  16#FEA4       [/hahmedialarabic]
+  16#1EA4       [/Acircumflexacute]
+  16#4DF        [/zedieresiscyrillic]
+  16#24DF       [/pcircle]
+  16#33B1       [/nssquare]
+  16#FC48       [/meemmeemisolatedarabic]
+  16#2283       [/superset /propersuperset]
+  16#283        [/esh]
+  16#3155       [/yeokorean]
+  16#27         [/quotesingle]
+  16#662        [/twoarabic /twohackarabic /afii57394]
+  16#2662       [/diamondsuitwhite]
+  16#406        [/afii10055 /Icyrillic]
+  16#A41        [/umatragurmukhi]
+  16#1AA        [/eshreversedloop]
+  16#307C       [/bohiragana]
+  16#FF4E       [/nmonospace]
+  16#E20        [/phosamphaothai]
+  16#589        [/periodarmenian]
+  16#32D        [/circumflexbelowcmb]
+  16#968        [/twodeva]
+  16#D1         [/Ntilde]
+  16#1E75       [/utildebelow]
+  16#24B0       [/uparen]
+  16#4B0        [/Ustraightstrokecyrillic]
+  16#3382       [/muasquare]
+  16#AEB        [/fivegujarati]
+  16#254        [/oopen]
+  16#3126       [/erbopomofo]
+  16#F761       [/Asmall]
+  16#633        [/seenarabic /afii57427]
+  16#FB40       [/nundageshhebrew /nundagesh]
+  16#32A9       [/ideographicmedicinecircle]
+  16#217B       [/twelveroman]
+  16#17B        [/Zdotaccent /Zdot]
+  16#304D       [/kihiragana]
+  16#FF1F       [/questionmonospace]
+  16#55A        [/apostrophearmenian]
+  16#255A       [/SF380000]
+  16#939        [/hadeva]
+  16#20A2       [/cruzeiro]
+  16#A2         [/cent]
+  16#1E46       [/Ndotbelow]
+  16#481        [/koppacyrillic]
+  16#2481       [/fourteenparen]
+  16#ABC        [/nuktagujarati]
+  16#2225       [/parallel]
+  16#30F7       [/vakatakana]
+  16#F732       [/twooldstyle]
+  16#3A8        [/Psi]
+  16#327A       [/phieuphacirclekorean]
+  16#9E3        [/llvocalicvowelsignbengali]
+  16#14C        [/Omacron]
+  16#301E       [/quotedblprime]
+  16#FEF0       [/alefmaksurafinalarabic]
+  16#1EF0       [/Uhorndotbelow]
+  16#FC94       [/yehnoonfinalarabic]
+  16#22CF       [/curlyand]
+  16#2CF        [/acutelowmod]
+  16#90A        [/uudeva]
+  16#73         [/s]
+  16#1E17       [/emacronacute]
+  16#452        [/djecyrillic /afii10099]
+  16#A8D        [/ecandragujarati]
+  16#30C8       [/tokatakana]
+  16#FF9A       [/rekatakanahalfwidth]
+  16#5D5        [/vavhebrew /vav /afii57669]
+  16#FD3E       [/parenleftaltonearabic]
+  16#11D        [/gcircumflex]
+  16#F886       [/saraiileftthai]
+  16#1EC1       [/ecircumflexgrave]
+  16#33CE       [/squarekmcapital]
+  16#2A0        [/qhook]
+  16#3172       [/pieupkiyeokkorean]
+  16#2044       [/fraction]
+  16#44         [/D]
+  16#2423       [/blank]
+  16#423        [/afii10037 /Ucyrillic]
+  16#A5E        [/fagurmukhi]
+  16#1C7        [/LJ]
+  16#FF6B       [/osmallkatakanahalfwidth]
+  16#F6D4       [/cyrbreve]
+  16#25A6       [/squareorthogonalcrosshatchfill]
+  16#5A6        [/merkhakefulalefthebrew /merkhakefulahebrew]
+  16#321C       [/cieucuparenkorean]
+  16#985        [/abengali]
+  16#EE         [/icircumflex]
+  16#1E92       [/Zdotbelow]
+  16#FE92       [/behmedialarabic]
+  16#24CD       [/Xcircle]
+  16#339F       [/mmsquaredsquare]
+  16#271        [/mhook]
+  16#2271       [/notgreaternorequal]
+  16#3143       [/ssangpieupkorean]
+  16#2015       [/horizontalbar /afii00208]
+  16#15         [/controlNAK]
+  16#650        [/kasraarabic /afii57456]
+  16#A2F        [/yagurmukhi]
+  16#2198       [/arrowdownright]
+  16#198        [/Khook]
+  16#306A       [/nahiragana]
+  16#FF3C       [/backslashmonospace]
+  16#E0E        [/dochadathai]
+  16#577        [/shaarmenian]
+  16#31B        [/horncmb]
+  16#BF         [/questiondown]
+  16#1E63       [/sdotbelow]
+  16#FE63       [/hyphensmall]
+  16#249E       [/cparen]
+  16#49E        [/Kastrokecyrillic]
+  16#3114       [/chbopomofo]
+  16#FFE6       [/wonmonospace]
+  16#621        [/hamzalowarabic /hamzaarabic /afii57409]
+  16#3C5        [/upsilon]
+  16#FB2E       [/alefpatahhebrew]
+  16#169        [/utilde]
+  16#2169       [/Tenroman]
+  16#FF0D       [/hyphenmonospace]
+  16#548        [/Voarmenian]
+  16#927        [/dhadeva]
+  16#F7F9       [/Ugravesmall]
+  16#FE34       [/wavyunderscorevertical]
+  16#1E34       [/Klinebelow]
+  16#246F       [/sixteencircle]
+  16#46F        [/ksicyrillic]
+  16#AAA        [/pagujarati]
+  16#213        [/rinvertedbreve]
+  16#2213       [/minusplus]
+  16#30E5       [/yusmallkatakana]
+  16#5F2        [/yodyodhebrew /afii57718]
+  16#396        [/Zeta]
+  16#3268       [/cieuccirclekorean]
+  16#13A        [/lacute]
+  16#300C       [/cornerbracketleft]
+  16#FEDE       [/lamfinalarabic]
+  16#1EDE       [/Ohornhookabove]
+  16#2BD        [/commareversedmod /afii64937]
+  16#61         [/a]
+  16#1E05       [/bdotbelow]
+  16#440        [/ercyrillic /afii10082]
+  16#FBA9       [/hehmedialaltonearabic]
+  16#21E4       [/arrowtableft]
+  16#1E4        [/Gstroke]
+  16#30B6       [/zakatakana]
+  16#FF88       [/nekatakanahalfwidth]
+  16#F6F1       [/rsuperior]
+  16#E5A        [/angkhankhuthai]
+  16#25C3       [/whiteleftpointingsmalltriangle]
+  16#5C3        [/sofpasuqhebrew /afii57658]
+  16#3239       [/ideographicrepresentparen]
+  16#9A2        [/ddhabengali]
+  16#10B        [/cdotaccent /cdot]
+  16#1EAF       [/abreveacute]
+  16#4EA        [/Obarreddieresiscyrillic]
+  16#33BC       [/muwsquare]
+  16#28E        [/yturned]
+  16#3160       [/yukorean]
+  16#2032       [/minute]
+  16#32         [/two]
+  16#266D       [/musicflatsign]
+  16#66D        [/asteriskaltonearabic /asteriskarabic /afii63167]
+  16#411        [/afii10018 /Becyrillic]
+  16#A4C        [/aumatragurmukhi]
+  16#1B5        [/Zstroke]
+  16#21B5       [/carriagereturn]
+  16#3087       [/yosmallhiragana]
+  16#FF59       [/ymonospace]
+  16#E2B        [/hohipthai]
+  16#594        [/zaqefqatanhebrew]
+  16#338        [/soliduslongoverlaycmb]
+  16#320A       [/khieukhparenkorean]
+  16#DC         [/Udieresis]
+  16#1E80       [/Wgrave]
+  16#4BB        [/shhacyrillic]
+  16#24BB       [/Fcircle]
+  16#338D       [/mugsquare]
+  16#25F        [/jdotlessstroke]
+  16#3131       [/kiyeokkorean]
+  16#3          [/controlETX]
+  16#F76C       [/Lsmall]
+  16#3E2        [/Sheicoptic]
+  16#FB4B       [/vavholamhebrew /vavholam /afii57700]
+  16#A1D        [/jhagurmukhi]
+  16#186        [/Oopen]
+  16#F8EF       [/bracketleftex]
+  16#3058       [/zihiragana]
+  16#FF2A       [/Jmonospace]
+  16#565        [/echarmenian]
+  16#2565       [/SF480000]
+  16#309        [/hookcmb /hookabovecomb]
+  16#944        [/rrvocalicvowelsigndeva]
+  16#AD         [/softhyphen /sfthyphen]
+  16#1E51       [/omacrongrave]
+  16#248C       [/fiveperiod]
+  16#AC7        [/evowelsigngujarati]
+  16#260F       [/whitetelephone]
+  16#3B3        [/gamma]
+  16#9EE        [/eightbengali]
+  16#157        [/rcommaaccent /rcedilla]
+  16#3029       [/ninehangzhou]
+  16#2792       [/ninecircleinversesansserif]
+  16#FEFB       [/lamalefisolatedarabic]
+  16#536        [/Zaarmenian]
+  16#FC9F       [/behmeeminitialarabic]
+  16#22DA       [/lessequalorgreater]
+  16#2DA        [/ring]
+  16#915        [/kadeva]
+  16#207E       [/parenrightsuperior]
+  16#F7E7       [/Ccedillasmall]
+  16#7E         [/asciitilde]
+  16#1E22       [/Hdotaccent]
+  16#A98        [/ghagujarati]
+  16#201        [/adblgrave]
+  16#30D3       [/bikatakana]
+  16#5E0        [/nunhebrew /nun /afii57680]
+  16#384        [/tonos]
+  16#9BF        [/ivowelsignbengali]
+  16#128        [/Itilde]
+  16#F891       [/maitrilowrightthai]
+  16#FECC       [/ainmedialarabic]
+  16#1ECC       [/Odotbelow]
+  16#317D       [/siospieupkorean]
+  16#4F         [/O]
+  16#F7B8       [/Cedillasmall]
+  16#42E        [/afii10048 /IUcyrillic]
+  16#3300       [/apaatosquare]
+  16#A69        [/threegurmukhi]
+  16#1D2        [/ocaron]
+  16#21D2       [/dblarrowright /arrowdblright]
+  16#30A4       [/ikatakana]
+  16#FF76       [/kakatakanahalfwidth]
+  16#F6DF       [/centinferior]
+  16#E48        [/maiekthai]
+  16#5B1        [/hatafsegolwidehebrew /hatafsegolquarterhebrew /hatafsegolnarrowhebrew /hatafsegolhebrew /hatafsegol30 /hatafsegol24 /hatafsegol17 /hatafsegol /afii57801]
+  16#3227       [/eightideographicparen]
+  16#990        [/aibengali]
+  16#F9         [/ugrave]
+  16#24D8       [/icircle]
+  16#4D8        [/Schwacyrillic]
+  16#33AA       [/kpasquare]
+  16#27C        [/rlongleg]
+  16#314E       [/hieuhkorean]
+  16#20         [/spacehackarabic /space]
+  16#2020       [/dagger]
+  16#FB68       [/ttehinitialarabic]
+  16#1A3        [/oi]
+  16#3075       [/huhiragana]
+  16#FF47       [/gmonospace]
+  16#E19        [/nonuthai]
+  16#582        [/yiwnarmenian]
+  16#2326       [/deleteright]
+  16#961        [/llvocalicdeva]
+  16#CA         [/Ecircumflex]
+  16#1E6E       [/Tlinebelow]
+  16#24A9       [/nparen]
+  16#4A9        [/haabkhasiancyrillic]
+  16#337B       [/heiseierasquare]
+  16#311F       [/eibopomofo]
+  16#62C        [/jeemarabic /afii57420]
+  16#3D0        [/betasymbolgreek]
+  16#FB39       [/yoddageshhebrew /yoddagesh]
+  16#2174       [/fiveroman]
+  16#174        [/Wcircumflex]
+  16#3046       [/uhiragana]
+  16#FF18       [/eightmonospace]
+  16#553        [/Piwrarmenian]
+  16#2553       [/SF520000]
+  16#932        [/ladeva]
+  16#1E3F       [/macute]
+  16#FE3F       [/anglebracketleftvertical]
+  16#247A       [/sevenparen]
+  16#47A        [/Omegaroundcyrillic]
+  16#AB5        [/vagujarati]
+  16#221E       [/infinity]
+  16#30F0       [/wikatakana]
+  16#3A1        [/Rho]
+  16#3273       [/pieupacirclekorean]
+  16#9DC        [/rrabengali]
+  16#145        [/Ncommaaccent /Ncedilla]
+  16#3017       [/whitelenticularbracketright]
+  16#1EE9       [/uhornacute]
+  16#2524       [/SF090000]
+  16#FC8D       [/noonnoonfinalarabic]
+  16#2C8        [/verticallinemod]
+  16#903        [/visargadeva]
+  16#6C         [/l]
+  16#1E10       [/Dcedilla]
+  16#44B        [/yericyrillic /afii10093]
+  16#A86        [/aagujarati]
+  16#1EF        [/ezhcaron]
+  16#30C1       [/tikatakana]
+  16#FF93       [/mokatakanahalfwidth]
+  16#F6FC       [/Ringsmall]
+  16#25CE       [/bullseye]
+  16#9AD        [/bhabengali]
+  16#2116       [/numero /afii61352]
+  16#116        [/Edotaccent /Edot]
+  16#FEBA       [/sadfinalarabic]
+  16#1EBA       [/Ehookabove]
+  16#4F5        [/chedieresiscyrillic]
+  16#FC5E       [/shaddadammatanarabic]
+  16#33C7       [/cosquare]
+  16#2299       [/circleot]
+  16#316B       [/rieulpieupsioskorean]
+  16#3D         [/equal]
+  16#41C        [/afii10030 /Emcyrillic]
+  16#21C0       [/harpoonrightbarbup]
+  16#1C0        [/clickdental]
+  16#3092       [/wohiragana]
+  16#FF64       [/ideographiccommaleft]
+  16#F6CD       [/DieresisGrave]
+  16#E36        [/sarauethai]
+  16#59F        [/qarneyparahebrew]
+  16#343        [/koroniscmb]
+  16#3215       [/ieungaparenkorean]
+  16#E7         [/ccedilla]
+  16#FE8B       [/yehhamzaaboveinitialarabic]
+  16#1E8B       [/xdotaccent]
+  16#24C6       [/Qcircle]
+  16#3398       [/klsquare]
+  16#226A       [/muchless]
+  16#313C       [/rieulpieupkorean]
+  16#E          [/controlSO]
+  16#200E       [/afii299]
+  16#F777       [/Wsmall]
+  16#649        [/alefmaksuraarabic /afii57449]
+  16#3ED        [/shimacoptic]
+  16#A28        [/nagurmukhi]
+  16#191        [/Fhook]
+  16#F8FA       [/bracketrightex]
+  16#3063       [/tusmallhiragana]
+  16#2191       [/arrowup]
+  16#FF35       [/Umonospace]
+  16#E07        [/ngonguthai]
+  16#570        [/hoarmenian]
+  16#314        [/commareversedabovecmb]
+  16#B8         [/cedilla]
+  16#6F3        [/threepersian]
+  16#FE5C       [/bracerightsmall]
+  16#1E5C       [/Rdotbelowmacron]
+  16#2497       [/sixteenperiod]
+  16#497        [/zhedescendercyrillic]
+  16#310D       [/gbopomofo]
+  16#3BE        [/xi]
+  16#3290       [/ideographsuncircle]
+  16#9F9        [/sixteencurrencydenominatorbengali]
+  16#162        [/Tcommaaccent /Tcedilla]
+  16#2162       [/Threeroman]
+  16#FF06       [/ampersandmonospace]
+  16#541        [/Jaarmenian]
+  16#2E5        [/tonebarextrahighmod]
+  16#920        [/tthadeva]
+  16#2089       [/nineinferior]
+  16#F7F2       [/Ogravesmall]
+  16#1E2D       [/itildebelow]
+  16#2468       [/ninecircle]
+  16#468        [/Yuslittleiotifiedcyrillic]
+  16#AA3        [/nnagujarati]
+  16#220C       [/notcontains]
+  16#20C        [/Odblgrave]
+  16#30DE       [/makatakana]
+  16#38F        [/Omegatonos]
+  16#3261       [/nieuncirclekorean]
+  16#133        [/ij]
+  16#3005       [/ideographiciterationmark]
+  16#FED7       [/qafinitialarabic]
+  16#1ED7       [/ocircumflextilde]
+  16#2B6        [/Rsmallinvertedsuperior]
+  16#3188       [/yoyaekorean]
+  16#5A         [/Z]
+  16#439        [/iishortcyrillic /afii10075]
+  16#A74        [/ekonkargurmukhi]
+  16#1DD        [/eturned]
+  16#30AF       [/kukatakana]
+  16#FF81       [/tikatakanahalfwidth]
+  16#F6EA       [/bsuperior]
+  16#E53        [/threethai]
+  16#25BC       [/triagdn /blackdownpointingtriangle]
+  16#5BC        [/dageshhebrew /dagesh /afii57807]
+  16#360        [/tildedoublecmb]
+  16#3232       [/ideographichaveparen]
+  16#99B        [/chabengali]
+  16#104        [/Aogonek]
+  16#FEA8       [/khahmedialarabic]
+  16#1EA8       [/Acircumflexhookabove]
+  16#24E3       [/tcircle]
+  16#4E3        [/imacroncyrillic]
+  16#33B5       [/nvsquare]
+  16#287        [/tturned]
+  16#2287       [/supersetorequal /reflexsuperset]
+  16#3159       [/waekorean]
+  16#2B         [/plus]
+  16#666        [/sixhackarabic /sixarabic /afii57398]
+  16#2666       [/diamond]
+  16#40A        [/afii10059 /Njecyrillic]
+  16#1AE        [/Tretroflexhook]
+  16#3080       [/muhiragana]
+  16#FF52       [/rmonospace]
+  16#E24        [/ruthai]
+  16#331        [/macronbelowcmb]
+  16#3203       [/rieulparenkorean]
+  16#96C        [/sixdeva]
+  16#D5         [/Otilde]
+  16#1E79       [/utildeacute]
+  16#24B4       [/yparen]
+  16#4B4        [/Tetsecyrillic]
+  16#3386       [/MBsquare]
+  16#AEF        [/ninegujarati]
+  16#258        [/ereversed]
+  16#F765       [/Esmall]
+  16#637        [/taharabic /afii57431]
+  16#FB44       [/pedageshhebrew /pedagesh]
+  16#A16        [/khagurmukhi]
+  16#17F        [/slong /longs]
+  16#F8E8       [/registersans]
+  16#3051       [/kehiragana]
+  16#FF23       [/Cmonospace]
+  16#55E        [/questionarmenian]
+  16#255E       [/SF360000]
+  16#2302       [/house]
+  16#302        [/circumflexcmb]
+  16#93D        [/avagrahadeva]
+  16#A6         [/brokenbar]
+  16#FE4A       [/overlinecenterline]
+  16#1E4A       [/Ncircumflexbelow]
+  16#485        [/dasiapneumatacyrilliccmb]
+  16#2485       [/eighteenparen]
+  16#3357       [/wattosquare]
+  16#AC0        [/iivowelsigngujarati]
+  16#2229       [/intersection]
+  16#30FB       [/dotkatakana]
+  16#F736       [/sixoldstyle]
+  16#3AC        [/alphatonos]
+  16#9E7        [/onebengali]
+  16#150        [/Ohungarumlaut /Odblacute]
+  16#3022       [/twohangzhou]
+  16#278B       [/twocircleinversesansserif]
+  16#FEF4       [/yehmedialarabic /alefmaksuramedialarabic]
+  16#1EF4       [/Ydotbelow]
+  16#2D3        [/ringhalfleftcentered]
+  16#90E        [/eshortdeva]
+  16#2077       [/sevensuperior]
+  16#F7E0       [/Agravesmall]
+  16#77         [/w]
+  16#1E1B       [/etildebelow]
+  16#456        [/icyrillic /afii10103]
+  16#A91        [/ocandragujarati]
+  16#1FA        [/Aringacute]
+  16#30CC       [/nukatakana]
+  16#FF9E       [/voicedmarkkanahalfwidth]
+  16#5D9        [/yodhebrew /yod /afii57673]
+  16#25D9       [/whitecircleinverse /invcircle]
+  16#9B8        [/sabengali]
+  16#2121       [/telephone]
+  16#F88A       [/maiekupperleftthai]
+  16#121        [/gdotaccent /gdot]
+  16#1EC5       [/ecircumflextilde]
+  16#2500       [/SF100000]
+  16#33D2       [/squarelog]
+  16#22A4       [/tackdown]
+  16#2A4        [/dezh]
+  16#3176       [/pieupcieuckorean]
+  16#48         [/H]
+  16#427        [/afii10041 /Checyrillic]
+  16#1CB        [/Nj]
+  16#309D       [/iterationhiragana]
+  16#FF6F       [/tusmallkatakanahalfwidth]
+  16#F6D8       [/dieresisgrave]
+  16#E41        [/saraaethai]
+  16#5AA        [/yerahbenyomolefthebrew /yerahbenyomohebrew]
+  16#25AA       [/blacksmallsquare /H18543]
+  16#3220       [/oneideographicparen]
+  16#989        [/ubengali]
+  16#F2         [/ograve]
+  16#FE96       [/tehfinalarabic]
+  16#1E96       [/hlinebelow]
+  16#4D1        [/abrevecyrillic]
+  16#24D1       [/bcircle]
+  16#33A3       [/mmcubedsquare]
+  16#275        [/obarred]
+  16#3147       [/ieungkorean]
+  16#19         [/controlEM]
+  16#2019       [/quoteright]
+  16#19C        [/Mturned]
+  16#306E       [/nohiragana]
+  16#FF40       [/gravemonospace]
+  16#E12        [/thophuthaothai]
+  16#57B        [/jheharmenian]
+  16#31F        [/plusbelowcmb]
+  16#95A        [/ghhadeva]
+  16#C3         [/Atilde]
+  16#1E67       [/scarondotaccent]
+  16#24A2       [/gparen]
+  16#FC0B       [/tehjeemisolatedarabic]
+  16#4A2        [/Endescendercyrillic]
+  16#3118       [/cbopomofo]
+  16#625        [/afii57413 /alefhamzabelowarabic]
+  16#3C9        [/omega]
+  16#FB32       [/gimeldagesh /gimeldageshhebrew]
+  16#16D        [/ubreve]
+  16#FF11       [/onemonospace]
+  16#54C        [/Raarmenian]
+  16#92B        [/phadeva]
+  16#F7FD       [/Yacutesmall]
+  16#FE38       [/bracerightvertical]
+  16#1E38       [/Ldotbelowmacron]
+  16#2473       [/twentycircle]
+  16#473        [/fitacyrillic /afii10195]
+  16#AAE        [/magujarati]
+  16#217        [/uinvertedbreve]
+  16#2217       [/asteriskmath]
+  16#30E9       [/rakatakana]
+  16#F724       [/dollaroldstyle]
+  16#39A        [/Kappa]
+  16#FB03       [/ffi]
+  16#326C       [/phieuphcirclekorean]
+  16#13E        [/lcaron]
+  16#3010       [/blacklenticularbracketleft]
+  16#FEE2       [/meemfinalarabic]
+  16#1EE2       [/Ohorndotbelow]
+  16#2C1        [/glottalstopreversedmod]
+  16#65         [/e]
+  16#1E09       [/ccedillaacute]
+  16#444        [/efcyrillic /afii10086]
+  16#3316       [/kiromeetorusquare]
+  16#21E8       [/arrowrightwhite]
+  16#1E8        [/Kcaron]
+  16#30BA       [/zukatakana]
+  16#FF8C       [/hukatakanahalfwidth]
+  16#F6F5       [/Caronsmall]
+  16#25C7       [/whitediamond]
+  16#323D       [/ideographicenterpriseparen]
+  16#9A6        [/dabengali]
+  16#10F        [/dcaron]
+  16#FEB3       [/seeninitialarabic]
+  16#1EB3       [/abrevehookabove]
+  16#4EE        [/Umacroncyrillic]
+  16#33C0       [/kohmsquare]
+  16#292        [/ezh]
+  16#3164       [/hangulfiller]
+  16#36         [/six]
+  16#415        [/afii10022 /Iecyrillic]
+  16#1B9        [/ezhreversed]
+  16#308B       [/ruhiragana]
+  16#FF5D       [/bracerightmonospace]
+  16#F6C6       [/afii10192]
+  16#E2F        [/paiyannoithai]
+  16#598        [/zarqahebrew]
+  16#33C        [/seagullbelowcmb]
+  16#320E       [/kiyeokaparenkorean]
+  16#E0         [/agrave]
+  16#FE84       [/alefhamzaabovefinalarabic]
+  16#1E84       [/Wdieresis]
+  16#4BF        [/chedescenderabkhasiancyrillic]
+  16#24BF       [/Jcircle]
+  16#3391       [/khzsquare]
+  16#263        [/gammalatinsmall]
+  16#3135       [/nieuncieuckorean]
+  16#7          [/controlBEL]
+  16#F770       [/Psmall]
+  16#642        [/qafarabic /afii57442]
+  16#2642       [/mars /male]
+  16#3E6        [/Kheicoptic]
+  16#FB4F       [/aleflamedhebrew]
+  16#A21        [/ddagurmukhi]
+  16#18A        [/Dhook]
+  16#F8F3       [/braceleftbt]
+  16#305C       [/zehiragana]
+  16#FF2E       [/Nmonospace]
+  16#569        [/toarmenian]
+  16#FCD2       [/noonjeeminitialarabic]
+  16#2569       [/SF400000]
+  16#30D        [/verticallineabovecmb]
+  16#948        [/aivowelsigndeva]
+  16#B1         [/plusminus]
+  16#1E55       [/pacute]
+  16#FE55       [/colonsmall]
+  16#2490       [/nineperiod]
+  16#490        [/afii10050 /Gheupturncyrillic]
+  16#ACB        [/ovowelsigngujarati]
+  16#2234       [/therefore]
+  16#3106       [/pbopomofo]
+  16#3B7        [/eta]
+  16#FB20       [/ayinaltonehebrew]
+  16#9F2        [/rupeemarkbengali]
+  16#15B        [/sacute]
+  16#215B       [/oneeighth]
+  16#FEFF       [/zerowidthjoiner]
+  16#53A        [/Zhearmenian]
+  16#2DE        [/rhotichookmod]
+  16#919        [/ngadeva]
+  16#2082       [/twoinferior]
+  16#F7EB       [/Edieresissmall]
+  16#1E26       [/Hdieresis]
+  16#2461       [/twocircle]
+  16#461        [/omegacyrillic]
+  16#3333       [/huiitosquare]
+  16#A9C        [/jagujarati]
+  16#205        [/edblgrave]
+  16#2205       [/emptyset]
+  16#30D7       [/pukatakana]
+  16#5E4        [/pe /pehebrew /afii57684]
+  16#25E4       [/blackupperlefttriangle]
+  16#388        [/Epsilontonos]
+  16#9C3        [/rvocalicvowelsignbengali]
+  16#12C        [/Ibreve]
+  16#F895       [/maichattawalowleftthai]
+  16#FED0       [/ghainmedialarabic]
+  16#1ED0       [/Ocircumflexacute]
+  16#33DD       [/wbsquare]
+  16#3181       [/yesieungkorean]
+  16#53         [/S]
+  16#432        [/vecyrillic /afii10067]
+  16#A6D        [/sevengurmukhi]
+  16#1D6        [/udieresismacron]
+  16#30A8       [/ekatakana]
+  16#FF7A       [/kokatakanahalfwidth]
+  16#F6E3       [/dollarinferior]
+  16#E4C        [/thanthakhatthai]
+  16#5B5        [/tsere /tserewidehebrew /tserequarterhebrew /tserenarrowhebrew /tserehebrew /tsere2b /tsere1e /tsere12 /afii57794]
+  16#25B5       [/whiteuppointingsmalltriangle]
+  16#322B       [/ideographicfireparen]
+  16#994        [/aubengali]
+  16#FD         [/yacute]
+  16#1EA1       [/adotbelow]
+  16#24DC       [/mcircle]
+  16#4DC        [/Zhedieresiscyrillic]
+  16#33AE       [/radoverssquare]
+  16#2280       [/notprecedes]
+  16#3152       [/yaekorean]
+  16#2024       [/onedotenleader]
+  16#24         [/dollar]
+  16#403        [/afii10052 /Gjecyrillic]
+  16#FB6C       [/vehinitialarabic]
+  16#A3E        [/aamatragurmukhi]
+  16#1A7        [/Tonetwo]
+  16#3079       [/behiragana]
+  16#FF4B       [/kmonospace]
+  16#E1D        [/fofathai]
+  16#586        [/feharmenian]
+  16#32A        [/bridgebelowcmb]
+  16#232A       [/angleright]
+  16#965        [/dbldanda]
+  16#CE         [/Icircumflex]
+  16#1E72       [/Udieresisbelow]
+  16#4AD        [/tedescendercyrillic]
+  16#24AD       [/rparen]
+  16#337F       [/corporationsquare]
+  16#AE8        [/twogujarati]
+  16#2251       [/geometricallyequal]
+  16#251        [/ascript]
+  16#3123       [/enbopomofo]
+  16#630        [/thalarabic /afii57424]
+  16#3D4        [/Upsilondieresishooksymbolgreek]
+  16#32A6       [/ideographiclowcircle]
+  16#A0F        [/eegurmukhi]
+  16#2178       [/nineroman]
+  16#178        [/Ydieresis]
+  16#304A       [/ohiragana]
+  16#FF1C       [/lessmonospace]
+  16#2557       [/SF250000]
+  16#936        [/shadeva]
+  16#FE43       [/whitecornerbracketleftvertical]
+  16#1E43       [/mdotbelow]
+  16#247E       [/elevenparen]
+  16#47E        [/Otcyrillic]
+  16#AB9        [/hagujarati]
+  16#30F4       [/vukatakana]
+  16#3A5        [/Upsilon]
+  16#3277       [/chieuchacirclekorean]
+  16#9E0        [/rrvocalicbengali]
+  16#149        [/quoterightn /napostrophe]
+  16#1EED       [/uhornhookabove]
+  16#2CC        [/verticallinelowmod]
+  16#907        [/ideva]
+  16#2070       [/zerosuperior]
+  16#70         [/p]
+  16#1E14       [/Emacrongrave]
+  16#44F        [/iacyrillic /afii10097]
+  16#A8A        [/uugujarati]
+  16#1F3        [/dz]
+  16#30C5       [/dukatakana]
+  16#FF97       [/rakatakanahalfwidth]
+  16#5D2        [/gimel /gimelhebrew /afii57666]
+  16#11A        [/Ecaron]
+  16#FEBE       [/dadfinalarabic]
+  16#1EBE       [/Ecircumflexacute]
+  16#4F9        [/yerudieresiscyrillic]
+  16#FC62       [/shaddakasraarabic]
+  16#33CB       [/HPsquare]
+  16#29D        [/jcrossedtail]
+  16#316F       [/mieumsioskorean]
+  16#41         [/A]
+  16#420        [/afii10034 /Ercyrillic]
+  16#FB89       [/ddalfinalarabic]
+  16#A5B        [/zagurmukhi]
+  16#21C4       [/arrowrightoverleft]
+  16#1C4        [/DZcaron]
+  16#FF68       [/ismallkatakanahalfwidth]
+  16#F6D1       [/cyrBreve]
+  16#E3A        [/phinthuthai]
+  16#25A3       [/squarewhitewithsmallblack]
+  16#5A3        [/munahlefthebrew /munahhebrew]
+  16#3219       [/thieuthaparenkorean]
+  16#982        [/anusvarabengali]
+  16#EB         [/edieresis]
+  16#1E8F       [/ydotaccent]
+  16#24CA       [/Ucircle]
+  16#339C       [/squaremm]
+  16#226E       [/notless]
+  16#26E        [/lezh]
+  16#3140       [/rieulhieuhkorean]
+  16#2012       [/figuredash]
+  16#12         [/controlDC2]
+  16#64D        [/kasratanarabic /afii57453]
+  16#3F1        [/rhosymbolgreek]
+  16#A2C        [/bagurmukhi]
+  16#195        [/hv]
+  16#2195       [/arrowupdn]
+  16#3067       [/dehiragana]
+  16#F8FE       [/bracerightbt]
+  16#FF39       [/Ymonospace]
+  16#E0B        [/sosothai]
+  16#574        [/menarmenian]
+  16#FCDD       [/yehmeeminitialarabic]
+  16#2318       [/propellor]
+  16#318        [/lefttackbelowcmb]
+  16#953        [/gravedeva]
+  16#BC         [/onequarter]
+  16#6F7        [/sevenpersian]
+  16#1E60       [/Sdotaccent]
+  16#249B       [/twentyperiod]
+  16#49B        [/kadescendercyrillic]
+  16#3111       [/qbopomofo]
+  16#FFE3       [/macronmonospace]
+  16#261E       [/pointingindexrightwhite]
+  16#3C2        [/sigmafinal /sigma1]
+  16#FB2B       [/shinsindothebrew /shinsindot /afii57695]
+  16#3294       [/ideographnamecircle]
+  16#166        [/Tbar]
+  16#2166       [/Sevenroman]
+  16#FF0A       [/asteriskmonospace]
+  16#545        [/Yiarmenian]
+  16#2E9        [/tonebarextralowmod]
+  16#924        [/tadeva]
+  16#208D       [/parenleftinferior]
+  16#F7F6       [/Odieresissmall]
+  16#1E31       [/kacute]
+  16#FE31       [/emdashvertical]
+  16#246C       [/thirteencircle]
+  16#46C        [/Yusbigiotifiedcyrillic]
+  16#AA7        [/dhagujarati]
+  16#210        [/Rdblgrave]
+  16#30E2       [/mokatakana]
+  16#25EF       [/largecircle]
+  16#393        [/Gamma]
+  16#3265       [/pieupcirclekorean]
+  16#137        [/kcommaaccent /kcedilla]
+  16#3009       [/anglebracketright]
+  16#1EDB       [/ohornacute]
+  16#FEDB       [/kafinitialarabic]
+  16#2BA        [/dblprimemod]
+  16#318C       [/yuikorean]
+  16#5E         [/asciicircum]
+  16#1E02       [/Bdotaccent]
+  16#43D        [/encyrillic /afii10079]
+  16#1E1        [/adotmacron]
+  16#21E1       [/arrowdashup]
+  16#30B3       [/kokatakana]
+  16#FF85       [/nakatakanahalfwidth]
+  16#F6EE       [/lsuperior]
+  16#E57        [/seventhai]
+  16#5C0        [/paseqhebrew /afii57842]
+  16#25C0       [/blackleftpointingtriangle]
+  16#3236       [/ideographicfinancialparen]
+  16#99F        [/ttabengali]
+  16#108        [/Ccircumflex]
+  16#FEAC       [/thalfinalarabic]
+  16#1EAC       [/Acircumflexdotbelow]
+  16#24E7       [/xcircle]
+  16#4E7        [/odieresiscyrillic]
+  16#33B9       [/mvmegasquare]
+  16#228B       [/supersetnotequal]
+  16#28B        [/vhook]
+  16#315D       [/weokorean]
+  16#2F         [/slash]
+  16#66A        [/percentarabic /afii57381]
+  16#266A       [/musicalnote]
+  16#40E        [/afii10062 /Ushortcyrillic]
+  16#1B2        [/Vhook]
+  16#3084       [/yahiragana]
+  16#FF56       [/vmonospace]
+  16#F6BF       [/LL]
+  16#E28        [/sosalathai]
+  16#2591       [/shadelight /ltshade]
+  16#591        [/etnahtalefthebrew /etnahtahebrew /etnahtafoukhlefthebrew /etnahtafoukhhebrew]
+  16#335        [/strokeshortoverlaycmb]
+  16#3207       [/ieungparenkorean]
+  16#970        [/abbreviationsigndeva]
+  16#D9         [/Ugrave]
+  16#1E7D       [/vtilde]
+  16#24B8       [/Ccircle]
+  16#4B8        [/Cheverticalstrokecyrillic]
+  16#338A       [/pfsquare]
+  16#25C        [/eopenreversed]
+.dicttomark readonly def

Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_btokn.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_btokn.ps	                        (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_btokn.ps	2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,330 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% 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.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc.,  7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA  94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% 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 .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.  The procedures for composite objects (arrays
+% and dictionaries) leave different results on the stack:
+%	<#refs> <#chars> <simple_obj> -proc- <#refs> <#chars>
+%	<#refs> <#chars> <array|dict> -proc- <array|dict> <#refs> <#chars>
+% This is required so that .writeobjects can also accumulate the actual
+% list of composite objects to write in the binary object sequence.
+/cntdict mark
+  /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
+/.cntobj {	% <<arguments and results as for procedures in cntdict>>
+  dup type //cntdict exch get exec
+} .bind def
+cntdict /arraytype {
+  dup dup length 5 -1 roll add 4 2 roll { .cntobj } forall
+} bind put
+cntdict /dicttype {
+  WRITEDICTS {
+    dup dup length 2 mul 5 -1 roll add 4 2 roll {
+        % We have to use .execn here, rather than simply rolling the
+        % value under the top elements, because key might involve arrays
+        % or dictionaries.
+      cvlit {.cntobj} exch 2 .execn .cntobj
+    } forall
+  } {
+    /writeobject .systemvar /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 { .cntobj } forall
+
+        % Write the header.
+
+        % Stack: file tag -mark- array1 ... (array|dict)N #refs #chars
+  counttomark 3 add -2 roll 4 1 roll
+        % Stack: -mark- array1 ... (array|dict)N 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|dict)N tag file ref# char#
+  counttomark 4 sub {
+    counttomark -1 roll dup 6 1 roll
+        % Stack: ... objN tag file ref# char# objN
+    dup type /dicttype eq {		% can't be first object
+      { 5 1 roll (x\000xxxxxx) .bosobject
+        3 index exch writestring
+        4 -1 roll (x\000xxxxxx) .bosobject
+        3 index exch writestring
+      } forall
+    } {
+      { (x\000xxxxxx) .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
+
+} .bind def
+
+/printobject {		% <obj> <tag> printobject -
+  currentobjectformat 0 eq {
+      /printobject .systemvar /undefined signalerror
+  } if
+  (%stdout) (w) file 2 index 2 index .writeobject pop pop
+} odef
+/writeobject {		% <file> <obj> <tag> writeobject -
+  currentobjectformat 0 eq {
+      /writeobject .systemvar /undefined signalerror
+  } if
+  2 .argindex pop	% check # of args
+  .writeobject
+} odef
+/.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
+} .bind def
+
+% Implement binary error message output.
+/.objectprinttest {		% <obj> .objectprinttest -
+                % This is a pseudo-operator so it will restore the stack
+                % if it gets an error.
+  mark 0 0 3 .argindex .cntobj cleartomark 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

Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_cet.ps
===================================================================
(Binary files differ)

Index: trunk/Master/tlpkg/tlgs/Resource/Init/gs_cet.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_cet.ps	2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_cet.ps	2017-04-23 22:15:25 UTC (rev 43997)

Property changes on: trunk/Master/tlpkg/tlgs/Resource/Init/gs_cet.ps
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_cff.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_cff.ps	                        (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_cff.ps	2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,250 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% 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.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc.,  7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA  94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% 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 (12345678) .peekstring pop (wOFFOTTO) eq
+  {
+    .init_wOFF_otto_font_file
+    //true //false
+  }{//true} ifelse
+
+  {
+    dup 4 string .peekstring pop (OTTO) eq
+    {
+                  % If this is a font at all, it's an OpenType CFF font set.
+      .init_otto_font_file //true
+    }
+    { //false } ifelse
+  } if
+
+  {      % Use a random FontSet resource name.  ****** WRONG ******
+    realtime rand xor =string cvs exch //false //false
+    ReadData pop
+  } {
+                % Not a TrueType font.
+    .loadnonottofontfile
+  } ifelse
+} bind def
+
+% <file> .init_otto_font_file <file>
+/.init_otto_font_file {
+  /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
+    f 12 string readstring pop pop 1 sub	% skip to next table
+  } 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
+} bind def
+
+% <file> .init_otto_font_file <file>
+/.init_wOFF_otto_font_file {
+  /FontSetInit /ProcSet findresource begin
+  2 dict begin
+  /f exch def /cff //null def
+  3 {card32 pop} repeat % (wOFF), (OTTO) and file length
+
+  card16
+  30 { 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
+    f 12 string readstring pop pop 1 sub	% skip to next table
+  } loop
+                % Stack: tablesread
+  4 { card32 } repeat
+                % Stack: tablesread start complen len checksum
+  pop
+                % Stack: tablesread start complen len
+  4 -2 roll exch
+                % Stack: complen len start tablesread
+  1 add 20 mul 44 add sub
+                % Stack: complen len offset
+  f exch subfilefilter flushfile	% skip to start
+                % Stack: complen len
+  % the table can legally be uncompressed: complen == len
+  1 index 1 index eq
+  { exch pop f exch subfilefilter}
+  { pop f exch subfilefilter /FlateDecode filter} ifelse
+  end
+} bind def
+20 dict begin
+
+% ------ Utilities ------ %
+
+/subfilefilter {	% <file> <length> subfilefilter <filter>
+        % SubFileDecode interprets a length of 0 as infinite.
+  dup 0 le { pop pop () 0 } if () /SubFileDecode filter
+} bind def
+
+
+/advance {	% <n> advance -
+  f cff eq { pos add /pos exch store } { pop } ifelse
+} bind def
+/next {		% - next <byte>
+  f read {
+    1 advance
+    CFFDEBUG { (  ) print dup = } if
+  } {
+    0
+    CFFDEBUG { (  Out of range access, assuming 0) = } if
+    /pdfformaterror where {
+      pop
+      (   **** Warning: Out of range access to a CFF table, assuming 0.\n)
+      pdfformaterror
+    } if
+  } ifelse
+} bind def
+/next2 {	% - next2 <byte1> <byte2>
+  f read {
+    f read {
+      2 advance
+      CFFDEBUG { (  ) print 1 index =only (,) print dup = } if
+    } {
+      1 advance
+      CFFDEBUG { (  ) print dup = } if
+    } ifelse
+  } if
+} bind def
+/nextstring {	% <length> nextstring <string>
+  dup 0 eq {
+    pop ()
+  } {
+    string f exch readstring pop dup length advance
+    CFFDEBUG { (  ) print dup //== exec } 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
+
+% ------ Main program ------ %
+
+% 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.
+% Finally, PDF interpreter may request creation of CIDFont out of an
+% ordinary CFF font.
+/StartData {          % <resname> <nbytes> StartData -
+  currentfile exch subfilefilter //false //false ReadData pop
+} bind def
+/ReadData {           % <resname> <file> <forceresname> <forcecid> ReadData <fontset>
+        % Initialize.
+
+  30 dict begin
+  /forcecidfont exch def
+  /forceresname exch def
+  /cff exch def
+  /pos 0 def
+  /resname exch cvlit def
+  /DEBUG CFFDEBUG def	% bring the binding closer
+  /StringCache 1 dict def % Private DICT may be reused.
+
+  forcecidfont
+  [ { cff 1024 string readstring not { exit } if } loop ]
+  .parsecff /fonts exch def
+
+  resname
+  mark fonts {
+    forceresname { exch pop resname exch } if
+    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
+      dup /FontType 2 put
+      1 index exch
+      definefont
+    } ifelse
+  } forall .dicttomark
+
+  end		% temporary dict
+  end		% FontSetInit ProcSet
+  /FontSet defineresource
+
+} 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

Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_cidcm.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_cidcm.ps	                        (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_cidcm.ps	2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,447 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% 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.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc.,  7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA  94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% 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 assume 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 8192 string def
+/name_buffer 1024 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.
+
+  RESMPDEBUG { (cidcm GetCIDSystemInfoFromFile beg) = } if
+  //.prs_dict begin
+  /.prsFile exch def
+  /.prsResult //.prs_empty def
+  /.prsDictCount countdictstack def
+  RESMPDEBUG { (cidcm GetCIDSystemInfoFromFile will PrescanFile.) = } if
+  { //PrescanFile } stopped pop
+  //.prs_dict /.prsResult get
+  end
+  RESMPDEBUG { (cidcm GetCIDSystemInfoFromFile end) = } if
+} bind def
+
+/GetCIDSystemInfo {     % <InstName> <CatName> GetCIDSystemInfo <CSI>
+
+  % Retrieve CSI, using caches.
+
+  RESMPDEBUG { (cidcm GetCIDSystemInfo beg) = } if
+  /Category findresource begin                % /InstName
+  dup ResourceStatus
+  {
+    pop 2 lt {
+      FindResource /CIDSystemInfo .knownget not {
+        //.prs_empty
+      } if                                    % CSI
+    } {                                       % /InstName
+      currentdict /GetCIDSystemInfoFromMap .knownget {
+        exec
+      } if
+      dup type /nametype eq
+      {
+        RESMPDEBUG { (cidcm GetCIDSystemInfo got a name.) = } if
+        //.prs_dict Category get              % /InstName CSIs
+        dup 2 index known
+        //enable_cache and {
+          RESMPDEBUG { (cidcm GetCIDSystemInfo from cache.) = } if
+          exch get                            % CSI
+        } {
+          RESMPDEBUG { (cidcm GetCIDSystemInfo from file.) = } if
+          exch                                % CSIs /InstName
+          dup //path_buffer ResourceFileName  % CSIs /InstName (path)
+          RESMPDEBUG { (cidcm GetCIDSystemInfo from file ) print dup = } if
+          currentglobal exch //true setglobal % CSIs /InstName g (path)
+          mark exch                           % CSIs /InstName g [ (path)
+          { (r) file } stopped {
+            cleartomark //.prs_empty
+          } {
+            exch 1 index                      % CSIs /InstName g file [ file
+            //GetCIDSystemInfoFromFile stopped {
+              cleartomark closefile //.prs_empty
+            } {
+              exch pop exch closefile
+            } ifelse
+          } ifelse                            % CSIs /InstName g CSI
+          exch setglobal                      % CSIs /InstName CSI
+          dup 4 1 roll                        % CSI CSIs /InstName CSI
+          put                                 % CSI
+          RESMPDEBUG {
+            (cidcm GetCIDSystemInfo got from file : <<) print
+            dup { exch //=string cvs print ( ) print
+                       //=string cvs print ( ) print
+            } forall
+            (>>) =
+          } if
+        } ifelse
+      } if
+    } ifelse
+  } {
+    pop //.prs_empty
+  } ifelse
+  end
+  RESMPDEBUG { (cidcm GetCIDSystemInfo end) = } if
+} 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.
+  % Identity CMap is compatible with any CIDFont.
+
+  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>>
+    dup /Ordering .knownget {
+      /Identity eq {
+        pop pop //true exit
+      } if
+    } if
+    //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
+
+/IsWellComposed {     % <CIDFontName> <CMapName> IsWellComposed <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 //IsWellComposed 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
+
+% 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, /IsWellComposed .
+
+/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                  % (templ) proc (scr) g <<CIDFont>> <<CMap>> <<Fonts>>
+
+  % Store resource identifiers into local dictionaries
+  % A resource instance can have a key that is not a name or a string. In this
+  % case, resourceforall passes the key directly to proc instead of copying it
+  % into the scratch string. This case can arise only for a resource instance
+  % defined in virtual memory by a previous defineresource
+
+  % Discard non-string keys of CIDFont and CMap because <CIDFontName>-<CMapName>
+  % is only defined for names.
+
+  { /.DisableResourceOrdering pop % gs_resmp accesses this through execstack - don't remove !
+
+    6 index [ 2 index {exch //null put} aload pop ] cvx bind 6 index //ResourceForAll exec
+
+    (*) [ 3 index {exch dup type /stringtype eq { cvn dup put } { pop pop } ifelse } aload pop
+        ] cvx bind 6 index /CMap resourceforall
+
+    (*) [ 4 index {exch dup type /stringtype eq { cvn dup put } { pop pop } ifelse } aload pop
+        ] cvx bind 6 index /CIDFont resourceforall
+
+    exit
+  } loop % This loop is a pattern for execstack_lookup - don't remove !
+  4 -1 roll setglobal                     % (templ) proc (scr) <<CIDFont>> <<CMap>> <<Fonts>>
+
+  %% Make the list of fonts in the form (/Name status) :
+
+                                          % (templ) proc (scr) <<CIDFont>> <<CMap>> <<Fonts>>
+  dup {
+    pop 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
+          //IsWellComposed 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>>
+  4 3 roll pop                            % proc (scr) <<Font>>
+
+  % Make the enumerator and apply it :
+  /MappedCategoryRedefiner /ProcSet findresource /MakeResourceEnumerator get exec exec
+} bind def
+
+currentdict end /Font exch /Category defineresource pop
+end
+setglobal .setlanguagelevel

Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_ciddc.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_ciddc.ps	                        (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_ciddc.ps	2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,230 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% 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.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc.,  7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA  94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% Define SubstCID, Decoding and CIDDecoding resource categories and related procsets.
+
+languagelevel 2 .setlanguagelevel
+currentglobal //true setglobal
+
+%----------------ParseDecoding procset----------------------------
+
+/ParseDecoding <<
+
+/Parse    % <resource_name> <num_tokens> Parse -
+{ dict begin                                  % /ResName
+  0                                           % /ResName nCode
+  { currentfile token not {
+      exit
+    } if                                      % /ResName nCode token
+    dup type /integertype eq {                % /ResName nCode
+       exch pop
+    } {
+      1 index def                             % /ResName nCode
+    } ifelse
+  } loop                                      % /ResName nCode
+  pop                                         % /ResName
+  currentdict end /Decoding                   % /ResName <<inst>> /Decoding
+  defineresource pop
+} bind
+
+>> /ProcSet defineresource pop
+
+%----------------Decoding category----------------------------
+
+/Generic /Category findresource dup length dict copy
+dup /InstanceType /dicttype put
+/Decoding exch /Category defineresource pop
+
+%----------------ParseCMap_Inverse procset----------------------------
+
+/ParseCMap_Inverse <<
+  /findresource { pop } bind
+  /defineresource { pop pop } bind
+  /dict {}
+  /def { pop pop } bind
+  /dup //null
+  /begin { pop } bind
+  /end {}
+  /currentdict //null
+  /CMapName //null
+  /usecmap { pop } bind
+  /begincmap {}
+  /endcmap {}
+  /begincodespacerange { pop mark } bind
+  /endcodespacerange { cleartomark } bind
+  /beginnotdefrange { pop mark } bind
+  /endnotdefrange { cleartomark } bind
+  /beginbfchar { pop mark } bind
+  /endbfchar { pop mark } bind
+  /beginbfrange { begincidrange }
+  /endbfrange { endcidrange }
+  /begincidchar { beginbfchar }
+  /endcidchar { endbfchar }
+  /begincidrange { pop mark } bind
+  /endcidrange  { cleartomark } bind
+>>  % Just keep it on stack for a while.
+
+% Now we define another dict for local binding, than merge it with the previous one :
+dup length 5 add dict begin
+
+  /.Ranges 40 dict def % Key = CID/256, value = array of 256 integer codes.
+  //.Ranges /CIDCount 0 put
+
+  /.StringToInt     % <string> .StringToInt <integer>
+  { 0 exch { exch 8 bitshift add } forall
+  } bind def
+
+  /.SetCouple    % <I> <b> .SetCouple -
+  { exch                                    % b I
+    dup 256 idiv                            % b I I0
+    dup //.Ranges exch known not {
+      dup //.Ranges exch 256 array put
+    } if                                    % b I I0
+    //.Ranges exch get                      % b I [Range]
+    exch 256 mod                            % b [Range] I1
+    2 copy get                              % b [Range] I1 e
+    dup //null ne {
+      % We've got char code duplicates for same CID.
+      dup type /integertype eq {
+        4 3 roll                            % [Range] I1 e b
+        2 array astore put                  %
+      } {
+        dup length 1 add dup dup array dup  % b [Range] I1 D l l D' D'
+        3 2 roll 0 exch getinterval         % b [Range] I1 D l D' D''
+        4 3 roll exch copy pop              % b [Range] I1 l D'
+        dup 3 2 roll 1 sub                  % b [Range] I1 D' D' l-1
+        6 5 roll                            % [Range] I1 D' D' l-1 b
+        put put                             %
+      } ifelse
+    } {
+      pop 3 2 roll put                      %
+    } ifelse
+  } bind def
+
+  /endcidrange
+  { % Writes the inversed CMap to .Ranges
+    counttomark 3 idiv {                    % (b) (e) I
+      exch .StringToInt                     % (b) I e
+      3 2 roll .StringToInt                 % I e b
+      % Note : this code does't handle multidimentional CID ranges.
+      % fixme : optimize below.
+      dup 3 2 roll exch sub 1 add           % I b d
+      { 2 copy //.SetCouple exec            % I b
+        1 add exch 1 add exch
+      } repeat                              % I b
+      pop                                   % I
+      dup //.Ranges /CIDCount get gt {      % I
+        dup //.Ranges exch /CIDCount exch put
+      } if                                  % I
+      pop
+    } repeat
+    pop % mark
+  } bind def
+
+  /.GetCIDDecoding         % - .GetCIDDEcoding <dict>
+  { //.Ranges dup length dict copy
+    //.Ranges //.PurgeDict exec
+    //.Ranges /CIDCount 0 put
+  } bind def
+
+currentdict end
+exch copy % Merge the dicts - see above.
+/ProcSet defineresource pop
+
+%----------------CIDDecoding category----------------------------
+% Note that we put all instances in global memory - see FindResource.
+
+/Generic /Category findresource dup length dict copy
+begin
+  /Category /CIDDecoding def
+  /InstanceType /dicttype def
+
+  /.CMapChooser <<
+    % This lists CMaps to inverse and unite for creating a CIDDecoding.
+    % Choose by FAPIcidfmap.Registry concatenated with TrueType encoding ID.
+    % Font renderer must provide the glyph substitution internally.
+
+    /CNS1.Big5       [ /ETen-B5-H /ETen-B5-V ]
+    /CNS1.Unicode    [ /UniCNS-UCS2-H /UniCNS-UCS2-V]
+    /CNS1.UCS-4    [ /UniCNS-UCS2-H /UniCNS-UCS2-V]
+    /GB1.GB2312      [ /GBK-EUC-H /GBK-EUC-V ]
+    /GB1.Unicode     [ /UniGB-UCS2-H /UniGB-UCS2-V ]
+    /GB1.UCS-4     [ /UniGB-UCS2-H /UniGB-UCS2-V ]
+    /Japan1.ShiftJIS [ /90ms-RKSJ-H /90ms-RKSJ-V ]
+    /Japan1.Unicode  [ /UniJIS-UCS2-H  /UniJIS-UCS2-V]
+    /Japan1.UCS-4  [ /UniJIS-UCS2-H  /UniJIS-UCS2-V]
+    /Japan2.ShiftJIS [ /90ms-RKSJ-H /90ms-RKSJ-V ]
+    /Japan2.Unicode  [ /UniHojo-UCS2-H ]
+    /Japan2.UCS-4    [ /UniHojo-UCS2-H ]
+    /Korea1.Johab    [ /KSC-Johab-V /KSC-Johab-H ]
+    /Korea1.Wansung  [ /KSCms-UHC-V /KSCms-UHC-H ]
+    /Korea1.Unicode  [ /UniKS-UCS2-H /UniKS-UCS2-V ]
+    /Identity.Symbol [ /Identity-H /Identity-V ]
+    /Unicode.Unicode [ /Identity-UTF16-H ]
+    /Identity.Unicode [ /Identity-UTF16-H ]
+    /Identity.UCS-4 [ /Identity-H /Identity-V ]
+  >> def
+
+  /.MakeInstance    % <name> .MakeInstance <inst>
+  { dup                                              % /Name /Name
+    //.CMapChooser exch .knownget not {
+      (Can't build /) print =string cvs print
+      ( /CIDDecoding resource. See gs_ciddc.ps . ) = flush
+      /findresource cvx /undefinedresource signalerror
+    } if                                             % /Name [CMaps]
+    exch pop                                         % [CMaps]
+    /CMap /Category findresource                     % [CMaps] <CMapCategory>
+    /ParseCMap_Inverse /ProcSet findresource         % [CMaps] <CMapCategory> <PCI>
+    3 2 roll {                                       % <CMapCategory> <PCI> /CMapName
+      3 2 roll begin                                 % <PCI> /CMapName
+      dup .ResourceFile not {
+        (Can't find CMap ) print =string cvs print
+        ( building a CIDDecoding resource. ) = flush
+        /findresource cvx /undefinedresource signalerror
+      } if
+      currentdict end exch                           % <PCI> /CMapName <CMapCategory> file
+
+      3 index begin
+      cvx exec                                       % <PCI> /CMapName <CMapCategory>
+      end
+      exch pop exch                                  % <CMapCategory> <PCI>
+    } forall
+    exch pop begin                                   %
+    .GetCIDDecoding
+    end
+  } bind def
+
+  /FindResource      % <name> FindResource <dict>
+  { currentglobal exch                               % bGlobal /InstName
+    //true setglobal
+    dup //.MakeInstance exec                         % bGlobal /InstName <Inst>
+    DefineResource                                   % bGlobal <Inst>
+    exch setglobal                                   % <Inst>
+  } bind def
+
+currentdict end
+/CIDDecoding exch /Category defineresource pop
+
+%----------------SubstCID category----------------------------
+
+/Generic /Category findresource dup length dict copy
+begin
+  /Category /SubstCID def
+  /InstanceType /dicttype def
+currentdict end
+/SubstCID exch /Category defineresource pop
+
+setglobal
+.setlanguagelevel

Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_cidfm.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_cidfm.ps	                        (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_cidfm.ps	2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,254 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% 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.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc.,  7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA  94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% Redefine CIDFont category with cidfmap .
+
+languagelevel 2 .setlanguagelevel
+
+4 dict begin
+/CategoryName /CIDFont def
+
+/MapFileName (cidfmap) def
+
+/IsMyRecord      % <raw_record> -> <raw_record> bool
+{ % Only for client's needs.
+  dup type /stringtype eq exch
+  dup type /nametype eq 3 -1 roll or
+} bind def
+
+/RecordVirtualMethods 3 dict begin
+
+  /MakeInstance   % <Name> <record> MakeInstance <Name> <Instance> <size>
+  { % We know that currentdict is the category.
+    /Substitute get dup type /stringtype eq
+    {
+      (r) file dup cvx exec closefile
+      dup
+    } if
+
+    FindResource            % /Name <<CIDFont>>
+
+    dup length dict copy                    % /Name <<CIDFont>>
+    1 index ResourceStatus pop exch pop     % /Name <<CIDFont>> size
+  } bind def
+
+  /GetFilePath  % <scratch> <Name> <record> GetFilePath <filepath>
+  { % We know that currentdict is the category.
+    exch pop
+    /Substitute get dup type /stringtype eq not
+    {
+      exch ResourceFileName
+    } if
+  } bind def
+
+  /GetSize   % <Name> <record> GetSize <size>
+  { % We know that currentdict is the category.
+    dup /Substitute get dup type /stringtype eq
+    {
+      % The simplest solution is to instantiate the resource
+      pop //MakeInstance exec
+      3 1 roll pop pop
+    }
+    {
+      exch pop
+      ResourceStatus {
+        exch pop exch pop
+      } {
+        /undefinedresource signalerror
+      } ifelse
+    }ifelse
+  } bind def
+
+  /GetCSI   % <record> GetCSI null
+            % <record> GetCSI dict
+  { % We know that currentdict is the category.
+    RESMPDEBUG { (cidfm GetCSI beg ) = } if
+    dup /Substitute get dup type /stringtype eq
+    {
+      pop
+      dup /Name get exch //MakeInstance exec
+      pop exch pop
+      /CIDSystemInfo get
+    }
+    {
+      exch pop                     % /Name
+      GetCIDSystemInfoFromMap
+    } ifelse
+    RESMPDEBUG { (cidfm GetCSI end ) print dup = } if
+  } bind def
+
+  /IsActive % <record> IsActive <bool>
+  { pop //true
+  } bind def
+
+currentdict end def
+
+% This is the default definition of our fallback CIDFont
+/DefaultCIDFallBack
+<<
+  /Path
+  systemdict /CIDFSubstPath .knownget
+  {
+    (/) concatstrings
+  }
+  {
+    (CIDFSUBSTPATH) getenv
+    {
+      (/) concatstrings
+    }
+    {
+      currentsystemparams /GenericResourceDir get (CIDFSubst/) concatstrings
+    } ifelse
+  } ifelse
+
+  systemdict /CIDFSubstFont .knownget not
+  {
+    (CIDFSUBSTFONT) getenv not
+    {
+      (DroidSansFallback.ttf)
+    } if
+  } if
+  concatstrings
+  % The CSI data just has to be valid, the substition machinery will
+  % generally overwrite it with appropriate values for the missing font.
+  /CSI  [(Identity) 0]
+  /RecordVirtualMethods //RecordVirtualMethods
+  /FileType /TrueType
+
+  (CIDFSUBSTFONTID) getenv
+  {
+    /SubfontID exch cvi
+  } if
+>> def
+
+/VerifyMap  % <raw_map> VerifyMap -
+{
+  % Remove any mappings for which we cannot find the font file
+  dup
+  {
+    % if we have a name1->name2 mapping, follow the "trail",
+    % so if the name2 mapping is known in the .map dict, retrieve
+    % that map value and loop round until we either reach a map
+    % which references a TTF (i.e. a dictionary record) or we have
+    % a name not known in the .map, in which case we have to resort
+    % to the normal Postscript "resourcestatus".
+    {
+      dup type /nametype eq
+      {
+        dup 3 index exch .knownget
+        { exch pop }
+        {
+          /CIDFont resourcestatus
+          { pop pop pop }
+          { 2 index exch .undef }
+          ifelse
+          exit
+        } ifelse
+      }
+      {
+        dup type /dicttype eq
+        {
+          /Path .knownget
+          {
+            .libfile
+            {closefile pop}
+            {
+              {(r) file} .internalstopped
+              {pop pop 2 index exch .undef}
+              {closefile pop} ifelse
+            } ifelse
+          }
+          {2 index exch .undef}
+          ifelse
+          exit
+        } if
+      } ifelse
+    } loop
+  } forall
+
+  % This is where we insert the default fallback into the map
+  % checking first to see if there is a user specified alternative
+  dup /CIDFallBack known not{
+     //DefaultCIDFallBack dup /Path get status
+     {
+       pop pop pop pop
+       /CIDFallBack exch 2 index 3 1 roll put
+     }
+     {
+       pop
+     }ifelse
+  } if
+
+  % Checks for vicious substitution cycles.
+  dup length dict copy                  % <<map>>
+  dup length dict                       % <<map>> <<temp>>
+  { % Choose a random record :
+    //true 2 index {                    % <<map>> <<temp>> true /Name /Subs
+      3 2 roll pop //false exit         % <<map>> <<temp>> /Name /Subs false
+    } forall
+    { exit                              % <<map>> <<temp>>
+    } if                                % <<map>> <<temp>> /Name /Subs
+    % Move the substitution chain to <<temp>>, checking for a cycle :
+    3 index 2 index undef               % <<map>> <<temp>> /Name /Subs
+    exch 2 index exch 0 put             % <<map>> <<temp>> /Subs
+    { //IsMyRecord exec not {
+        % Not a substitution, the chain terminates.
+        pop exit                        % <<map>> <<temp>>
+      } if                              % <<map>> <<temp>> /Subs
+      1 index 1 index known {
+        (Vicious substitution cycle in map file with the entry ) print =string cvs print ( .) =
+        /VerifyMap cvx /undefinedresource signalerror
+      } if                              % <<map>> <<temp>> /Subs
+      1 index 1 index 0 put
+      dup 3 index exch .knownget not {  % <<map>> <<temp>> /Subs
+        % No more substitutions, the chain terminates.
+        pop exit                        % <<map>> <<temp>>
+      } if                              % <<map>> <<temp>> /Subs /Subs1
+      exch                              % <<map>> <<temp>> /Subs1 /Subs
+      3 index exch undef                % <<map>> <<temp>> /Subs1
+    } loop
+    % Not cycled, now purge the <<temp>> :
+    { % Choose a random record :
+      //true 1 index {                  % <<map>> <<temp>> true /Name /Subs
+        3 2 roll pop //false exit       % <<map>> <<temp>> /Name /Subs false
+      } forall
+      { exit                            % <<map>> <<temp>>
+      } if                              % <<map>> <<temp>> /Name /Subs
+      % Remove it :
+      pop 1 index exch undef            % <<map>> <<temp>>
+    } loop
+  } loop
+  pop pop
+} bind def
+
+/PreprocessRecord  % <map> <Name> <raw_record> PreprocessRecord <map> <Name> <record> <bool>
+{
+  //IsMyRecord exec {
+    1 dict begin
+    /Substitute exch def
+    dup /Name exch def
+    /RecordVirtualMethods //RecordVirtualMethods def
+    currentdict end
+    //true
+  } {
+    //false
+  } ifelse
+} bind def
+
+currentdict end
+
+/MappedCategoryRedefiner /ProcSet findresource /Redefine get exec
+
+.setlanguagelevel

Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_cidfn.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_cidfn.ps	                        (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_cidfn.ps	2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,413 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% 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.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc.,  7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA  94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% 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
+} put % Don't bind it here, because gs_fapi.ps redefines .buildfont9
+
+% 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 {
+    dup /FDArray get {
+      dup /FontMatrix get 0 get 1000000 ge {
+        /FontMatrix matrix put  % Bug 688517
+      } {
+        pop
+      } ifelse
+    } forall
+  } {
+    dup /FontMatrix [0.001 0 0 0.001 0 0] put
+    dup /FDArray get {
+       currentglobal exch dup gcheck setglobal
+       dup /FontMatrix get {1000 0 0 1000 0 0} matrix concatmatrix
+       /FontMatrix exch put
+       setglobal
+    } forall
+  } ifelse
+  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
+} put % Don't bind it here because gs_fapi.ps redefines .buildfont10
+
+% ------ CIDFontType 2 (FontType 11) ------ %
+
+dup 2 {
+  11 .checkfonttype pop
+  1 index exch .buildfont11 exch pop
+} put % Don't bind it here because gs_fapi.ps redefines .buildfont11
+
+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.
+    /AllowIncrementalCFF /GetDeviceParam .special_op {
+      exch pop {stop}if
+    }if
+    currentfile fileposition
+  } .internalstopped {
+                % File is not positionable, or uses hex data.
+                % Load the data now.
+    cleartomark exch
+    currentfile exch
+    (Hex) eq { /ASCIIHexDecode filter } if
+    exch
+                % Stack: file 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 exch readstring pop } if
+    } {
+      mark 3 1 roll {
+                % Stack: mark str ... file length
+        dup 0 eq { pop exit } if
+        dup 65400 .min dup string 3 index exch readstring pop
+                % Stack: mark str ... file length newstrlen newstr
+        4 1 roll sub
+      } loop
+      counttomark 1 add 1 roll ]
+    } ifelse
+    /GlyphData exch def
+    dup currentfile eq { pop } { closefile } ifelse
+  } {
+                % 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
+
+% ------ 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
+
+currentdict end
+
+% ---------------- Rendering ---------------- %
+
+% ------ 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>
+  systemdict /ProvideUnicode .knownget not { //false } if {
+    /FontEmulationProcs /ProcSet findresource
+    /ProvideUnicodeDecoding get exec
+  } if
+  dup /CIDFontType get //.cidfonttypes exch get exec
+} odef
+
+/CIDFont /Generic /Category findresource dup length dict .copydict
+dup /InstanceType /dicttype put
+dup /DefineResource {
+  dup /OrigFont known not {
+     dup dup /OrigFont exch .growput  % CPSI does it. Adding just for CET 33_all.PS conformity.
+  } if
+  dup /PaintType known not {
+     dup /PaintType 0 .growput  % CPSI does it. Adding just for CET 33_all.PS conformity.
+  } if
+  .buildcidfont
+  /Generic /Category findresource /DefineResource get exec
+} put
+% CIDFonts may be defined in CFF OpenType files.
+% Check for this here.
+/.loadcidfontresource {
+  dup .ResourceFile {
+    {.loadfont} .execasresource
+  } {
+    dup /undefinedresource signalerror
+  } ifelse
+} bind def
+dup /.LoadResource {
+  currentglobal {
+    .loadcidfontresource
+  } {
+    //true setglobal {.loadcidfontresource} stopped //false setglobal {stop} if
+  } 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
+
+%% Replace 1 (gs_ciddc.ps)
+(gs_ciddc.ps) runlibfile

Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_cidtt.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_cidtt.ps	                        (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_cidtt.ps	2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,186 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% 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.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc.,  7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA  94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% Redefine CIDFont category with an emulation with True Type fonts.
+
+languagelevel 2 .setlanguagelevel
+
+15 dict begin    % a temporary dictionary for local binding.
+
+%------------------Copy the FontEmulationProcs here : -------------------
+
+/FontEmulationProcs /ProcSet findresource {
+  def
+} forall
+
+currentdict /super.complete_instance currentdict /complete_instance get put
+
+%-------Auxiliary procedures for building CIDFontType 2 from TT file -----------
+
+/GenerateCIDMap   % <font> GenerateCIDMap <font>
+{ begin
+    % Obtain the maximal CID :
+    %   This implementation doesn't check whether glyphs really present.
+    Decoding /CIDCount get /CIDCount exch def
+    % Prepare the CIDMap structure :
+    /CIDMap [
+      CIDCount 22000 le {
+        CIDCount 2 mul string
+      } {
+        44000 string
+        CIDCount 44000 gt {
+           % need three strings
+           44000 string		% 22000 2 mul string
+           CIDCount 44000 sub 2 mul string
+        } {
+           CIDCount 22000 sub 2 mul string
+        } ifelse
+      } ifelse
+    ] def
+    % Now fill it :
+    Decoding TT_cmap SubstNWP GDBytes CIDMap .fillCIDMap
+  currentdict end
+} bind def
+
+/GenerateIdentityCIDMap   % <font> GenerateCIDMap <font>
+{ begin
+    /CIDMap [ 44000 string 44000 string 44000 string] def
+    CIDMap .fillIdentityCIDMap
+  currentdict end
+} bind def
+
+/load_sfnts  % <FontDict> load_sfnts <FontDict>
+{ % Read the True Type file from the path /Path, and buld /sfnts,
+  % skipping glyf and loca.
+  dup /Path get                                            % <font> (path)
+  QUIET not {
+    (Loading a TT font from ) print dup print
+    ( to emulate a CID font ) print 1 index /CIDFontName get =only ( ... ) print
+  } if
+  (r) file dup                                             % <font> file file
+  3 1 roll                                                 % file <font> file
+  1 index /SubfontID .knownget not { 0 } if                % file <font> file SubfontID
+  2 index /FileType .knownget
+  {/WOFF eq}
+  {//false} ifelse
+  % It's not (currently) viable to load WOFF fonts "stripped", so we don't try
+  {.load_woff_for_cid exch copy exch pop}
+  {
+    .load_tt_font_stripped exch
+    copy                         % file <font>
+    QUIET not {
+      (Done.) =
+    } if
+    dup 3 1 roll                                             % <font> file <font>
+    exch /File exch put                                      % <font>
+  } ifelse
+  dup dup /CIDSystemInfo get /Ordering get (.)             % <font> () ()
+  2 index /Decoding get =string cvs                        % <font> () () ()
+  concatstrings concatstrings cvn /Decoding exch put       % <font>
+  dup dup /CIDSystemInfo get /Ordering get (-WMode)        % <font> <font> () ()
+  concatstrings cvn /SubstCID
+  2 copy resourcestatus {
+    pop pop
+    findresource /subst_CID_on_WMode exch put              % <font>
+  } {
+    pop pop pop
+  } ifelse
+  dup /Decoding get /Identity.Unicode eq {
+    //ChooseDecoding exec                                  % <font>
+    //GenerateIdentityCIDMap exec                          % <font>
+  } {
+    //ChooseDecoding exec                                  % <font>
+    //GenerateCIDMap exec                                  % <font>
+  } ifelse
+} bind def
+
+%-----------TrueType-specific methods for category redefinition : -----------
+
+/RefinePath      % <FontDict> RefinePath <FontDict>
+{ dup begin
+  Path .libfile {
+      dup .filename {
+        currentdict exch /Path exch put
+      } if
+      closefile
+  } {
+    (r) { file } .internalstopped
+    {
+      (Can't find the font file ) print =
+      /findfont cvx /undefinedfilename signalerror
+    }
+    {
+      dup .filename {
+        currentdict exch /Path exch put
+      } if
+      closefile
+    } ifelse
+  } ifelse
+  end
+} bind def
+
+/complete_instance  % <font_name> <FontDict> <Options> complete_FAPI_Font <font_name> <FontDict>
+{ 1 index /CIDFontType 2 put % Other types are not emulated yet.
+  //super.complete_instance exec
+  //RefinePath exec
+  //load_sfnts exec
+} bind def
+
+/ValidFileTypes
+<<
+  /TrueType 0
+  /WOFF 0
+>> def
+
+/IsMyRecord      % <raw_record> -> <raw_record> bool
+{
+  dup type /dicttype eq { dup /FileType .knownget { //ValidFileTypes exch known } { //false } ifelse } { //false } ifelse
+} bind def
+
+currentdict /ValidFileTypes undef
+
+/IsActive       % <record> IsActive <bool>
+{ pop //true
+} bind def
+
+/CIDFontRecordVirtualMethods //RecordVirtualMethodsStub dup length 3 add dict copy begin
+  /GetCSI //TranslateCSI def
+  /IsActive //IsActive def
+  /MakeInstance   % <Name> <record> MakeInstance <Name> <Instance> <size>
+  { currentglobal 3 1 roll //true setglobal
+    //CIDFontOptions //complete_instance exec
+    2 copy //GetSize exec
+    4 3 roll setglobal
+  } bind def
+currentdict end def
+
+% Redefine the /CIDFont category :
+4 dict begin
+  /CategoryName /CIDFont def
+  /IsMapFileOptional //true def
+  /VerifyMap  { pop } bind def
+  /PreprocessRecord  % <map> <Name> <raw_record> PreprocessRecord <map> <Name> <record> <bool>
+  { //IsMyRecord exec dup {
+      pop dup /RecordVirtualMethods //CIDFontRecordVirtualMethods put
+      //true
+    } if
+  } bind def
+currentdict end
+
+/MappedCategoryRedefiner /ProcSet findresource /Redefine get exec
+
+end  % the temporary dictionary for local binding.
+
+.setlanguagelevel

Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_cmap.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_cmap.ps	                        (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_cmap.ps	2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,549 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% 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.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc.,  7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA  94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% 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 .
+  %
+  CMAPDEBUG { (rewriting TempMapsNotDef\n) print flush } if
+  .TempMaps 2 get
+  dup length 0 gt {
+    0 get
+    CMAPDEBUG { (...original...\n) print flush } if
+    1 5 2 index length 1 sub {
+      { 1 index exch get 2 3 put } stopped
+      { CMAPDEBUG { (cannot rewrite\n) print flush } if }
+      { CMAPDEBUG { (rewrite\n) print flush } if } ifelse
+    } for
+  } if
+  pop
+  CMAPDEBUG { (...FINISHED...\n) print } if
+} bind def
+
+/.composefontdict {		% <name> <cmap|cmapname> <fonts> composefont <name> <font_dict>
+  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
+    /FontInfo 1 dict def % for .processToUnicode in pdf_font.ps .
+    /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
+} bind odef
+
+% composefont doesn't appear in CMap files -- it's documented in
+% the "PostScript Language Reference Manual Supplement".
+/composefont {		% <name> <cmap|cmapname> <fonts> composefont <font>
+  .composefontdict /Font defineresource
+} bind def
+
+% ---------------- 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
+
+  CMAPDEBUG {
+    2 (*** undefined charmap ***)
+    1 (*** defined charmap ***)
+    0 (*** code space ranges ***)
+    3 { =
+      .TempMaps exch get
+      0 1 2 index length 1 sub {
+        dup //== exec (\t) print
+        1 index exch get //== exec
+      } for
+      pop
+    } repeat
+  } if
+
+  /.CodeMapData dup load [ exch
+    .TempMaps aload pop begin begin begin
+    {
+      [ exch aload pop
+        0 1 currentdict length 1 sub {
+           currentdict exch get
+        } for
+      ]
+      end
+    } forall
+  ] .endmap def
+
+  CMAPDEBUG {
+    (*** Content of .CodeMapData ***) =
+    0 .CodeMapData { exch dup //== exec 1 add exch (\t) print //== exec } forall
+    pop
+  } if
+
+  currentdict /.TempMaps undef
+  /FontMatrices FontMatrices .endmap def
+} 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 4 index length put
+    dup 1 1 put
+    4 2 roll
+    1 index dup length 1 sub 0 exch getinterval 5 1 roll	% prefix
+                        % Stack: prefix value params code_lo code_hi
+    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
+        {
+          CMAPDEBUG { (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 //== exec 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
+       /.endmapranges cvx /rangecheck 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
+        {
+          CMAPDEBUG { (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
+  % Adobe PS CET 23-25 and others define an almost empty CMap. Tolerate this.
+  % With the above, we can actually tolerate: /name << >> defineresource
+  dup /CIDSystemInfo known not {
+    dup wcheck not {
+      .currentglobal exch dup wcheck .setglobal
+      dup length dict .copydict exch .setglobal
+    } if
+    dup /CIDSystemInfo [ //null ] put
+  } if
+  dup /CodeMap .knownget { //null eq { .buildcmap } if } if
+  /Generic /Category findresource /DefineResource get exec
+} bind 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

Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_cspace.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_cspace.ps	                        (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_cspace.ps	2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,187 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% 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.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc.,  7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA  94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% basic colorspace mechanism
+
+%
+% There have been some major changes to the PostScript colour handling.
+% In particular, the vast majority of the colour space code has been
+% converted from PostScript to C. This file has been extensively
+% modified, as has gs_icc.ps. The remaining PostScript files which
+% previously implemented colour space handling; gs_ciecs2.ps, gs_ciecs3.ps
+% gs_devcs.ps, gs_devn.ps, gs_devpxl.ps, gs_indxd.ps, gs_patrn.ps and
+% gs_sepr.ps have been superceded by the C code and removed.
+%
+% gs_lev2.ps and gs_ll3.ps have also been modified so that they no longer
+% attempt to execute these PostScript files.
+%
+.currentglobal //true .setglobal
+systemdict begin
+
+%
+% gs_res.ps, and possibly other files, use this dictionary. Formerly
+% in cspace_util, moved to systemdict.
+%
+20 dict dup /colorspacedict exch def
+
+begin % colorspacedict
+
+%
+% gs_res.ps uses these entries in colorspacedict
+% to populate the ColorSpaceFamily resource, so we need
+% to add the supported spaces.
+%
+/DeviceGray [] def
+/DeviceRGB [] def
+/DeviceCMYK [] def
+end % colorspacedict
+
+%
+% Global, read-only, unpacked, array-form device color spaces
+% We need to return an array argument in response to currentcolorspace
+% even if the argument presented to setcolorspace was a simple device
+% space name. Not only that, but in order to satisfy some Adobe
+% applications, it must be the *same* array every time. The only way
+% to do that is to define an appropriate set initial arrays and always return
+% one of those. These arrays are defined here.
+%
+/DeviceGray_array /DeviceGray 1 array astore readonly def
+/DeviceRGB_array  /DeviceRGB  1 array astore readonly def
+/DeviceCMYK_array /DeviceCMYK 1 array astore readonly def
+
+%
+%   -   initgraphics   -
+%
+% The internal routine gs_initgraphics doesn't (re)set the color space,
+% so we must redefine the operation to do it here.
+%
+%
+/initgraphics
+  { initgraphics systemdict /DeviceGray_array get setcolorspace }
+.bind odef
+
+%
+% These routines used for the NOSUBSTDEVICECOLORS switch. This prevents
+% substitution of DeviceGray, DeviceRGB and DeviceCMYK with a Default*
+% colour space when /UseCIEColors is true. If the job includes a
+% definition of /DefaltGray, DefaultRGB or DefaultCMYK then it also executes
+% .includecolorspace to allow the device to record the substitute space.
+%
+/..page_default_spaces 3 dict def
+
+%
+% Used internally to retrieve any relevant default colour space.
+%
+% <Default space name> ..nosubstdevicetest false
+%                                          <Default space name> [space] true
+%
+% If the boolean is true then the C code must set the additional colour space
+% and execute .includecolorspace before finally setting a DeviceGray space.
+%
+/..nosubstdevicetest
+{
+  //false mark 3 -1 roll
+  % If we have already recorded this space, don't repeat it.
+  systemdict /..page_default_spaces get 1 index known {
+    cleartomark
+  } {
+    {
+      % Check to see if this space was defined by defineresource, if so then
+      % the job defined it, otherwise its the usual default, so ignore it.
+      dup /ColorSpace resourcestatus {
+        pop 0 eq {
+                  % Default* defined by defineresource
+          systemdict /..page_default_spaces get 1 index //true put
+                  dup /ColorSpace findresource 4 2 roll pop pop //true
+        }{
+          cleartomark
+        } ifelse
+      }{
+        cleartomark
+      } ifelse
+    } stopped
+    {cleartomark}if
+  } ifelse
+}bind def
+
+%
+% <color_space_name> ..includecolorspace -
+%
+/..includecolorspace
+{
+  % If we have already recorded this space, don't repeat it.
+  systemdict /..page_default_spaces get 1 index known {
+    pop
+  } {
+    mark exch
+    {
+    % Check to see if this space was defined by defineresource, if so then
+    % the job defined it, otherwise its the usual default, so ignore it.
+    dup /ColorSpace resourcestatus {
+        pop 0 eq {
+          % Job defined /Default*, so record it and allow the device access to it
+          systemdict /..page_default_spaces get 1 index //true put
+          gsave
+          { dup /ColorSpace findresource //setcolorspace exec .includecolorspace
+          } stopped pop
+          grestore
+        } if
+      } if
+    } stopped pop
+    cleartomark
+  } ifelse
+} bind def
+
+%
+% <color_space> <color_space_name> cs_substitute_generic <color_space1> <color_space2>
+%
+/cs_substitute_generic
+{ .getuseciecolor
+    {NOSUBSTDEVICECOLORS
+        { //..includecolorspace exec dup }
+        { /ColorSpace findresource }
+      ifelse
+    }
+    { pop dup }
+  ifelse
+}
+bind def
+
+%
+% <color_space> <color_space_name> cs_substitute_DeviceRGB_for_PDFX_or_PDFA <color_space1> <color_space2>
+%
+/cs_substitute_DeviceRGB_for_PDFX_or_PDFA
+{ systemdict /PDFX .knownget not { //false } if
+  systemdict /PDFA .knownget not { //false } {0 eq {//false}{//true} ifelse} ifelse
+  or {
+    dup /ColorSpace resourcestatus {
+      pop pop
+    } {
+      (Error: Need a /DefaultRGB /ColorSpace resource for generating a PDF/X or PDF/A document.) =
+      /cs_substitute_DeviceRGB_for_PDFX_or_PDFA cvx /undefined signalerror
+    } ifelse
+    /ColorSpace findresource
+  } {
+    //cs_substitute_generic exec
+  } ifelse
+} bind def
+end
+
+%
+% Set the initial device space
+%
+systemdict /DeviceGray_array get setcolorspace
+
+.setglobal

Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_dbt_e.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_dbt_e.ps	                        (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_dbt_e.ps	2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,58 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% 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.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc.,  7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA  94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% 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

Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_diskf.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_diskf.ps	                        (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_diskf.ps	2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,223 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% 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.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc.,  7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA  94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% 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

Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_diskn.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_diskn.ps	                        (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_diskn.ps	2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,213 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% 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.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc.,  7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA  94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% Initialization file for %disk device modifications
+% When this is run, systemdict is still writable,
+
+systemdict begin
+
+% Collect the list of searchable IODevices in SearchOrder
+% Efficiency here doesn't matter since we run this at the end
+% of gs_init and convert it to a static array.
+/.getsearchabledevs { % - .getsearchabledevs [ list_of_strings ]
+  //systemdict /.searchabledevs .knownget not {
+    .currentglobal //true .setglobal
+    mark (*) {
+      dup length string copy dup currentdevparams /Searchable
+      .knownget { not { pop } if } { pop } ifelse
+    } 8192 string /IODevice resourceforall
+    ]
+    % now process the array into correct SearchOrder
+    0 1 2 {
+      mark exch 2 index {
+        dup currentdevparams /SearchOrder get 2 index eq
+        { exch } { pop } ifelse
+      } forall % devices on the old list
+      pop
+      % make the array and sort it by name
+      ] { lt } bind .sort
+      exch
+    } for
+    % collect all devices with SearchOrder > 2
+    mark 2 index {
+      dup currentdevparams /SearchOrder get 2 gt
+      { exch } { pop } ifelse
+    } forall
+    ] exch pop
+    % We now have 4 arrays on the stack, SO=0 SO=1 SO=2 SO>2
+    % make them into a single array
+    mark 5 1 roll ] mark exch { { } forall } forall ]
+    //systemdict /.searchabledevs 2 index .forceput
+    exch .setglobal
+  }
+  if
+} .bind executeonly def % must be bound and hidden for .forceput
+
+% Modify .putdevparams to force regeneration of .searchabledevs list
+/.putdevparams {
+  % We could be smarter and check for %disk* device, but this
+  % doesn't get run enough to justify the complication
+  //.putdevparams
+  //systemdict /.searchabledevs .forceundef
+} .bind odef % must be bound and hidden for .forceundef
+
+% ------ extend filenameforall to handle wildcards in %dev% part of pattern -------%
+/filenameforall {
+  count 3 ge {
+    2 index (%) search {
+      pop pop
+    } {
+      % no device specified, so search them all
+      pop (*%) 3 index concatstrings
+      % we need to suppress the device when we return the string
+      % in order to match Adobe's behaviour with %disk devices.
+      4 -2 roll		% the callers procedure
+      [ { (%) search { pop pop (%) search { pop pop } if } if } /exec load
+        4 -1 roll		% the callers procedure
+        /exec load
+      ] cvx
+      4 2 roll		% put the modified procedure where it belongs
+    } ifelse
+    % extract device portion (up to end of string or next %)
+    (%) search { exch pop } if	% stack: opat proc scratch npat device
+    dup (*) search { pop pop pop //true } { pop //false } ifelse
+    1 index (?) search { pop pop pop //true } { pop //false } ifelse
+    or not {
+      pop pop //filenameforall	% device with no wildcard
+    } {
+      (%) concatstrings (%) exch concatstrings
+      .getsearchabledevs
+      % find all matching devices and add the rest of the search string
+      mark exch {
+          dup counttomark 1 add index .stringmatch {
+          counttomark 2 add index concatstrings
+        } {
+          pop
+        } ifelse
+      } forall
+      ]
+      3 1 roll pop pop
+      4 -1 roll pop
+      % now we need to invoke filenameforall for each of the strings
+      % in the array. We do this by building a procedure that is like
+      % an unrolled 'forall' loop. We do this to get the parameters
+      % for each filenameforall, since each execution will pop its
+      % parameters, but we can't use the operand stack for storage
+      % since each invocation must have the same operand stack.
+      mark exch {
+          counttomark dup 3 add index exch
+          2 add index
+          /filenameforall load
+        } forall
+      ] cvx
+      3 1 roll pop pop
+      exec		% run our unrolled loop
+    }
+    ifelse
+  } {
+    //filenameforall	% not enough parameters -- just let it fail
+  }
+  ifelse
+} odef
+
+% redefine file to search all devices in order
+/file {
+  dup 0 get (r) 0 get eq dup {
+    pop //false				% success code
+    2 index 0 get 37 eq { [ () ] } { .getsearchabledevs } ifelse
+    { 3 index concatstrings	% prepend the device
+      {
+        2 index //file } .internalstopped not {
+        4 1 roll pop pop pop //true
+        exit		% exit with success
+      } {
+        pop pop
+      }
+      ifelse
+    }
+    forall
+  }
+  if
+  not {		% just let standard file operator handle things
+    //file
+  }
+  if
+} bind odef
+
+% redefine deletefile to search all devices in order
+/deletefile {
+  //false			% success code
+  1 index 0 get 37 eq { [ () ] } { .getsearchabledevs } ifelse
+  { 2 index concatstrings	% prepend the device
+    { //deletefile } .internalstopped exch pop not {
+      pop //true exit		% exit with success
+    }
+    if
+  }
+  forall
+  not { $error /errorname get /deletefile .systemvar exch signalerror } if
+} bind odef
+
+% redefine status to search all devices in order
+/status {
+  dup type /stringtype eq {
+    //false			% success code
+    1 index 0 get 37 eq { [ () ] } { .getsearchabledevs } ifelse
+    { 2 index concatstrings	% prepend the device
+      { //status } .internalstopped not {
+        { //true 7 -2 roll pop pop //true exit } % exit with success
+        if
+      }
+      if
+    }
+    forall
+    % If we made it this far, no devices were found to status the file
+        % clean up to return 'false'
+    exch pop
+  } {
+    //status
+  }
+  ifelse
+} bind odef
+
+% Also redefine renamefile to search all devices in order
+/renamefile {
+  //false			% success code
+  2 index 0 get 37 eq { [ () ] } { .getsearchabledevs } ifelse
+  { dup 4 index concatstrings	% prepend the device
+    { (r) //file } .internalstopped
+    not {
+      closefile exch pop //true exit	% exit with success
+    } {
+      pop pop
+    } ifelse
+  }
+  forall
+  not { $error /errorname get /renamefile .systemvar exch signalerror } if
+  3 -1 roll concatstrings exch
+  //renamefile
+} bind odef
+
+% redefine devforall to process devices in numeric order
+% Spec's for 'devforall' are unclear, but font downloaders may expect this
+/devforall {		% <proc> <scratch> devforall -
+  [ { dup length string copy } 2 index //devforall ]
+  % stack: proc scratch array_of_device_names
+  { lt } .sort
+  % We don't really invoke the procedure with the scratch string
+  % but rather with the strings from our array
+  exch pop exch forall
+} odef
+end				% systemdict

Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_dpnxt.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_dpnxt.ps	                        (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_dpnxt.ps	2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,133 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% 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.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc.,  7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA  94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% 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
+
+%
+%   <w>  <h>  <bpc>  <mtx>  <dsrc0> ... <multi>  <ncomp>   alphaimage   -
+%
+img_utils_dict begin
+/.alphaimage  where
+  {
+    pop
+    .currentglobal //true .setglobal
+    /alphaimage
+      {
+        //true
+          //.colorimage
+        stopped
+          { /alphaimage .systemvar $error /errorname get signalerror }
+        if
+      }
+    .bind systemdict begin odef end
+    .setglobal
+  }
+if
+end
+
+% 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

Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_dps.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_dps.ps	                        (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_dps.ps	2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,222 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% 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.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc.,  7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA  94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% Initialization file for Display PostScript functions.
+
+% ------ Errors ------ %
+
+% These errors are only defined in DPS.
+{ /invalidcontext /invalidid } { .registererror } forall
+
+% ------ 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.
+  //systemdict /savedinitialgstate gstate readonly .forceput
+  .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 .systemvar /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 .systemvar /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
+  dup begin
+  /ColorValues .knownget {
+    0 le
+    { currentdict /ColorValues undef }
+    {
+      % hack around devices that incorrect set GrayValues
+      Colors 3 eq { 1 } { GrayValues } ifelse
+      RedValues mul GreenValues mul BlueValues mul ColorValues ne
+      { currentdict /GrayValues undef
+        currentdict /RedValues undef
+        currentdict /GreenValues undef
+        currentdict /BlueValues undef
+      } if
+    }
+    ifelse
+  } if
+  currentdict end 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

Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_dps1.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_dps1.ps	                        (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_dps1.ps	2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,138 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% 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.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc.,  7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA  94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% 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 .argindex findfont
+     1 index dup type /arraytype eq { makefont } { scalefont } ifelse
+     setfont pop pop
+   } stopped { /selectfont .systemvar $error /errorname get signalerror } if
+ } odef
+% undefinefont has to take local/global VM into account.
+/undefinefont		% <fontname> undefinefont -
+ { .FontDirectory 1 .argindex .forceundef	% FontDirectory is readonly
+   .currentglobal
+    {		% Current mode is global; delete from local directory too.
+      //systemdict /LocalFontDirectory .knownget
+       { 1 index .forceundef }		% LocalFontDirectory is readonly
+      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 } //superexec } % readonly
+         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 .forcecopynew 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 { .forceundef } repeat pop		% readonly
+    }
+   if
+   //SharedFontDirectory exch .forcecopynew pop
+   .currentglobal .setglobal	% Rebind FontDirectory according to current VM.
+   pop
+ } .bind odef
+
+end				% level2dict

Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_dps2.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_dps2.ps	                        (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_dps2.ps	2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,246 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% 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.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc.,  7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA  94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% Initialization file for basic Display PostScript functions
+% that are also included in Level 2.
+
+level2dict begin
+
+% ------ Errors ------ %
+
+% These errors are only defined in Level 2 and DPS.
+{ /configurationerror /undefinedresource /unregistered }
+{ .registererror } forall
+
+% ------ Halftones ------ %
+
+/.makestackdict
+        { { counttomark -1 roll } forall .dicttomark
+        } bind def
+/currenthalftone		% - currenthalftone <dict>
+        { mark .currenthalftone
+           { { exch pop }		% halftone
+             { /HalftoneType 1		% screen
+                { /Frequency /Angle /SpotFunction }
+               .makestackdict readonly
+             }
+             { /HalftoneType 2		% colorscreen
+                { /RedFrequency /RedAngle /RedSpotFunction
+                  /GreenFrequency /GreenAngle /GreenSpotFunction
+                  /BlueFrequency /BlueAngle /BlueSpotFunction
+                  /GrayFrequency /GrayAngle /GraySpotFunction
+                }
+               .makestackdict readonly
+             }
+           }
+          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 .argindex dup gcheck .setglobal
+  dup //.halftonetypes 1 index /HalftoneType get
+  dup type /integertype ne {
+    /sethalftone .systemvar /typecheck signalerror
+  } if
+  .knownget not {
+    /sethalftone .systemvar /rangecheck signalerror
+  } if
+  exec exec
+  .setglobal pop
+} .bind 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 dict .copydict } if
+      dup /Frequency 5 index put
+      dup /Angle 4 index put
+      languagelevel 3 ge { dup /AccurateScreens dup getuserparam put } if
+    }
+   if
+ } bind def
+/setscreen		% <ignore*2> <dict> setscreen -
+        { dup type /dicttype eq
+           { .fixsethalftonescreen sethalftone pop pop pop }
+           { //setscreen }
+          ifelse
+        } .bind odef
+/setcolorscreen		% <ignore*11> <dict> setcolorscreen -
+        { dup type /dicttype eq
+           { .fixsethalftonescreen sethalftone 12 { pop } repeat }
+           { //setcolorscreen }
+          ifelse
+        } .bind 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 0.0 }	% Adobe returns these as reals
+   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
+     {					% screen
+         % The procedure might not be readable....
+         dup rcheck { dup length array copy cvx } if
+         3 copy 6 copy
+     }
+     { }				% 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 -
+  1 index 65535 gt {
+    % .localvmarray throws limitcheck but CET 31-02 wants rangecheck
+    /defineuserobject .systemvar /rangecheck signalerror
+  } if
+  .UserObjects .knownget {
+    length dup 3 .argindex 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 .argindex 1 add 10 .max .localvmarray put
+  } ifelse
+  .UserObjects get 2 .argindex 2 index put pop pop
+} odef
+/execuserobject {		% <index> execuserobject -
+  dup type /integertype ne {
+    % Adobe validates the argument before accessing UserObjects - CET 31-03
+    /execuserobject .systemvar /typecheck signalerror
+  } if
+  .UserObjects get 1 .argindex get exch pop exec
+} odef
+/undefineuserobject {		% <index> undefineuserobject -
+  dup type /integertype ne {
+    % Adobe validates the argument before accessing UserObjects - CET 31-11
+    /undefineuserobject .systemvar /typecheck signalerror
+  } if
+  .UserObjects get 1 .argindex //null put pop
+} odef
+
+% ------ Cache control ------ %
+
+% Dummy definitions for cache control operators
+
+/ucachestatus {			% - ucachestatus -mark- ? ? ? ? <size>
+        mark 0 0 0 0 /MaxUPathItem getuserparam
+} odef
+/setucacheparams {		% -mark- ... <size> setucacheparams -
+                % Provoke an appropriate error if needed.
+        counttomark 1 lt { () 0 get } if
+        dup 0 or /MaxUPathItem getuserparam .max
+        1 dict dup /MaxUPathItem 4 -1 roll put setuserparams cleartomark
+} odef
+
+end				% level2dict

Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_dscp.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_dscp.ps	                        (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_dscp.ps	2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,115 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% 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.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc.,  7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA  94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+%  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

Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_epsf.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_epsf.ps	                        (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_epsf.ps	2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,291 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% 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.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc.,  7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA  94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% 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 if OK or 2 if cropped.
+% After %%HiResBoundingBox processed, state is 3 if OK or 4 if cropped.
+% After %%EndComments processed, state is 5.
+/EPSBoundingBoxState 5 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
+
+% Crop the page to the BoundingBox
+/EPSBoundingBoxCrop { % llx lly urx ury --
+  EPSDEBUG {
+    (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
+
+% Rescale, translate and rotate to fit the BoundingBox on the page
+/EPSBoundingBoxFitPage { % llx lly urx ury --
+  EPSDEBUG { (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
+  % Figure out if rotate is needed.
+
+  1 index 4 index sub 1 index 4 index sub eq not {
+  1 index 4 index sub 1 index 4 index sub gt	% bbox page-clipbox page-is-landscape
+  6 index 10 index sub 6 index 10 index sub gt % bbox page-clipbox page-is-landscape bbox-is-landscape
+  xor
+  }{
+    false
+  }ifelse
+  9 1 roll	% compute need-rotate.
+  % stack: rotate-needed bbox page-clipbox
+  % 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
+  % Finally perform the rotate if needed.
+  { clippath pathbbox pop 0 exch translate 90 rotate pop pop } if
+} 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 /EPSBoundingBoxState .systemvar 1 and 1 eq and {
+            (\n   **** Warning: Some of the BoundingBox for the EPS file will be clipped.) =
+            (                 Use -dEPSCrop or -dEPSFitPage to avoid clipping.\n) =
+            flush
+            1 add
+          } if
+        } ifelse
+      } ifelse
+      EPSBoundingBoxSetState
+    } {
+      pop % state
+    } ifelse
+  } {
+    pop pop
+  } ifelse
+} bind def
+
+/ProcessEPSComment { % file comment --  file comment
+  /EPSBoundingBoxState .systemvar 3 lt {
+    dup
+    (%%BoundingBox:) anchorsearch {
+      pop
+      EPSDEBUG { (gs_epsf.ps: found %%BoundingBox\n) print flush } if
+      1 EPSBoundingBoxProcess
+    } {
+      (%%HiResBoundingBox:) anchorsearch {
+        pop
+        EPSDEBUG { (gs_epsf.ps: found %%HiResBoundingBox\n) print flush } if
+      3 EPSBoundingBoxProcess
+      } {
+        pop % Not interested in this DSC comment
+      } ifelse
+    } ifelse
+  } if
+  /EPSBoundingBoxState .systemvar 5 lt {
+    dup (%%DocumentCustomColors:) anchorsearch {
+      pop
+      [ exch
+        { {
+            token not { exit } if
+            dup type /stringtype ne { stop } if
+            dup (atend) eq { stop } if
+            exch
+          } loop
+          {
+            counttomark 2 add index
+            dup (123) .peekstring not { stop } if
+            (%%+) eq {
+              dup (123) readstring pop pop
+              256 string readline pop
+              cvx exec
+            } {
+              pop exit
+            } ifelse
+          } loop
+        } stopped {
+          cleartomark
+        } {
+          counttomark 0 gt {
+            currentpagedevice /MaxSeparations get 4 gt {
+              ] << /SeparationColorNames 3 -1 roll >> setpagedevice
+            } {
+              cleartomark
+            } ifelse
+          } {
+            cleartomark
+          } ifelse
+        } ifelse
+    } {
+      (%%EndComments) anchorsearch {
+        pop pop
+        % Ignore any following comments
+        5 EPSBoundingBoxSetState
+      } {
+        pop
+      } 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
+        EPSDEBUG {(runEPS: Found EPS\n) print flush} if
+        systemdict /NOEPS known {
+          cvx .runNoEPS
+        } {
+          cvx .runEPS
+        } ifelse
+      } {
+        EPSDEBUG {(runEPS: Normal DSC\n) print flush} if
+        pop
+          cvx .runNoEPS
+
+      } ifelse
+      } {
+        EPSDEBUG {(runEPS: Short DSC\n) print flush} if
+      pop
+        cvx .runNoEPS
+      } ifelse
+    } {
+      EPSDEBUG {(runEPS: Not DSC\n) print flush} if
+      cvx .runNoEPS
+    } ifelse
+  } {
+    EPSDEBUG {(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

Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_fapi.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_fapi.ps	                        (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_fapi.ps	2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,460 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% 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.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc.,  7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA  94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% Redefine Font and CIDFont categories with FAPI-handeled fonts.
+
+systemdict /.FAPIavailable known { //null .FAPIavailable } { //false } ifelse not {
+  (%END FAPI) .skipeof
+} if
+
+languagelevel 2 .setlanguagelevel
+
+%====================================================================
+% Redefine Font category with FAPIfontmap and CIDFont with FAPIfontmap :
+15 dict begin    % a temporary dictionary for local binding.
+
+/EmbedFontObjectsQuery mark
+  /.EmbedFontObjects 0
+.dicttomark def
+
+/is_device_compatible_to_FAPI    % - is_device_compatible_to_FAPI <bool>
+{
+  //true % removed a bogus check against EmbedFontObjectsQuery
+  %
+  % Temporary switch to allow override of FAPI and fallback to GS font rendering
+  % to be removed at some date after FT integration is completed and released.
+  %
+  /DisableFAPI where {
+  /DisableFAPI get not and
+  }if
+  % The code above assumes that only the requested parameter is rendered.
+  % The commented-out code below may be useful for general case.
+  % Keeping it for a while.
+  % counttomark 2 idiv {
+  %   exch /.EmbedFontObjects eq {
+  %     counttomark 1 add 1 roll cleartomark
+  %     0 eq exit
+  %   } if
+  % } repeat
+  % dup mark eq {
+  %   pop //true
+  % } if
+} bind def
+
+%----------------------------- Process FAPIconfig -----------------------
+
+% The HookDiskFonts and HookEmbeddedFonts take a simple array setting normally.
+% but if two or more FAPI plugins are built in, they can take a dictionary,
+% whose contents are the FAPI subtype string of a given plugin as the key,
+% and an array containing the (sub)set of font types the plugin should handle.
+% Any repetition of font types is ill advised since the resulting bevhaviour
+% will depend on the order entries are stored in the dictionary, which is
+% indeterminate. An attempt to use request a font scaler/renderer which cannot
+% deal with a given font type will result in the FAPI resorting to it's default
+% search for a viable plugin.
+%
+% As an example, you might want UFST to handle Truetype/Type 42 fonts, and
+% Freetype to handle others, thus:
+% /HookDiskFonts << /UFST [11 42] /FreeType  [1 2 9] >>
+% /HookEmbeddedFonts << /UFST [11 42] /FreeType  [1 2 9] >>
+
+/Config
+<<
+  % If we've got a FAPIConfig, run it now.
+  systemdict /FAPIconfig known
+  {
+    /FAPIconfig .systemvar .runlibfile
+  } if
+
+  % Now setup defaults for any entries not set above - these defaults are correct
+  % for FAPI/Freeetype
+  currentdict /FontPath known not { /FontPath (/Fonts)} if			% A default directory for FAPI-handled font files
+                                                                        % path in FAPIfontmap.
+  currentdict /CIDFontPath known not { /CIDFontPath (/CIDFonts)} if		% A default directory for FAPI-handled CIDfont 							   % files path in FAPIcidfmap.
+  currentdict /HookDiskFonts known not { /HookDiskFonts [1 2 9 11 42] } if		% FontType values for disk PS fonts to be
+                                                                        % redirected to FAPI.
+  currentdict /HookEmbeddedFonts known not { /HookEmbeddedFonts [1 2 9 11 42] } if	% FontType values for embedded PS fonts to be
+                                                                        % redirected to FAPI.
+  /ServerOptions 2 dict
+>> def
+systemdict /.FAPIconfig //Config put
+
+/UFST .FAPIavailable
+{
+  systemdict /UFST_SSdir known
+  {
+      /UFSTFONTDIR UFST_SSdir def
+      systemdict /UFST_SSdir undef
+  }
+  {
+    /UFSTROMFONTDIR (%rom%fontdata/) def
+
+    UFSTROMFONTDIR (mtfonts/pcl45/mt3/plug__xi.fco) 
+    concatstrings status
+    {
+       pop pop pop pop
+       /UFSTFONTDIR UFSTROMFONTDIR def
+    }
+    {
+      /UFSTFONTDIR () def
+    } ifelse
+  } ifelse
+
+  systemdict /UFST_PlugIn known not
+  {
+    systemdict /UFST_PlugIn UFSTFONTDIR (mtfonts/pcl45/mt3/plug__xi.fco) concatstrings put
+  } if
+
+  systemdict /FCOfontfile known not
+  {
+    systemdict /FCOfontfile UFSTFONTDIR (mtfonts/pclps2/mt3/pclp2_xj.fco) concatstrings put
+  } if
+
+  systemdict /FCOfontfile2 known not
+  {
+    systemdict /FCOfontfile2 UFSTFONTDIR (mtfonts/pcl45/mt3/wd____xh.fco) concatstrings put
+  } if
+
+  systemdict /FAPIfontmap known not
+  {
+    systemdict /FAPIfontmap (FCOfontmap-PCLPS2) put
+  } if
+} if
+
+()
+systemdict /UFST_SSdir .knownget {
+  (UFST_SSdir=) exch concatstrings concatstrings
+} if
+systemdict /UFST_PlugIn .knownget {
+  1 index length 0 ne {
+    exch .filenamelistseparator concatstrings exch
+  } if
+  (UFST_PlugIn=) exch concatstrings concatstrings
+} if
+dup length 0 ne {
+  //Config /ServerOptions get exch /UFST exch put
+} {
+  pop
+} ifelse
+
+%------------------Copy the FontEmulationProcs here : -------------------
+
+/FontEmulationProcs /ProcSet findresource {
+  def
+} forall
+
+currentdict /super.complete_instance currentdict /complete_instance get put
+
+%-----------FAPI-specific methods for category redefinition : -----------
+
+/RefinePath      % <FontDict> /key RefinePath <FontDict>
+{ exch begin
+  //Config exch get
+  /Path exch
+  Path //false .file_name_combine not {
+    exch
+    (Can't combine paths ) print print ( and ) print =
+    /RefinePath cvx /configurationerror signalerror
+  } if
+  def
+  currentdict end
+} bind def
+
+/complete_instance  % <font_name> <FontDict> <Options> complete_FAPI_Font <font_name> <FontDict>
+{ //super.complete_instance exec
+  dup /CIDFontName known { /CIDFontPath } { /FontPath } ifelse //RefinePath exec
+} bind def
+
+/IsMyRecord      % <raw_record> -> <raw_record> bool
+{ dup type /dicttype eq { dup /FAPI known } { //false } ifelse
+} bind def
+
+/IsActive       % <record> IsActive <bool>
+{ pop //is_device_compatible_to_FAPI exec
+} bind def
+
+/FontRecordVirtualMethods //RecordVirtualMethodsStub dup length 2 add dict copy begin
+  /IsActive //IsActive def
+  /MakeInstance   % <Name> <record> MakeInstance <Name> <Instance> <size>
+  { currentglobal 3 1 roll //true setglobal
+    //FontOptions //complete_instance exec
+    2 copy //GetSize exec
+    4 3 roll setglobal
+  } bind def
+currentdict end def
+
+/CIDFontRecordVirtualMethods //RecordVirtualMethodsStub dup length 3 add dict copy begin
+  /GetCSI //TranslateCSI def
+  /IsActive //IsActive def
+  /MakeInstance   % <Name> <record> MakeInstance <Name> <Instance> <size>
+  { currentglobal 3 1 roll //true setglobal
+    //CIDFontOptions //complete_instance exec
+    2 copy //GetSize exec
+    4 3 roll setglobal
+  } bind def
+currentdict end def
+
+/ReadFCOfontmap:   % <path> ReadFCOfontmap: name dict ...
+{
+ /fontfile exch def
+  {
+    currentfile =string readline not {
+      pop exit
+    } if
+    dup length 0 ne {
+      0 () /SubFileDecode filter
+      dup token not {
+        % A comment line
+        closefile
+      } {
+        dup /EndFCOfontmap cvx eq {
+          pop closefile exit
+        } if
+        exch dup token not {
+          /ReadFCOfontmap: cvx /rangecheck signalerror
+        } if
+        exch dup token not {
+          /StandardEncoding
+        } {
+          dup type /nametype ne {
+            /ReadFCOfontmap: cvx /rangecheck signalerror
+          } if
+        } ifelse
+        findencoding
+        exch dup token not {
+          //null
+        } {
+          dup type /nametype ne {
+            /ReadFCOfontmap: cvx /rangecheck signalerror
+          } if
+          /Decoding findresource
+        } ifelse
+        exch closefile                 % index name enc dec|null
+        4 3 roll                       % name enc dec|null index
+        << /Path fontfile
+           /FontType 1
+           /FAPI /UFST
+           /SubfontId counttomark 2 add -1 roll
+           /Decoding  counttomark 2 add -1 roll
+           dup //null eq {
+             pop pop
+           } if
+           /Encoding  counttomark 2 add -1 roll
+
+           /FontInfo
+           <<
+             /UnderlineThickness 50
+             /Weight (Regular)
+             /version (0.00)
+             /ItalicAngle 0
+             /UnderlinePosition -100
+             /FamilyName ()
+             /Notice ()
+             /FullName ()
+           >>
+           % although we pretend this is a Type 1, the FAPI interface currently
+           % needs an identity FontMatrix
+           /FontMatrix [0.001 0.0 0.0 0.001 0.0 0.0]
+           % we need a fake CharStrings dictionary to placate certain jobs
+           % which try to look inside it
+           /CharStrings
+           <<
+             /.notdef (                    )
+             StandardEncoding { (                    ) } forall
+           >>
+           % FontBBox will get replaced with valid numbers pulled from the rendering engine
+           /FontBBox [-128 -128 1024 1024] cvx
+        >> % dup { exch == = } forall
+      } ifelse
+    } {
+      pop
+    } ifelse
+  } loop
+  currentdict /fontfile undef
+} bind def
+
+%----------------------------------The Redefintion---------------------
+
+/MappedCategoryRedefiner /ProcSet findresource /Redefine get /Redefine exch def
+
+% Redefine the /Font category :
+4 dict begin
+  /CategoryName /Font def
+  /MapFileName systemdict /FAPIfontmap known {/FAPIfontmap .systemvar} {(FAPIfontmap)} ifelse def
+  /VerifyMap  { pop } bind def
+  /PreprocessRecord  % <map> <Name> <raw_record> PreprocessRecord <map> <Name> <record> <bool>
+  { //IsMyRecord exec dup {
+      pop dup /RecordVirtualMethods //FontRecordVirtualMethods put
+      //true
+    } if
+  } bind def
+currentdict end Redefine
+
+% Redefine the /CIDFont category :
+4 dict begin
+  /CategoryName /CIDFont def
+  /MapFileName systemdict /FAPIcidfmap known {/FAPIcidfmap .systemvar} {(FAPIcidfmap)} ifelse def
+  /VerifyMap  { pop } bind def
+  /PreprocessRecord  % <map> <Name> <raw_record> PreprocessRecord <map> <Name> <record> <bool>
+  { //IsMyRecord exec dup {
+      pop dup /RecordVirtualMethods //CIDFontRecordVirtualMethods put
+      //true
+    } if
+  } bind def
+currentdict end Redefine
+
+%==================== A hook for buildfont* operators ====================
+
+% The procedure .FAPIhook redirects PS fonts to FAPI on necessity.
+% This depends on the following conditions :
+%
+% 1. If font dictionary has /FAPI entry, it is a font listed in FAPIconfig.FontPath,
+%    and must be build with .FAPIrebuildfont, or a copy of a font, which was
+%    built with .FAPIrebuildfont .
+%
+% 2. If the font dictionary has /PathLoad entry, and has no /FAPI entry,
+%    it is an installed PS font, which is described in lib/fontmap or
+%    in GS_FONTPATH. .loadfont inserts /PathLoad entry for this case
+%    (see gs_fonts.ps).
+%
+%    Installed fonts are being loaded with GS font loader,
+%    the they are passed to FAPI is same way as embedded fonts are.
+%    We do so because UFST cannot read fonts, which don't
+%    follow Type 1/42 file format strongly.
+%
+% 3. Executing .loadfont, we place /FAPI_hook_disable in the 0th
+%    element of some procedure on the execution stack - see gs_fonts.ps .
+%    If FAPI_hook finds /FAPI_hook_disable in there,
+%    it knows that it is called for a disk font during
+%    its internal definefont.
+%
+% 4. If font dictionary has no /FAPI entry, and has no /Path entry,
+%    and if we are not in .loadfont context, it is an embedded font.
+%
+% 5. Two entries to be defined in lib/FAPIconfig to control the hooking of PS fonts :
+%    HookDiskFonts and HookEmbeddedFonts .
+%    They specify arrays of font types (integers) to be redirected with FAPI.
+%    HookDiskFonts controls disk PS fonts (which fall into (2) and (3) ).
+%    HookEmbeddedFonts controls fonts being embedded into documents.
+%
+% 7. We apply the operator .passtoFAPI for checking whether FAPI can handle a font.
+%    If so, we insert /FAPI entry into the font dictionary and convert it
+%    with .FAPIrebuildfont . Otherwise the font is handled with the native GS font renderer.
+
+/FAPI_hook_debug   % <proc> FAPI_hook_debug -
+FAPIDEBUG { {exec} } { {pop} } ifelse
+bind def
+
+/FAPI_hook_warn   % <proc> FAPI_hook_debug -
+QUIET { {pop} } { {exec} } ifelse
+bind def
+
+/FAPI_is_hook_disabled     % - FAPI_is_hook_disabled <bool>
+{ % checks whether execution stack contains packedarray started with /FAPI_hook_disable .
+  /FAPI_hook_disable /MappedCategoryRedefiner /ProcSet findresource /execstack_lookup get exec
+  //null ne
+} bind def
+
+/FAPIhook_aux  %      <string|name> <font_dict> .FAPIhook <string|name> <font>
+{                                                     % name <<font>>
+  { (\nFAPIhook ) print 1 index = flush } //FAPI_hook_debug exec
+  dup /FAPI known {
+    { //PrintFontRef exec ( is mapped to FAPI=) print dup /FAPI get = flush } //FAPI_hook_debug exec
+    //true //.FAPIrebuildfont //ChooseDecoding exec
+  } {
+    dup /PathLoad known dup {
+      { (PathLoad known for the font ) print //PrintFontRef exec (.\n) print flush} //FAPI_hook_debug exec
+    } {
+      pop //FAPI_is_hook_disabled exec dup
+      { pop
+        { (FAPIhook is in .loadfont context for the font ) print //PrintFontRef exec (.\n) print flush } //FAPI_hook_debug exec
+        //true
+      } if
+    } ifelse
+    { /HookDiskFonts } { /HookEmbeddedFonts } ifelse
+    //Config exch get                                  % name <<font>> [types]
+
+    dup type /dicttype eq
+    {
+      //false exch
+      {
+        3 index //GetFontType exec //FindInArray exec
+        {
+          2 index exch /FAPIPlugInReq exch put
+          pop //true exit
+        }
+        { pop } ifelse
+      } forall
+    }
+    {
+        1 index //GetFontType exec //FindInArray exec      % name <<font>> bHook
+    } ifelse
+
+    { { (Trying to render the font ) print //PrintFontRef exec ( with FAPI...\n) print flush } //FAPI_hook_debug exec
+      //.FAPIpassfont {
+        { //PrintFontRef exec ( is being rendered with FAPI=) print dup /FAPI get = flush } //FAPI_hook_debug exec
+        //false //.FAPIrebuildfont //ChooseDecoding exec
+      } {
+        { (Can't render ) print //PrintFontRef exec ( with FAPI, will do with native GS renderer.\n) print flush } //FAPI_hook_warn exec
+      } ifelse
+    } {
+      { (The font ) print //PrintFontRef exec ( doesn't need to render with FAPI.\n) print flush } //FAPI_hook_debug exec
+    } ifelse
+
+    % Remove the plugin request from the font dictionary
+    dup /FAPIPlugInReq undef
+  } ifelse
+} bind def
+
+/FAPIhook  %      <string|name> <font_dict> .FAPIhook <string|name> <font>
+{ //is_device_compatible_to_FAPI exec
+  { //FAPIhook_aux exec
+  } {
+    { (FAPIhook is disabled for the current device.\n) print flush } //FAPI_hook_debug exec
+  } ifelse
+} bind def
+
+% ------------------ Redefine .buildfont* with FAPI : -----------------------
+
+/.buildfont1
+{ //.buildfont1 exec exec //FAPIhook exec
+} bind % 'odef' is below.
+
+/.buildfont2
+{ //.buildfont2 exec //FAPIhook exec
+} bind % 'odef' is below.
+
+/.buildfont42
+{ //.buildfont42 exec //FAPIhook exec
+} bind % 'odef' is below.
+
+/.buildfont9
+{ //.buildfont9 exec //FAPIhook exec
+} bind % 'odef' is below.
+
+/.buildfont10
+{ //.buildfont10 exec //FAPIhook exec
+} bind % 'odef' is below.
+
+/.buildfont11
+{ //.buildfont11 exec //FAPIhook exec
+} bind % 'odef' is below.
+
+end % the temporary dictionary for local binding.
+odef odef odef odef odef odef
+
+.setlanguagelevel
+
+%END FAPI

Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_fntem.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_fntem.ps	                        (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_fntem.ps	2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,415 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% 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.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc.,  7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA  94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% A procset for Postscript font emulation
+
+% The procedures must not depend on the presence of the
+% procset dictionary on the dictionary stack.
+
+languagelevel 2 .setlanguagelevel
+
+%========================= Process xlatmap ====================
+mark
+%% Replace 1 (xlatmap)
+(xlatmap) .runlibfile
+.dicttomark dup systemdict exch /.xlatmap_dict exch put
+
+% Convert it into a plain text to simplify the processing in C :
+% *(fontkind\0\0\ *(charmap\0decoding\0) ) \0
+
+() exch {
+  3 1 roll =string cvs concatstrings (\0\0) concatstrings
+  exch
+  { =string cvs concatstrings (\0) concatstrings
+  } forall
+} forall
+(\0) concatstrings
+systemdict exch /.xlatmap exch put
+
+/FontEmulationProcs 10 dict begin
+
+%-------------------------------Font--------------------------------
+
+/FontCommon  % - font_common -
+{ currentdict /PaintType known not {
+    /PaintType 0 def
+  } if
+  currentdict /Encoding .knownget not {
+    //StandardEncoding
+  } if
+  dup type /nametype eq {
+    /Encoding findresource
+  } if
+  /Encoding exch def
+} bind def
+
+/FontOptions 5 dict begin
+  /make_procs currentdict def
+  /NameKey /FontName def
+  /TypeKey /FontType def
+
+  1
+  {
+    currentdict /FontMatrix known not { /FontMatrix [0.001 0 0 0.001 0 0] def } if
+    currentdict /FontBBox known not { /FontBBox [-128 -128 1024 1024] cvx def } if % zfapi.ps refines it.
+    /Private 0 dict def
+    % if we're using the FAPI/UFST code for Microtype fonts,
+    % then we've already created a "fake" CharStrings, so don't replace it.
+    % See gs_fapi.ps
+    currentdict /CharStrings known not {/CharStrings << /.notdef () >> def} if
+    //FontCommon exec
+  } bind def
+
+  42
+  { /FontMatrix [1 0 0 1 0 0] def
+    /FontBBox [0 0 1 1] def % zfapi.ps refines it.
+    /CharStrings <<>> def
+    /sfnts [<00010000 0000 0000 0000 0000 0000>] def
+    /GlyphDirectory [] def
+    //FontCommon exec
+  } bind def
+
+  %fixme : more font types.
+
+currentdict end def
+
+%---------------------------CIDFont---------------------------
+
+/TranslateCSI   % <record> TranslateCSI <CSI>
+{ RESMPDEBUG { (fntem TranslateCSI beg ) = } if
+  begin
+  CSI length 2 eq {
+    << /Registry (Adobe)
+       /Ordering CSI aload pop
+       /Supplement exch
+    >>
+  } {
+    << /Registry CSI 0 get
+       /Ordering CSI 1 get
+       /Supplement CSI 2 get
+    >>
+  } ifelse
+  end
+  RESMPDEBUG { (fntem TranslateCSI end ) = } if
+} bind def
+
+/CIDFontCommon
+{ /CIDSystemInfo currentdict //TranslateCSI exec def
+  currentdict /CSI undef
+  /FontBBox [-128 -128 1024 1024] def % zfapi.ps refines it.
+  /CIDCount 1 def % ChooseDecoding will set a reasonable value.
+} bind def
+
+% GFlyph substitution table for narrow, wide, proportional glyphs -
+% used with TrueTypes.
+
+currentpacking //false setpacking
+/SubstNWP <<
+
+  % Array format : orig_type, beg_CID, end_CID, subst_beg_CID, subst_type
+  % type = (n==narrow, w==wide, p==proportional).
+
+  /Japan1
+  { p 1 94 231 n
+
+    p 17 26 780 w
+    p 34 59 790 w
+    p 66 91 816 w
+    w 842 842 7918 w  % fixme: These substitutions require to shift the glyph origin.
+    w 844 844 7919 w
+    w 846 846 7920 w
+    w 848 848 7921 w
+    w 850 850 7922 w
+    w 876 876 7923 w
+    w 908 908 7924 w
+    w 910 910 7925 w
+    w 912 912 7926 w
+    w 914 914 7927 w
+    w 925 925 7928 w
+    w 927 927 7929 w
+    w 929 929 7930 w
+    w 931 931 7931 w
+    w 933 933 7932 w
+    w 959 959 7933 w
+    w 991 991 7934 w
+    w 993 993 7935 w
+    w 995 995 7936 w
+    w 1002 1002 7937 w
+    w 1009 1009 7938 w
+    w 1010 1010 7939 w
+  } cvlit
+
+  /Japan2 1 index
+
+  /CNS1
+  { p 1 94 13648 n
+
+    p 17 26 333 w
+    p 34 59 365 w
+    p 66 91 391 w
+  } cvlit
+
+  /GB1
+  { p 2 94 814 n
+
+    p 2 94 262 w
+
+    p 1 1 7716 n
+  } cvlit
+
+  /Korea1
+  { p  1 60 8094 n
+    p 62 94 8155 n
+
+    p  2 59 264 w
+    p 63 94 325 w
+  } cvlit
+
+  /Identity []
+
+  /Unicode []
+
+>> def
+setpacking
+
+/CIDFontOptions 5 dict begin
+  /make_procs currentdict def
+  /NameKey /CIDFontName def
+  /TypeKey /CIDFontType def
+
+  0
+  { //CIDFontCommon exec
+    /FDArray [
+      14 dict begin
+        /FontName CIDFontName =string cvs (%) concatstrings cvn def
+        /FontType 1 def
+        /FontMatrix [0.001 0 0 0.001 0 0 ] def
+        /PaintType 0 def
+        /Private 0 dict def
+        currentdict
+      end
+    ] def
+    /GlyphDirectory [] def
+    /GDBytes 1 def
+    /FDBytes 0 def
+  } bind def
+
+  1
+  { //CIDFontCommon exec
+    /FontMatrix [1 0 0 1 0 0] def
+    /BuildGlyph {} def
+  } bind def
+
+  2
+  { //CIDFontCommon exec
+    /FontMatrix [1 0 0 1 0 0] def
+    /GDBytes 2 def
+    /CIDMap <0000> def
+    /sfnts [<00010000 0000 0000 0000 0000 0000>] def
+    /Encoding [] def
+    /CharStrings << /.notdef 0 >> def
+  } bind def
+
+currentdict end def
+
+/complete_instance  % <font_name> <FontDict> <Options> complete_FAPI_Font <font_name> <FontDict>
+{ begin
+  dup length dict copy
+  begin
+  dup type /nametype ne { cvn } if
+  dup NameKey exch def
+  currentglobal //true setglobal
+  make_procs TypeKey load .knownget {
+    exec
+  } { setglobal
+      /complete_instance cvx /invalidfont signalerror
+  } ifelse
+  setglobal
+  currentdict end
+  end
+} bind def
+
+/GetFilePath    % <scratch> <Name> <record> GetFilePath <filepath>
+{ exch pop                       % (scratch) <record>
+  /Path get                      % (scratch) (path)
+  exch copy
+  % What we make here it is not a complete PS resource.
+  % Unable to provide full conformity :
+  % the attempt to run this file may fail.
+} bind def
+
+/GetSize        % <Name> <record> GetSize <size>
+{ pop pop -1 % Unknown size.
+  % fixme: probably we could provide an estimation size for some fonts.
+} bind def
+
+/RecordVirtualMethodsStub 3 dict begin
+  /GetFilePath //GetFilePath def
+  /GetSize //GetSize def
+currentdict end def
+
+% ---------------------- Decoding helpers ----------------------------
+
+/encodingnames mark
+ StandardEncoding /StandardEncoding
+ ISOLatin1Encoding /ISOLatin1Encoding
+ SymbolEncoding /SymbolEncoding
+ DingbatsEncoding /DingbatsEncoding
+.dicttomark def
+
+/ChooseDecoding  % <font> ChooseDecoding <font>
+{ { % A loop for 'exit' context.
+    dup /Decoding .knownget {
+      dup type /nametype eq {
+        1 index /CIDFontType known { /CIDDecoding } { /Decoding } ifelse
+        findresource 1 index exch /Decoding exch put
+      } {
+        pop
+      } ifelse
+      dup /CIDFontType known {
+        dup dup /Decoding get /CIDCount get /CIDCount exch put
+      } if
+      exit
+    } if
+    dup /CIDFontType known {
+      % This is a hooked CID font, no need for Decoding.
+      exit
+    } if
+    % This works when the renderer can't choose character by name,
+    % and we cannot determine the charset.
+    % Probably this branch is to be removed after UFST problem is fixed.
+    dup /Encoding get                                    % <<font>> encoding
+    dup type /nametype eq {
+      /Decoding findresource 1 index exch /Decoding exch put
+    } {
+      dup //encodingnames
+      exch .knownget {
+        { /Decoding findresource } stopped {pop pop //true}{ exch pop 1 index exch /Decoding exch put //false } ifelse
+      }
+      {
+          //true
+      } ifelse
+
+      {
+        % unknown encoding, or an encoding for which we don't have a
+        % predefined decoding, convert it to decoding :
+        dup length dict begin
+        /.notdef 0 def
+        0 1 currentdict length 1 sub
+        { dup 2 index exch get
+          dup dup /.notdef ne exch type /nulltype ne and {
+            exch def
+          } {
+            pop pop
+          } ifelse
+        } for
+        pop
+        currentdict end
+        1 index exch /Decoding exch put
+      } if
+    } ifelse
+    exit
+  } loop
+  dup /CIDFontType known {
+    dup /SubstNWP .knownget not {
+      dup /CIDSystemInfo get /Ordering get cvn
+    } if
+    dup type /nametype eq {
+      //SubstNWP exch .knownget not {
+        []
+      } if                                   % <<font>> [SubstNWP]
+    } if
+    1 index exch /SubstNWP exch put
+  } if
+} bind def
+
+/PrintFontRef      % <string|name> <font> PrintFontRef <string|name> <font>
+{ dup /FontName known { (Font ) } { (CIDFont ) } ifelse print
+  1 index =string cvs print
+  dup /FontName .knownget not {
+    dup /CIDFontName get
+  } if                               % <string|name> <font> <fontname>
+  dup 3 index ne {
+    ( \( aliased from ) print
+    =string cvs print ( \)) print
+  } {
+    pop
+  } ifelse
+} bind def
+
+/GetFontType       % <font> GetFontType int
+{ dup /CIDFontType .knownget {
+    exch pop 9 add
+  } {
+    /FontType get
+  } ifelse
+} bind def
+
+/FindInArray    % <array> <elem> .array_find <bool>
+{ //false 3 1 roll
+  exch {                      % false elem elem_i
+    1 index eq {              % false elem
+       pop //true exch
+    } if
+  } forall
+  pop
+} bind def
+
+/ProvideUnicodeDecoding % <font> ProvideUnicodeDecoding <font>
+{
+  % If the font is maintained by FAPI, or if it is TT-emulated CID font,
+  % it already has /Decoding. But its value isn't guaranteeed to
+  % be an Unicode decoding. Since we can't determine whether
+  % it is an Unicode decoding, we unconditionally load an appropriate Unicode decoding
+  % and attach it with /GlyphNames2Unicode entry.
+  %
+  % Another interesting case is when the font already has /GlyphNames2Unicode.
+  % The latter to be used instead. Note that /GlyphNames2Unicode
+  % appears only when type 32 fonts are disable (see .pdf_hook_DSC_Creator),
+  % but an automatic disabling is not implemented yet.
+
+  currentglobal //true setglobal exch
+  dup /FontInfo known not {
+    dup /FontInfo 1 dict put
+  } if
+  { % A loop just for 'exit' context.
+    dup /FontInfo get /GlyphNames2Unicode known {
+      exit
+    } if
+    dup /CIDFontType known {
+      dup mark exch                                              % bool <font> [ <font>
+      dup /CIDSystemInfo get /Ordering get (.Unicode)            % bool <font> [ <font> () ()
+      concatstrings cvn                                          % bool <font> [ <font> /Name
+      /CIDDecoding { findresource } stopped {
+        % Can't provide a decoding, giving up without creating /GlyphNames2Unicode.
+        cleartomark exit
+      } if                                                       % bool <font> [ <font> <D>
+      exch /FontInfo get exch                                    % bool <font> [ <FI> <D>
+      /GlyphNames2Unicode exch
+      .forceput % FontInfo can be read-only.
+      pop                                                        % bool <font>
+      exit
+    } if
+    dup /FontInfo get                                            % bool <font> <FI>
+    /GlyphNames2Unicode /Unicode /Decoding findresource
+    .forceput % FontInfo can be read-only.
+    exit
+  } loop
+  exch setglobal
+} bind def
+
+currentdict end /ProcSet defineresource pop
+
+.setlanguagelevel

Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_fonts.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_fonts.ps	                        (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_fonts.ps	2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,1288 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% 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.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc.,  7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA  94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% Font initialization and management code.
+
+% Define the default font.
+/defaultfontname /Courier def
+
+% Define the name of the font map file.
+% Note that the "%%Replace " comment below provides the font map file name
+% for compiling initialization files into executable. Most likely it should be
+% consistent with the one specified here.
+/defaultfontmap (Fontmap) def
+
+/defaultfontmap_content 50 dict
+1 dict begin
+/; { 2 index 3 1 roll .growput } bind def
+%% Replace 0 (Fontmap)
+end def
+
+% ------ End of editable parameters ------ %
+
+% Define the UniqueIDs and organization XUID assigned to Artifex.
+% 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 8192 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
+userdict /.nativeFontmap .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.
+/.definefontmapaux                 % <bool> <fontname> <file|alias> .definefontmapaux -
+ {              % Since Fontmap is global, make sure the values are storable.
+   % If the fontname contains Unicode (first byte == \000) and
+   % this is not an alias definition, define an alias using ASCII
+   % (stripping out the high \000 bytes). Observed with some TT fonts.
+   1 index 100 string cvs
+   dup length 0 gt {
+     0 get 0 eq 1 index type /nametype ne and {
+       1 index 100 string cvs dup length 2 div cvi string //true exch
+       0 1 2 index length 1 sub {
+         % stack: fontname filename fontnamestring addflag newstring index
+         dup 4 index exch 2 mul get 0 ne {
+           % High byte of pair is not \000
+           pop pop //false exch
+           exit
+         } if
+         dup 4 index exch 2 mul 1 add get 2 index 3 1 roll put
+       } for
+       exch {
+         DEBUG { (\nAdding alias for: ) print 1 index ==only ( as: ) print dup //== exec flush } if
+           cvn exch cvn .definefontmapaux	% recurse with an alias
+       } {
+         pop pop	% discard the name
+       } ifelse
+     } if
+   } {
+     pop
+   } ifelse
+   .currentglobal 3 1 roll //true .setglobal
+   dup type /stringtype eq
+    { dup .gcheck not { dup length string copy } if
+    }
+   if
+
+   4 -1 roll {.nativeFontmap}{Fontmap} ifelse
+   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
+
+/.definefontmap                 % <fontname> <file|alias> .definefontmap -
+{
+  //false 3 1 roll //.definefontmapaux exec
+} bind def
+
+/.definenativefontmap                 % <fontname> <file|alias> .definenativefontmap -
+{
+  //true 3 1 roll //.definefontmapaux exec
+} 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 {
+    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 { //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
+  } { closefile pop //false } ifelse
+} 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 8192 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 ] (*) .generate_dir_list_templates
+   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 .nativeFontmap exch known
+                { pop pop
+                }
+                { exch copystring exch
+                  DEBUG { ( ) print dup =only flush } if
+                  1 index .definenativefontmap
+                  .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
+   pop
+   setglobal
+ } bind def
+
+%END FONTPATH
+
+% Try to enumerate native fonts registered with the os
+% and add them to the fontmap. This relies on a custom
+% operator which calls platform-specific C code. It
+% returns an array of arrays, each containing a pair
+% of strings: what the system thinks is the ps name,
+% and the access path.
+/.setnativefontmapbuilt { % set whether we've been run
+  systemdict exch /.nativefontmapbuilt exch .forceput
+} .bind executeonly def
+systemdict /NONATIVEFONTMAP known .setnativefontmapbuilt
+/.buildnativefontmap {   % - .buildnativefontmap <bool>
+  systemdict /.nativefontmapbuilt .knownget not
+  { //false} if
+
+  {//false}
+  {
+    QUIET not {
+      (Querying operating system for font files...\n)
+      print flush
+    } if
+    .getnativefonts dup
+    {
+      exch
+      {
+        % stack: [ (name) (path) ]
+        % verify the font name ourselves
+        dup 1 get (r) { file } .internalstopped
+        {
+          % skip the entry if we can't open the returned path
+          pop pop pop
+        }{
+          % we could open the font file
+          mark 2 1 roll
+          {.findfontname} .internalstopped
+          {
+            cleartomark
+            pop
+          }
+          {
+            counttomark 1 add -1 roll pop
+            not { dup 0 get } if  % stack: (newname) [ (name) (path) ]
+            % DEBUG { (  found ) print dup print (\n) print flush } if
+            % add entry to the fontmap
+            1 index exch 0 exch dup type /nametype ne {cvn} if put
+            aload pop .definenativefontmap
+          } ifelse
+        } ifelse
+      } forall
+    } if
+    % record that we've been run
+    //true .setnativefontmapbuilt
+  } ifelse
+} bind def
+
+% 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
+      dup /OrigFont known not {
+        dup dup /OrigFont exch .growput
+      } if
+      //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
+      } {
+        {.buildcidfont}		% so it gets bound
+      } ifelse
+  } stopped { $error /command get /invalidfont signalerror } if
+
+      % Execute the .buildxxxfontx outside the 'stopped', because we don't
+      % want its errors converted to invalidfont.
+      exec
+
+  {
+
+      DISKFONTS {
+        FontFileDirectory 2 index known {
+          dup /FontFile FontFileDirectory 4 index get .growput
+          } if
+      } if
+      systemdict /ProvideUnicode .knownget not { //false } if {
+        /FontEmulationProcs /ProcSet findresource
+        /ProvideUnicodeDecoding get exec
+      } if
+      readonly          % stack: name fontdict
+  } stopped { $error /command get /invalidfont signalerror } if
+} bind def
+/definefont
+ { dup rcheck not {
+      /definefont cvx /invalidaccess signalerror
+   } if
+   /definefont cvx {.completefont} .errorexec
+                % If the current allocation mode is global, also enter
+                % the font in LocalFontDirectory.
+   .currentglobal
+    { //systemdict /LocalFontDirectory .knownget
+       { 2 index 2 index { .growput } //superexec }	% readonly
+      if
+    }
+   if
+   dup .FontDirectory 4 -2 roll { .growput } //superexec	% readonly
+                % If the font originated as a resource, register it.
+   currentfile .currentresourcefile eq { dup .registerfont } if
+   readonly
+ } 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
+                             % <bool> <name> <font>
+   dup length 2 add dict     % <bool> <name> <font> <dict>
+   dup 3 -1 roll             % <bool> <name> <dict> <dict> <font>
+   { 1 index /FID eq { pop pop } { put dup } ifelse } forall
+                             % <bool> <name> <dict> <dict>
+                % 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
+    { pop                              % <bool> <name> <dict>
+      1 index dup type /stringtype eq { cvn } if
+                                       % <bool> <name> <dict> <name1>
+           % HACK:
+           % We want to know whether we alias a font,
+           % because in this case its FontName to be replaced with the alias.
+           % There is no simple way to know that at this point.
+           % But if the original font has defaultfontname,
+           % we probably substitute it rather than alias.
+           % Using such condition as an approximation to the strong condition.
+           %
+           % Note it works wrongly if Fontmap maps something to defaultfontname like this :
+           %        /Courier  /NimbusMonL-Regu	;
+           %        /Something /Courier ;
+           % The FontName of Something will not be /Something. It will be /Courier .
+           %
+      1 index /FontName get defaultfontname ne {
+        2 copy /FontName exch put
+      } if
+      1 index exch /.Alias exch put    % <bool> <name> <dict>
+      dup dup /OrigFont exch .growput
+                % Don't bind in definefont, since Level 2 redefines it.
+      /definefont .systemvar exec
+    }
+    { /findfont cvx {.completefont} .errorexec 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
+/.setloadingfont {
+   //systemdict /.loadingfont 3 -1 roll .forceput
+} .bind odef % .forceput must be bound and hidden
+/.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.
+   //true .setloadingfont
+   { /FAPI_hook_disable pop % gs_fapi accesses this with execstack_lookup - don't remove !
+     {{.loadfontfile} .execasresource} count 1 sub 2 .execn
+     count exch sub { pop } repeat
+     exit
+   } loop % this loop is a pattern for execstack_lookup, don't remove !
+   //false .setloadingfont
+ } 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 [
+        % Define substitutes for the fonts we define in Fontmap.GS
+  [(Charter) /Times 0]
+  [(Utopia) /Times 0]
+  [(Antiqua) /Times 0]
+  [(Calligraphic) /Helvetica 0]
+  [(Hershey) /Times 0]
+        % 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) 1] [(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
+   {
+     .nativeFontmap 1 index known not
+     {pop defaultfontname } if
+   } 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 {             % <fontname> .findfont <font>
+  mark 1 index        % <fontname> mark <fontname>
+  //systemdict begin .dofindfont
+                      % <fontname> mark <alias> ... <font>
+        % Define any needed aliases.
+  counttomark 1 sub { .aliasfont } repeat end
+                      % <fontname> mark <font>
+  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 mark <alias1> ... <aliasN> <font>
+      /SUBSTFONT where {
+        pop QUIET not {
+          (Substituting for font ) print dup =only
+          (.) = flush
+        } if
+                        % No aliasing.
+                        % This mode is incompatible with high level devices.
+        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
+      } ifelse
+  /Font findresource
+} bind def
+
+% Default font substitution does {pop /Courier} om many implementations.
+% GS post-process font substitution in .stdsubstfont and uses {} for
+% backward compatibility
+$error /SubstituteFont { } 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 {   %  mark <fontname> .dofindfont % mark <alias> ... <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    % mark <fontname>
+      .dofindfont
+    } {
+                        % No more directories to scan. Try building the native
+                        % font map entries if we haven't already done so.
+        .buildnativefontmap {
+                        % Same stack as at the beginning of .dofindfont.
+        .dofindfont     % start over
+      } {
+                        % No luck.  Make sure we're not already
+                        % looking for the default font.
+        QUIET not {
+          (Didn't find this font on the system!\n)
+          print
+        } if
+        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.
+                        % Same stack as at the beginning of .dofindfont.
+        $error /SubstituteFont get exec
+                         %
+                         % igorm: I guess the surrounding code assumes that .stdsubstfont
+                         % must ADD an alias to allow .checkalias and .findfont to work properly.
+                         % Also I guess that a trailing recursion is
+                         % used in .dofindfont and through .stdsubstfont
+                         % just to represent a simple iteration,
+                         % which accumulates the aliases after the mark.
+        .stdsubstfont
+      } ifelse
+    } 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
+       { //true //true }
+       {                % Unknown font name.  Look for a file with the
+                        % same name as the requested font.
+         dup .tryloadfont
+         { exch pop //true //false }
+         {
+           % if we can't load by name check the native font map
+           dup .nativeFontmap exch .knownget
+           { //true //true }
+           { //false //false } ifelse
+         } ifelse
+       } ifelse
+
+       {                % Try each element of the Fontmap in turn.
+         pop
+         //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
+                 //true .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
+       }
+      if
+    }
+   ifelse
+ } bind def
+
+% any user of .putgstringcopy must use bind and executeonly
+/.putgstringcopy  %   <dict> <name> <string> .putgstringcopy -
+{ 2 index gcheck currentglobal
+  2 copy eq {
+    pop pop .forceput
+  } {
+    5 1 roll setglobal
+    dup length string copy
+    .forceput setglobal
+  } ifelse
+} .bind odef % must be bound and hidden for .forceput
+
+% 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
+    pop dup .fonttempstring /FontResourceDir getsystemparam .genericrfn
+    {//false .loadfontloop} .internalstopped {//false} if {
+      //true
+    } {
+      dup .nametostring
+      {//true .loadfontloop} .internalstopped {//false} if
+    } ifelse
+  } {
+    {//true .loadfontloop} .internalstopped {//false} if
+  } ifelse
+} bind def
+
+/.loadfontloop {        % <fontname> <filename> <libflag> .loadfontloop
+                        %   <font> true
+                        % -or-
+                        %   <fontname> false
+                        % See above regarding the use of 'loop'.
+    {                   % Is the font name a string?
+        1 index type /stringtype ne
+         { pop
+           QUIET not
+            { (Can't find font with non-string name: ) print dup =only (.) = flush
+            }
+           if pop //false exit
+         } if
+
+        % check <libflag>
+        {
+          findlibfile not
+        } {
+          dup (r) { file } stopped {
+            pop pop //true
+          } {
+            //false
+          } ifelse
+        } ifelse {
+          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 .forceundef		% readonly
+           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
+         { dup /PathLoad 4 index //.putgstringcopy exec
+           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 dup      % Stack: origfontname fontdirectory path path
+        (r) file .findfontname
+         {            % Stack: origfontname fontdirectory path filefontname
+           2 index 1 index .fontknownget
+            {   % Yes.  Stack: origfontname fontdirectory path filefontname fontdict
+              dup 4 -1 roll /PathLoad exch //.putgstringcopy exec
+                      % Stack: origfontname fontdirectory filefontname fontdict
+              3 -1 roll pop
+                      % Stack: origfontname filefontname fontdict
+              dup /FontName get dup FontDirectory exch .forceundef
+              GlobalFontDirectory exch .forceundef
+              dup length dict .copydict dup 3 index /FontName exch put
+              2 index exch definefont
+              exch
+              QUIET
+               { pop
+               }
+               { (Using ) print =only
+                 ( font for ) print 1 index =only
+                 (.) = flush
+               }
+              ifelse  % Stack: origfontname fontdict
+              exch pop //true exit
+                      % Stack: fontdict
+            }
+           if pop % Stack: origfontname fontdirectory path
+         }
+        if pop pop  % Stack: origfontname
+
+                % The font definitely did not load correctly.
+        QUIET not
+         { (Loading ) print dup =only
+           ( font failed.) = flush
+         } if
+        //false exit
+
+    } loop              % end of loop
+
+ } bind executeonly def % must be bound and hidden for .putgstringcopy
+
+currentdict /.putgstringcopy .undef
+
+% Define a procedure to load all known fonts.
+% This isn't likely to be very useful.
+/loadallfonts
+{
+  [Fontmap .nativeFontmap] { { pop findfont pop } forall } 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 .nativeFontmap ]
+      {
+        {
+          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 } //superexec   % readonly
+          } {
+            pop
+          } ifelse
+        } forall
+      } 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
+               //false .file_name_combine
+               {
+                 dup VMDEBUG
+                 (r) { file } .internalstopped {
+                   pop pop
+                   defaultfontmap_content { .definefontmap } forall
+                 } {
+                   .loadFontmap
+                 } ifelse
+               } {
+                 pop pop
+               } ifelse
+             }
+          }
+         ifelse forall
+    }
+   if
+   userdict /defaultfontmap_content .undef
+   .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

Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_frsd.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_frsd.ps	                        (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_frsd.ps	2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,80 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% 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.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc.,  7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA  94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% 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 0 dict} 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
+                % We must allocate the string in the same VM space as its
+                % source, since the reusable stream must be allocated there.
+
+    .currentglobal 1 index gcheck .setglobal exch
+    currentpacking //false setpacking exch
+                % Stack: dict filters parms CloseSource oldglobal oldpacking file
+    [ exch { dup 40000 string readstring not { exit } if exch } loop
+      exch pop
+    ]
+                        % Stack: dict filters parms CloseSource oldglobal oldpacking [()...]
+    3 1 roll setpacking setglobal
+                        % Stack: dict filters parms CloseSource [()...]
+    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

Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_icc.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_icc.ps	                        (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_icc.ps	2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,109 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% 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.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc.,  7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA  94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% We need LanguageLevel 2 or higher in order to have setuserparams and
+% << >> dictionaries
+languagelevel dup 2 .max .setlanguagelevel
+
+% ICCBased color space method dictionaries.
+% This assumes gs_ciecs2.ps has already been processed.
+
+.currentglobal //true .setglobal
+
+% gs_res.ps uses these entries in colorspacedict
+% to populate the ColorSpaceFamily resource, so we need
+% to add the supported spaces.
+%
+systemdict /colorspacedict get begin
+/ICCBased [] def
+end
+
+NOPSICC { (%END PSICC) .skipeof } if
+% Now set up ICC profile loading for PostScript %%BeginICCProfile sections.
+
+/cs-sig-dict <<
+  (XYZ ) 3
+  (Lab ) 3
+  (Luv ) 3
+  (YCbr) 3
+  (Yxy ) 3
+  (RGB ) 3
+  (GRAY) 1
+  (HSV ) 3
+  (HLS ) 3
+  (CMYK) 4
+  (CMY ) 3
+>> readonly def
+
+systemdict begin
+/.ProcessICCcomment { % file comment --  file comment
+  dup
+  (%%BeginICCProfile) anchorsearch {
+    pop pop
+    DEBUG { (.ProcessICCcomment found %%BeginICCProfile) print flush } if
+
+    % load an ICC profile defined as comments (hex encoded).
+    % Ends with %%End at the start of a line. Read the data into
+    % an array of strings. This string can be used directly as a
+    % source for ReusableStreamDecode filter.
+    %
+    % stack: --file-- (%%BeginICCProfile: ...)
+    1 index 0 (%%EndICCProfile) /SubFileDecode filter
+    [ { counttomark 1 add index
+        64000 string readhexstring
+        not { exit } if
+      } loop
+    ] exch closefile
+
+    % make a seekable -file- out of the string array
+    mark /AsyncRead //true .dicttomark /ReusableStreamDecode filter
+    % stack: --file-- (%%BeginICCProfile: ...) --icc_subfile--
+
+    dup 16 setfileposition
+    dup (1234) readstring pop
+    1 index 0 setfileposition
+
+    //cs-sig-dict exch .knownget {
+      3 dict begin
+      /Alternate {0 /DeviceGray 0 /DeviceRGB /DeviceCMYK } 2 index get def
+      /N exch def
+      /DataSource exch def
+      [/ICCBased currentdict]
+      end
+      { setcolorspace } stopped {
+        pop
+        QUIET not { (   *** Unable to load ICC profile from PostScript DSC comments ***) = flush } if
+      } if
+    } {
+      pop
+    } ifelse
+  } {
+    pop % Not interested in this DSC comment
+  } ifelse
+} bind def
+
+currentdict /cs-sig-dict undef
+
+% Merge ProcessICCcomment with existing handler
+/.ProcessICCcomment 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
+
+end	% systemdict
+%END PSICC
+.setglobal
+.setlanguagelevel

Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_il1_e.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_il1_e.ps	                        (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_il1_e.ps	2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,65 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% 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.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc.,  7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA  94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% 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

Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_img.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_img.ps	                        (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_img.ps	2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,864 @@
+% (C) 2002 Artifex, Inc.  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.
+%
+% 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.
+
+% image, colorimage, and imagemask implementation
+
+%
+% The design of the overprint facility in Ghostscript requires that color
+% specifications include the color space from which they were expressed,
+% even after conversion to the device color model. Directly including this
+% information in color specifications is usually not efficient, and is
+% difficult to integrate into the existing code structure. The alternative
+% approach taken is to extend a state mechanism through the device
+% interface, and make the current color space, or more specifically,
+% certain information about the current color space, a property of this
+% state.
+%
+% For such a mechanism to work, it is necessary to identify all changes
+% to the current color space. This is accomplished in the graphic library
+% by funneling all changes to the current color space through the
+% gs_setcolorspace procedure. At the PostScript interpreter level, this
+% result is achieved by forcing color space changes through the
+% setcolorspace operator.
+%
+% Aside from explicit use of setcolorspace, PostScript provides a few
+% implicit methods of changing the current color space. The setgray,
+% setrgbcolor, and setcmykcolor operators implicitly set the color space
+% while explicitly setting the current color. Similarly, the colorimage
+% operator and the traditional form of the image operator (5 operands)
+% both temporarily modify the current color space while an image is
+% being processed. The current file is concerned with the implementation
+% of these two operators. In addition, the traditional form of the
+% imagemask operator (5 operands), while it does not affect the current
+% color space, is closely related to the image operator and thus is
+% implemented in this file as well.
+%
+% In this implementation, all sampled objects are passed through one of
+% the internal operators .image1, .imagemask1, .image1alpha, .image2,
+% .image3, or .image4, each of which handles a specific ImageType value.
+%
+% The procedures in this file are responsible for constructing
+% image dictionaries from a set of stack entries. This is, in principle,
+% a trivial exercise. In practice it appears to be far more complex,
+% primarily due to the need to reconstruct the original state in the
+% event of an error. This is a particular problem for operators such as
+% image, which include data source objects that may, directly or
+% indirectly, be procedures. When these procedures are executed, the
+% image operator's operands must have been cleared from the operand
+% stack. Hence, the operand stack cannot be used to store state
+% information. Similarly, the dictionary stack also cannot be used to
+% store state information, as the data source procedures may depend on
+% a particular dictionary being on the top of this stack.
+%
+% Adobe's PostScript implementations determine the extent to which the
+% interpreter state is restored in the event of an error by the point at
+% which the error is detected. Errors in the image/colorimage/imagemask
+% operators that are detected before the data source procedures are
+% executed restore the state in effect before the image was processed.
+% Those that are detected as part of running the data source procedures
+% only attempt to restore the state to that in effect at the start of
+% the operator that failed (or at the conclusion of the data source
+% procedure, if this procedure failed to push a string).
+%
+% The implementation given here follows the Adobe convention. The
+% mechanism used is as follows:
+%
+%   1. Check that the stack has a sufficient number of operands, and
+%      that enough of them have the proper type to allow construction
+%      of the image dictionary. Any errors at this point are handled
+%      in the conventional manner.
+%
+%   2. Build the image dictionary, in the process clearing the image/
+%      colorimage/imagemask operands from the stack. No errors can
+%      occur during this process.
+%
+%      (Special precautions could be taken during this step to handle
+%      a limitcheck or VMError during the building of the image
+%      dictionary, but this essentially never occurs in practice and, if
+%      it did, is very unlikely to leave a useable state. Hence, we don't
+%      bother with this possibility.)
+%
+%   3. The .image operator is executed in a stopped context. If it
+%      returns abnormally, a check is made to see if the uppermost
+%      operand on the stack is a color image dictionary. If so, the
+%      original stack is created anew using this dictionary. (Because
+%      the image operand works via colorimage, some additional special
+%      handling is required in this case.)
+%
+
+%
+% Create a dictionary of operators for specific image and image mask types.
+% Each of these will always handle ImageType 1. Additional types are added
+% as they are supported in specific interpreter levels or versions.
+%
+% These dictionaries are in systemdict for historical reasons.
+%
+.currentglobal //true .setglobal
+systemdict begin
+/.imagetypes
+  5 dict
+  dup 1 /.image1 load put
+def
+/.imagemasktypes
+  5 dict
+  dup 1 /.imagemask1 load put
+def
+end
+.setglobal
+
+%
+% Build a dictionary of utility procedures and constants for use in
+% impelementing the image operators. This dictionary is in global VM but
+% is maintained (during initialization) in userdict. It should be pushed
+% onto the dictionary stack when constructing image-related procedures
+% and pseudo-operators.
+%
+% This dictionary is removed from userdict when initialization is
+% completed.
+%
+.currentglobal //true .setglobal
+userdict /img_utils_dict 30 dict put
+img_utils_dict begin
+
+%
+% Some useful local data structures:
+%
+%   img_csary maps the number of components in an image to the implied
+%       color space.
+%
+%   img_decary is a prototype Decode array; subintervals of this array
+%       may be used for fewer than 4 color components.
+%
+%   img_params_ary is a list of the parameters to be built in the image
+%       dictionary for a colorimage invocation. ImageType is given a
+%       fixed value; the other parameters are in stack order (IMG_NComps
+%       is the number of components).
+%
+%   img_mask_params_ary is the equivalent of img_params_ary for imagemask
+%       invocations. Polarity is a proxy for Decode, and is replaced
+%       by the Decode key in the image dictionary.
+%
+%   img_mask_check_ary is the set of parameters that must be present in
+%       an image dictionary generated by an imagemask invocation. This
+%       differs from img_mask_params_ary in that Decode replaces Polarity.
+%
+/img_csary [ //null /DeviceGray //null /DeviceRGB /DeviceCMYK ] def
+/img_decary [ 0 1  0 1  0 1  0 1 ] def
+
+/img_params_ary
+  [
+    /ImageType  /IMG_NComps  /MultipleDataSources  /DataSource
+    /ImageMatrix  /BitsPerComponent  /Height  /Width   /Decode
+  ]
+def
+/img_check_ary //img_params_ary def
+/img_unbuild_ary
+ //img_params_ary 1 1 index length 2 sub getinterval
+def
+
+/img_mask_params_ary
+  [ /ImageType  /DataSource  /ImageMatrix  /Polarity  /Height  /Width ]
+def
+/img_mask_check_ary
+  [
+    /ImageType  /BitsPerComponent
+    /DataSource  /ImageMatrix  /Decode  /Height  /Width
+  ]
+def
+/img_mask_unbuild_ary
+ //img_mask_check_ary 2 1 index length 2 sub getinterval
+def
+
+%
+%   <?any?>  <array>   img_check_keys   <?any?>  <bool>
+%
+% Verify that:
+%   that there are at least two entries on the stack, and
+%   the second (lower) entry is a dictionary, and
+%   that dictionary contains all of the keys in the array
+%
+% If any one of these conditions does not hold, pop the array and push
+% false; otherwise pop the array and push true. This utility is used by
+% the colorimage and imagematrix procedures to determine if .image left
+% the image dictionary on the stack after an abnormal return.
+%
+/img_check_keys
+  {
+    count 2 ge
+      {
+        1 index type /dicttype eq
+          {
+            //true exch
+              {
+                2 index exch known and
+                dup not
+                  { exit }
+                if
+              }
+            forall
+          }
+          { pop //false }
+        ifelse
+      }
+      { pop //false }
+    ifelse
+  }
+.bind def
+
+%
+% Procedures to convert a set of stack entries to a dictionary. There is
+% a procedure associated with each key, though most keys use the same
+% procedure. The dictionary to be built is at the top of the dictionary
+% stack. Stack handling for the procedures is:
+%
+%   <?val0?> ... <?val(n - 1)?>  <key>   proc   -
+%
+% Parameters are handle in inverse-stack order, so inter-parameter
+% dependencies that on the stack can generally be used here.
+%
+/img_params_dict
+  mark
+    /ImageType { 1 def } .bind
+
+    /IMG_NComps { exch def } .bind      % number of components
+    /MultipleDataSources 1 index
+    /Width 1 index
+    /Height 1 index
+    /ImageMatrix 1 index
+    /BitsPerComponent 1 index
+    /DataSource 1 index
+
+    % Polarity is a proxy for Decode; it never appears in a dictionary
+    /Polarity
+      {
+        pop
+          { { 1 0 } }
+          { { 0 1 } }
+        ifelse
+        /Decode exch cvlit def
+      }
+    .bind
+
+    % the definition of Decode is based on the number of components
+    /Decode { //img_decary 0 IMG_NComps 2 mul getinterval def } .bind
+  .dicttomark
+def
+
+%
+%    <oper_0>  ...  <oper_n>  <array>   img_build_dict   <dict>
+%
+% Build a dictionary. This will always be done in local VM. The array is
+% a list of the keys to be associated with operands on the stack, in
+% inverse stack order (topmost element first). The caller should verify
+% that the dictionary can be built successfully (except for a possible
+% VMerror) before calling this routine.
+%
+/img_build_dict
+  {
+    % build the dictionary in local VM; all for 2 extra entries
+    .currentglobal //false .setglobal
+    1 index length 2 add dict
+    exch .setglobal
+    begin
+
+    % process all keys in the array
+      { //img_params_dict 1 index get exec }
+    forall
+
+    % if BitsPerComponent is not yet defined, define it to be 1
+    currentdict /BitsPerComponent known not
+      { /BitsPerComponent 1 def }
+    if
+
+    currentdict end
+  }
+.bind def
+
+%
+%   <dict>  <array>   img_unbuild_dict   <oper_0>  ...  <oper_n>
+%
+% "Unbuild" a dictionary: spread the contents the dictionary back onto the
+% stack, in the inverse of the order indicated in the array (inverse is
+% used as this order is more convenient for img_build_dict, which is
+% expected to be invoked far more frequently).
+%
+/img_unbuild_dict
+  {
+    exch begin
+    dup length 1 sub -1 0
+      { 1 index exch get load exch }
+    for
+    pop
+    end
+  }
+.bind def
+
+%
+% Check the image types that can be used as data sources
+% <any> foo <bool>
+%
+/good_image_types mark
+  /filetype { pop //true } .bind
+  /stringtype 1 index
+  /arraytype //xcheck
+  /packedarraytype //xcheck
+.dicttomark readonly def
+
+%
+%   <width>  <height>  <bits/component>  <matrix>  <dsrc0> ...
+%   <multi>  <ncomp>  <has_alpha>
+%   img_build_image_dict
+%   <dict>  <has_alpha>
+%
+% Build the dictionary corresponding to a colorimage operand stack. This
+% routine will check just enough of the stack to verify that the
+% dictionary can be built, and will generate the appropriate error if this
+% is not the case.
+%
+% The <has_alpha> boolean is used to support the Next alphaimage extension.
+%
+% At the first level, errors in this procedure are reported as colorimage
+% errors. The error actually reported will usually be determined by the
+% pseudo-operator which invokes this routine.
+%
+/img_build_image_dict
+  {
+    % Veify that at least 8 operands are available, and that the top three
+    % operands have the expected types
+    count 8 lt
+      { /.colorimage cvx /stackunderflow signalerror }
+    if
+    3 copy
+    type /booleantype ne exch
+    type /integertype ne or exch
+    type /booleantype ne or
+      { /.colorimage cvx /typecheck signalerror }
+    if
+
+    % verify that the number of components is 1, 3, or 4
+    1 index 1 lt 2 index 2 eq or 2 index 4 gt or
+      { /.colorimage cvx /rangecheck signalerror }
+    if
+
+    % Verify that the required number of operands are present if multiple
+    % data sources are being used. If this test is successful, convert
+    % the data sources to an array (in local VM).
+    2 index
+      {
+        % if an alpha component is present, this adds one more component
+        2 copy
+          { 1 add }
+        if
+        dup count 9 sub gt
+          {
+            % Adobe interpreters appear to test the arguments sequentially
+            % starting from the top of the stack and report the 1st error found.
+            % To satisfy CET test 12-02.PS we emulate this logic.
+            //true exch -1 1
+              { 3 add index
+                //good_image_types 1 index type .knownget
+                  { exec and
+                  }
+                  { pop pop //false
+                  }
+                ifelse
+              }
+            for
+              { /stackunderflow
+              }
+              { /typecheck
+              }
+            ifelse
+            /.colorimage cvx exch signalerror
+          }
+        if
+
+        % build the DataSource array in local VM
+        dup .currentglobal //false .setglobal exch array exch .setglobal
+
+        % stack: <w> <h> <bps> <mtx> <d0> ... <multi> <n> <alpha> <n'> <array>
+        5 1 roll 4 add 3 roll astore 4 1 roll
+      }
+    if
+
+    % the image dictionary can be built; do so
+    % stack: <w> <h> <bps> <mtx> <dsrc|dsrc_array> <multi> <n> <alpha>
+    8 1 roll //img_params_ary //img_build_dict exec exch
+  }
+.bind def
+currentdict /good_image_types .undef
+
+%
+%   <?dict?>
+%   img_unbuild_image_dict
+%   <width>  <height>  <bits/component>  <matrix>  <dsrc0> ...
+%   <multi>  <ncomp>
+%
+% If the top entry of the stack is a dictionary that has the keys required
+% by a colorimage dictionary, unpack that dictionary onto the stack.
+% Otherwise just leave things as they are. Note that the <has_alpha>
+% parameter is not pushd onto the stack.
+%
+/img_unbuild_image_dict
+  {
+    //img_check_ary //img_check_keys exec
+      {
+        //img_unbuild_ary //img_unbuild_dict exec
+        1 index type /booleantype eq
+          {
+            1 index
+              { 3 -1 roll aload length 2 add -2 roll }
+            if
+          }
+        if
+      }
+    if
+  }
+.bind def
+
+%
+%   <width>  <height>  <polarity>  <matrix>  <dsrc>
+%   img_unbuild_imagemask_dict
+%   <dict>
+%
+% Build the dictionary corresponding to an imagemask stack. This routine
+% will verify that the appropriate number of operands are on the stack,
+% and that polarity is a boolean. This is all that is necessary to build
+% the dictionary.
+%
+/img_build_imagemask_dict
+  {
+    % check for proper number of operands
+    count 5 lt
+      { /imagemask .systemvar /stackunderflow signalerror }
+    if
+
+    % verify that polarity is a boolean
+    2 index type /booleantype ne
+      { /imagemask .systemvar /typecheck signalerror }
+    if
+
+    % the imagemask dictionary can be built; do so
+    //img_mask_params_ary //img_build_dict exec
+  }
+.bind def
+
+%
+%   <?dict?>
+%   img_unbuild_imagemask_dict
+%   <width>  <height>  <polarity>  <matrix>  <dsrc>
+%
+% If the top entry of the stack is a dictionary that has the keys rquired
+% by an imagemask dictionary, unpack that dictionary onto the stack.
+% Otherwise just leave things as they are.
+%
+/img_unbuild_imagemask_dict
+  {
+    //img_mask_check_ary //img_check_keys exec
+      {
+        //img_mask_unbuild_ary //img_unbuild_dict exec
+        3 -1 roll
+        dup type dup /arraytype eq exch /packedarraytype eq or
+        1 index rcheck and
+          { 0 get 1 eq }
+        if
+        3 1 roll
+      }
+    if
+  }
+.bind def
+
+%
+%   <width>  <height>  <bits/component>  <matrix>  <dsrc_0> ...
+%   <multi>  <ncomp>  <has_alpha>
+%   .colorimage
+%   -
+%
+% Convert the image/colorimage operator from their traditional form to
+% the dictionary form. The <has_alpha> operand is used ot support the
+% Next alphaimage extension.
+%
+% Error handling for these operators is a bit complex, due to the stack
+% handling required of operators that potentially invoke procedures.
+% This problem is discussed in the comment above. The facts relevant to
+% this particular implementation are:
+%
+%   1. The .image1 (or .alphaimage) operator is executed in a stopped
+%      context, so that we can undo the gsave context in the event of
+%      an error.
+%
+%   2. In the event of an error, the stack is examined to see if the
+%      dictionary passed to .image1 (.alphaimage) is still present.
+%      If so, this dictionary is "unpacked" onto the stack to re-
+%      create the original stack. The <has_alpha> parameter is not
+%      pushed onto the stack, as it is not required for any of the
+%      pseudo-operators than invoke this procedure.
+%
+%   3. The use of pseudo-operators in this case may yield incorrect
+%      results for late-detected errors, as the stack depth will be
+%      restored (even though the stack is not). This is, however, no
+%      worse than the prior (level >= 2) code, so it should cause no
+%      new problems.
+%
+/.colorimage
+  {
+    % build the image dictionary
+    //img_build_image_dict exec
+
+    % execute .image1 in a stopped context
+      {
+        gsave
+        % The CET test file 12-02.ps creates colorimages with a width and
+        % height of 0.  Ignore these since that is what the CET expects.
+        1 index dup /Height get 0 eq exch /Width get 0 eq or
+          { pop pop }	% Ignore colorimage.  Pop bool and dict
+          {
+            0 .setoverprintmode             % disable overprint mode for images
+            //img_csary 2 index /IMG_NComps get get setcolorspace
+              { .alphaimage }
+              { .image1 }
+            ifelse
+          }
+        ifelse
+      }
+    stopped
+    grestore
+      {
+        //img_unbuild_image_dict exec
+        /.colorimage cvx $error /errorname get
+        signalerror
+      }
+    if
+  }
+.bind def
+
+%
+%   <width>  <height>  <bits/component>  <matrix>  <dsrc_0> ...
+%   <multi>  <ncomp>
+%   colorimage
+%   -
+%
+% Build the colorimage pseudo-operator only if setcolorscreen is visible.
+%
+systemdict /setcolorscreen .knownget
+  {
+    type /operatortype eq
+      {
+        /colorimage
+          {
+             //false
+               //.colorimage
+             stopped
+               { /colorimage .systemvar  $error /errorname get signalerror }
+             if
+          }
+        .bind systemdict begin odef end
+      }
+    if
+  }
+if
+
+%
+%   width  height  bits_per_component  matrix  data_src   image   -
+%
+%   <dict>   image   -
+%
+% Some special handling is required for ImageType 2 (Display PostScript
+% pixmap images) so as to set the appropriate color space as the current
+% color space.
+%
+/image
+  {
+    dup type /dicttype eq .languagelevel 2 ge and
+      {
+        dup /ImageType get dup 2 eq
+          {
+            % verify the ImageType 2 is supported
+            //.imagetypes exch known
+              {
+                %
+                % Set either DevicePixel or DeviceRGB as the current
+                % color space. DevicePixel is used if the image data is
+                % to be copied directly, with only a geometric
+                % transformation (PixelCopy true). The use of DeviceRGB
+                % in the alternate case is not, in general, correct, and
+                % reflects a current implementation limitation. Ideally,
+                % an intermediate color space should be used only if
+                % the source and destination color models vary; otherwise
+                % the native color space corresponding to the color model
+                % should be used.
+                %
+                % The mechanism to determine depth for the DevicePixel
+                % color space when BitsPerPixel is not available is
+                % somewhat of a hack.
+                %
+                gsave
+                0 .setoverprintmode     % disable overprintmode for images
+                dup /PixelCopy .knownget dup
+                  { pop }
+                if
+                  {
+                      [
+                        /DevicePixel
+                        currentpagedevice dup /BitsPerPixel .knownget
+                          { exch pop }
+                          {
+                            /GrayValues .knownget not
+                              { 2 }     % try a guess
+                            if
+                            ln 2 ln div round cvi
+                          }
+                        ifelse
+                      ]
+                  }
+                  { /DeviceRGB }
+                ifelse
+                setcolorspace
+                //.imagetypes 2 get
+                stopped
+                grestore
+                  { /image .systemvar $error /errorname get signalerror }
+                if
+              }
+              { /image .systemvar /rangecheck signalerror
+              }
+            ifelse
+          }
+          {
+            dup //.imagetypes exch .knownget
+              {
+                exch pop gsave
+                0 .setoverprintmode         % disable overprintmode for images
+                stopped
+                grestore
+                  { /image .systemvar $error /errorname get signalerror }
+                if
+              }
+              {
+                /image .systemvar exch type /integertype eq
+                  { /rangecheck } { /typecheck }
+                ifelse signalerror
+              }
+            ifelse
+          }
+        ifelse
+      }
+      {
+        //false 1 //false
+          //.colorimage
+        stopped
+          { /image .systemvar $error /errorname get signalerror }
+        if
+      }
+    ifelse
+  }
+.bind systemdict begin odef end
+
+% An auxiliary function for checking whether an imagemask to be interpolated.
+/.is_low_resolution    %  <image dict> .is_low_resolution <bool>
+{  % Checking whether image pixel maps to more than 2 device pixels.
+   % The threshold 2 is arbitrary.
+   1 exch 0 exch
+   0 exch 1 exch
+   /ImageMatrix get dup
+   2 {
+     4 1 roll
+     idtransform dtransform dup mul exch dup mul add sqrt
+   } repeat
+   max
+   2 gt % arbitrary
+} .bind def
+
+%
+%   width  height  polarity  matrix  datasrc   imagemask   -
+%
+% See the comment preceding the definition of .colorimage for information
+% as to the handling of error conditions.
+%
+/imagemask
+  {
+    dup type /dicttype eq .languagelevel 2 ge and
+      { dup /ImageType get
+        //.imagemasktypes exch .knownget
+          { 1 index //.is_low_resolution exec
+            2 index /ImageType get 1 eq and
+            2 index /BitsPerComponent get 1 eq and
+            2 index /Interpolate .knownget not { //false } if and
+            //filterdict /ImscaleDecode known and
+            %%
+            %% Don't apply ImScaleDecode to interpolate imagemasks if
+            %% the current device is a high level device.
+            %%
+            /HighLevelDevice /GetDeviceParam .special_op {
+              exch pop not
+            }{
+              //true
+            }ifelse
+            and
+            {
+              % Apply interpolated imagemask scaling filter
+              exch .currentglobal exch dup .gcheck .setglobal
+              dup length dict .copydict
+              dup dup /DataSource get
+              dup type /stringtype eq {
+                1 array astore cvx        % image.* operators read strings repeatesly
+              } if
+              mark /Width 3 index /Width get /Height 5 index /Height get .dicttomark
+              /ImscaleDecode filter /DataSource exch put
+              dup dup /Width get 4 mul /Width exch put
+              dup dup /Height get 4 mul /Height exch put
+              dup dup /ImageMatrix get
+              { 4 0 0 4 0 0 } matrix concatmatrix /ImageMatrix exch put
+              3 1 roll .setglobal
+            } if
+            exec
+          }
+          { % CET 12-08b.ps wants /typecheck
+            /imagemask .systemvar /typecheck signalerror
+          }
+        ifelse
+      }
+      {
+        //img_build_imagemask_dict exec
+          { .imagemask1 }
+        stopped
+          {
+            //img_unbuild_imagemask_dict exec
+            /imagemask .systemvar $error /errorname get signalerror
+          }
+        if
+      }
+    ifelse
+  }
+.bind systemdict begin odef end
+
+end        % img_utils_dict
+
+% Conditionally turn image interpolation on or off.
+% INTERPOLATE is not yet set, handle all cases
+currentdict /INTERPOLATE known
+currentdict /DOTERPOLATE known or
+currentdict /NOTERPOLATE known or not {
+  currentfile 1 (%END INTERPOLATE) .subfiledecode flushfile
+} 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 .argindex { 1 index 7 add } { 8 } ifelse
+        dup .argindex pop		  % check # of arguments
+        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
+          { 4 .argindex pop		% check # of args
+            .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 {
+      4 .argindex pop			% check # of args
+      .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
+
+.setglobal  % restore VM mode

Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_init.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_init.ps	                        (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_init.ps	2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,2261 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% 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.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc.,  7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA  94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% 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.
+
+% Interpreter library version number
+% NOTE: the interpreter code requires that the first non-comment token
+% in this file be an integer, and that it match the compiled-in version!
+921
+
+% Check the interpreter revision.
+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.
+% The default page size for many devices is set at compile time to
+% letter, but this can be changed to A4 although this is rarely done.
+% Some devices such as bbox have a different default page size,
+% and should not be set to A4 or letter.
+% When ghostscript is used in countries that use the international
+% standard page size A4 rather than US letter, the page size of
+% devices that default to letter or A4 can be changed by setting
+% DEFAULTPAPERSIZE.
+% /DEFAULTPAPERSIZE (a4) def
+
+% 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
+
+% if DEBUG is set, set ALL of the subset debugging flags
+mark	% '[' isn't defined yet
+  /CCFONTDEBUG		% Compiled Fonts
+  /CFFDEBUG		% CFF Fonts
+  /CMAPDEBUG		% CMAP
+  /DOCIEDEBUG		% CIE color
+  /EPSDEBUG		% EPS handling
+  /FAPIDEBUG		% Font API
+  /INITDEBUG		% Initialization
+  /PDFDEBUG		% PDF Interpreter
+  /PDFWRDEBUG		% PDF Writer
+  /SETPDDEBUG		% setpagedevice
+  /TTFDEBUG		% TTF Fonts
+  /VGIFDEBUG		% ViewGIF
+  /VJPGDEBUG		% ViewJPEG
+  /RESMPDEBUG		% Resource map
+counttomark array astore exch pop % ']' isn't defined yet
+{ dup currentdict exch known DEBUG or def } forall
+
+currentdict /PDFSTEP known /PDFSTEP exch def
+% if PDFSTEP is on, turn on PDFDEBUG
+PDFSTEP { /PDFDEBUG //true def } if
+
+currentdict /PDFSTOPONERROR known /PDFSTOPONERROR exch def
+currentdict /PDFSTOPONWARNING known {/PDFSTOPONWARNING true def /PDFSTOPONERROR true def}{/PDFSTOPONWARNING false def} ifelse
+currentdict /PDFNOCIDFALLBACK known /PDFNOCIDFALLBACK exch def
+
+  /VMDEBUG
+    INITDEBUG {{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 /JOBSERVER known   /JOBSERVER 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 /NOPSICC known   /NOPSICC exch def
+currentdict /NODISPLAY known   not /DISPLAYING exch def
+currentdict /NOFONTMAP known   /NOFONTMAP exch def
+currentdict /NOFONTPATH known   /NOFONTPATH exch def
+currentdict /NOGC known   /NOGC exch def
+currentdict /NOINTERPOLATE .knownget { /INTERPOLATE exch not def } if
+currentdict /NOMEDIAATTRS known /NOMEDIAATTRS exch def
+currentdict /NOOUTERSAVE known   /NOOUTERSAVE exch def
+currentdict /NOPAGEPROMPT known   /NOPAGEPROMPT exch def
+currentdict /NOPAUSE known   /NOPAUSE exch def
+currentdict /NOPLATFONTS known   /NOPLATFONTS exch def
+currentdict /NOPROMPT known   /NOPROMPT exch def
+currentdict /NOTRANSPARENCY known   /NOTRANSPARENCY exch def
+currentdict /DOPS known   /DOPS exch def
+currentdict /NOSUBSTDEVICECOLORS known   /NOSUBSTDEVICECOLORS 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
+/SAFER currentdict /NOSAFER known {
+  //false
+} {
+  currentdict /SAFER known
+  currentdict /PARANOIDSAFER known or	% PARANOIDSAFER is equivalent
+}
+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
+currentdict /RENDERTTNOTDEF known /RENDERTTNOTDEF exch def
+currentdict /SCANCONVERTERTYPE known
+{
+  currentdict /SCANCONVERTERTYPE get .setscanconverter
+} if
+
+% We rely on PSFitPage to actually implement EPSFitPage
+currentdict /EPSFitPage known { /PSFitPage //true def } if
+% This is a "convenience" option that sets a combination of EPSFitPage, PDFFitPage and PSFitPage
+currentdict /FitPage known { /EPSFitPage //true def /PDFFitPage //true def /PSFitPage //true def } if
+
+% 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 300000
+  .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 (GPL 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 -
+  1 .argindex pop	% check # of args
+  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
+/.systemexec {
+  .systemvar exec
+} .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 2000 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 cvx exec
+       }
+      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 .systemvar 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 ****************
+
+% Utility for removing all entries from a dictionary
+/.PurgeDict   % <dict> .PurgeDict -
+{ { //true
+    1 index { pop exch pop //false exit
+    } forall
+    { exit
+    } if
+    1 index exch undef
+  } loop
+  pop
+} bind def
+
+% 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 .doneshowpage {
+          .currentnumcopies 1 index .outputpage
+          (>>copypage, press <return> to continue<<\n) .confirm
+          dup { erasepage } if
+        } if pop
+    systemdict /..page_default_spaces .knownget { //.PurgeDict exec } if
+    .beginpage
+} odef
+/currentmatrix {
+        dup type /arraytype ne
+        { /currentmatrix load  /typecheck signalerror } if
+        dup length 6 ne
+        { /currentmatrix load  /rangecheck signalerror } if
+        .currentmatrix 6 .argindex astore pop
+} odef
+% .currentnumcopies is redefined in Level 2.
+/.currentnumcopies { #copies } odef
+/setcolorscreen where { pop		% not in all Level 1 configurations
+   /currentcolorscreen
+        { .currenthalftone
+           { { 60.0 exch 0.0 exch 3 copy 6 copy }	% halftone - not possible
+             { 3 copy 6 copy }			% screen
+             { }				% colorscreen
+           }
+          exch get exec
+        } odef
+} if
+/currentscreen
+        { .currenthalftone
+           { { 60.0 exch 0.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_param_dict mark
+  /eexec //true
+  /seed 55665
+.dicttomark readonly def
+/eexec {
+        % Rebind .currentresourcefile if it is the source for the eexec.
+  dup //.eexec_param_dict //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
+          currentoverprint //false setoverprint 1 setgray .fillpage setoverprint
+          exec
+        } odef
+% To satisfy the Genoa FTS, executive must be a procedure, not an operator.
+/executive
+        { { prompt
+             { (%statementedit) (r) .systemvmfile } stopped
+             { pop pop $error /errorname get /undefinedfilename eq
+                { .clearerror exit } if		% EOF
+               /handleerror .systemvar exec //null		% ioerror??
+             }
+            if
+            cvx { .runexec } .execute pop
+          } loop
+        } bind def
+/filter
+        { //filterdict 1 .argindex .knownget
+           { exch pop exec }
+           { /filter .systemvar /undefined signalerror }
+          ifelse
+        } odef
+% handleerror procedure as mentioned in the "Operators" section of the PLRM Section 8.2
+% This invokes the handleerror procedure from errordict (unless we are running under a
+% JOBSERVER where we want to always use a defined error handler (many error handlers in
+% 'wild' PostScript files are broken and don't indicate the error in any useful fashion).
+%
+% We run the handleerror procedure using .internalstopped so that broken error handlers
+% won't cause nested errors (Unexpected Error conditions).
+/handleerror
+        JOBSERVER {
+          { /.GShandleerror .systemvar .internalstopped pop } bind % always use .GShandleerror.
+        } {
+          { /errordict .systemvar /handleerror get .internalstopped pop } bind % PLRM standard errorhandling
+        } ifelse def
+/identmatrix [1.0 0.0 0.0 1.0 0.0 0.0] readonly def
+/identmatrix {
+        dup type /arraytype ne { /identmatrix load  /typecheck signalerror } if
+        dup length 6 ne { /identmatrix load  /rangecheck signalerror } if
+        dup 0 //identmatrix putinterval
+} odef
+/languagelevel 1 def		% gs_lev2.ps may change this
+/makeimagedevice { //false makewordimagedevice } odef
+/matrix	{ 6 array identmatrix } 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) .systemvmfile } if
+                % We must close the file when execution terminates,
+                % regardless of the state of the stack,
+                % and then propagate an error, if any.
+          cvx //null {.runexec} .errorexec
+        } 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 {
+        0 .argindex type dup /integertype eq exch /realtype eq or not {
+          /setdash .systemvar /typecheck signalerror
+        } if
+        //setdash
+} odef
+/setdevice
+  {
+    .setdevice
+      {
+        mark
+          { 		% Reset the halftone since the device may differ
+            currenthalftone
+            dup type /dicttype eq
+              { sethalftone }
+              { pop }
+            ifelse
+          }
+        stopped
+        cleartomark
+        erasepage
+      }
+    if
+  }
+odef
+/setlinecap {
+        dup 2 gt { /setlinecap .systemvar /rangecheck signalerror } if
+        .setlinecap
+} odef
+/setlinejoin {
+        dup 2 gt { /setlinejoin .systemvar /rangecheck signalerror } if
+        .setlinejoin
+} odef
+/setmatrix {
+        dup type /arraytype ne {
+          dup type /packedarraytype ne {
+            /setmatrix load  /typecheck signalerror
+          } if
+        } if
+        dup length 6 ne { /setmatrix load  /rangecheck signalerror } if
+        dup aload pop .setmatrix pop
+} odef
+/showpage {
+        0 .endpage .doneshowpage {
+          .currentnumcopies //true .outputpage
+          (>>showpage, press <return> to continue<<\n) .confirm
+          % Uncomment the following line, and use a Memento build to track
+          % blocks that are created and not destroyed between each successive
+          % page.
+          % 2 .vmreclaim .mementolistnewblocks
+          initgraphics
+          currentoverprint //false setoverprint 1 setcolor
+          .fillpage
+          setoverprint 0 setcolor
+        }
+        { initgraphics } ifelse
+    systemdict /..page_default_spaces .knownget { //.PurgeDict exec } if
+    .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 .argindex 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 .argindex .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
+
+% 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 {
+  .systemvmlibfile { 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
+/signaloperror {	% <object> <errorname> signaloperror -
+    % Same as signalerror, except that if we are inside a pseudo-operator
+    % or .errorexec, we use its error object, just as errors generated by
+    % real operators do.
+    /errordict .systemvar exch get
+    .finderrorobject { 3 -1 roll pop exch } if
+    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 .systemvar exec 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 {
+  0 0 .systemvmstring .systemvmSFD 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 {
+  1 .systemvmarray dup 0 /.needinput load put cvx	% { .needinput } in systemvm
+  0 0 .systemvmstring .systemvmSFD cvx .runexec
+} bind def
+
+% Define a special version of runlibfile that aborts on errors.
+/runlibfile0
+        { cvlit dup 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 } 0 get 3 -1 roll 2 array astore cvx exec
+          /.currentfilename exch store
+           { (While reading ) print .currentfilename print (:\n) print flush
+             /handleerror .systemvar exec /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
+    (I) //false .setdebug
+    $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 /errorinfo known not { $error /errorinfo //null put } if
+    $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
+       % Grab the execstack, then remove to two elements that are from
+       % this error handler (not interesting).
+       countexecstack array execstack dup length 2 sub 0 exch getinterval
+       $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 newerror
+     {
+       /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 flush
+     }
+     { % newerror is //false, test to see if user has set handleerror to a different
+       % routine, if so execute it, otherwise, just return.  This code deals with the
+       % Genoa issue of setting /handleerror, and then calling it, without an error
+       % being set.  We were erroring in this case, due to /command load failing.
+
+        //JOBSERVER {
+            /errordict .systemvar /handleerror get /.GShandleerror .systemvar ne
+        } {
+            //false
+        } ifelse
+         { /errordict .systemvar begin /handleerror load .internalstopped pop end
+         }
+         if
+     }
+     ifelse	% newerror
+     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 .systemvar 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
+  /errorinfo //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 3 add dict
+.forcedef		% errordict is local, systemdict is global
+.setglobal		% back to global VM
+% For greater Adobe compatibility, we put all non-standard errors in a
+%   separate dictionary, gserrordict.  It does not need to be in local VM,
+%   because PostScript programs do not access it.
+%   NOTE: the name gserrordict is known to the interpreter.
+/gserrordict 5 dict def
+% Register an error in errordict.  We make this a procedure because we only
+% register the Level 1 errors here: the rest are registered by "feature"
+% files.  However, ErrorNames contains all of the error names regardless of
+% what features are included, so we have to "know" that VMerror is the last
+% Level 1 error.
+/.registererror		% <name> .registererror -
+ { errordict exch .registererror2
+ } bind def
+/.registererror2	% <dict> <name> .registererror -
+ { .currentglobal //true .setglobal	% create procs in global VM
+   3 1 roll
+   mark 1 index systemdict /.errorhandler get /exec load .packtomark cvx put
+   .setglobal
+ } bind def
+ErrorNames
+ { dup .registererror /VMerror eq {exit} if
+ } forall
+errordict begin
+% 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	% this key is 'well known' and some PS may redefine it
+ { /.printerror .systemvar exec
+ } bind def
+end		% errordict
+
+% Put non-standard errors in gserrordict.
+gserrordict /unknownerror errordict /unknownerror get put
+errordict /unknownerror .undef
+% Define a stable private copy of handleerror that we will always use under
+% JOBSERVER mode.
+/.GShandleerror errordict /handleerror get def
+
+% 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
+
+% Create the initialization queue.
+
+/.delayed_init_queue 10 dict def
+
+/.schedule_init   %   <priority> <proc> .schedule_init -
+{
+  //.delayed_init_queue 2 index known {
+    (.delayed_init_queue priority conflict with ) print 1 index =
+    /.schedule_init cvx /configurationerror signalerror
+  } if
+  //.delayed_init_queue 3 1 roll .growput
+} bind def
+
+/.execute_scheduled_inits %   - .execute_scheduled_inits -
+{
+  { 0 //null //.delayed_init_queue {     % maxp {} p {}
+      3 index 2 index lt {
+        4 2 roll
+      } if
+      pop pop
+    } forall
+    exch //.delayed_init_queue exch undef
+    dup //null eq {
+      pop exit
+    } if
+    exec
+  } loop
+} 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: This procedure no longer does anything, but it must continue to
+% exist for the sake of toolbin/encs2c.ps.
+/.registerencoding {	% <index> <array> .registerencoding -
+  pop pop
+} bind odef
+
+% 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
+
+% Special handling for device parameters. Must follow definition of 'type'
+% make -dPDFA equivalent to -dPDFA=1 (backwards compatible)
+currentdict /PDFA known { PDFA type /booleantype eq { /PDFA 1 def } if } if
+
+% 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
+    }
+    { .getdefaultdevice .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.
+% The PS3 CET insists that the screen be an array and not a packedarray (!).
+currentpacking //false setpacking
+/.linescreen
+% The following screen algorithm is used by permission of the author.
+    { ((C) 1989 Berthold K.P. Horn) pop
+      1 add 180 mul cos 1 0.08 add mul exch 2 add 180 mul cos
+      1 0.08 sub mul add 2 div
+    }
+bind readonly def
+setpacking
+/.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
+   //.linescreen
+        % 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.) Ignore missing components
+        % (*Values = 1).
+   currentdevice mark
+     /RedValues 0 /GreenValues 0 /BlueValues 0 /GrayValues 0
+   .dicttomark .getdeviceparams
+   counttomark 2 idiv 1 sub
+    { exch pop dup 1 le
+       { pop }
+       { exch dup 1 le
+          { pop }
+          { .min }
+        ifelse
+       }
+      ifelse
+    }
+   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     % pushes true if a screen halftone used
+                        % Stack: doscree
+  {
+    % Set the transfer function to lighten up the grays.
+    % 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
+      }
+      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 } .internalstopped
+  { 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 } .internalstopped
+    { 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
+
+% Rendering intent mapping for setcolorrendering1 and PDF interpreter
+/.renderingintentdict mark
+  /Perceptual 0
+  /RelativeColorimetric 1
+  /Saturation 2
+  /AbsoluteColorimetric 3
+.dicttomark readonly def
+
+% Load basic color support
+%% Replace 1 (gs_cspace.ps)
+(gs_cspace.ps) runlibfile
+
+(END BASIC COLOR) VMDEBUG
+
+% Load image support
+%% Replace 1 (gs_img.ps)
+(gs_img.ps) runlibfile
+
+(END IMAGE) VMDEBUG
+
+% Auxiliary procedures for generating file name templates.
+
+% 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
+
+%   false <dir_list> <template> .generate_dir_list_templates_with_length <t1> ... <tN>
+%   true  <dir_list> <template> .generate_dir_list_templates_with_length <t1> <l1> ... <tN> <ln>
+%
+% Generates various valid templates combining a directory list with a given template.
+% With 'true' operand it also returns lengths of directory pathes.
+%
+% Example1 (DOS, Windows) :
+%       false [(/gs/lib) (/gs/Resource/) (\gs8.00\Resource)] (*/*) -->
+%       (/gs/lib/*/*) (/gs/Resource/*/*) (\\gs8.00\\Resource/*/*)
+%
+% Example2 (OpenVMS) :
+%       false [(gs:[lib]) (gs:[Resource]) (gs800:[Resource)] (*]*) -->
+%       ((gs:[lib.*]*) [gs:[Resource.*]*) ([gs800:[Resource.*]*)
+%
+/.generate_dir_list_templates_with_length
+{                                                  % [dl] (templ)
+  % We need to convert paths into templates,
+  % because it can include '\' on DOS.
+  % In same time, the <template> must not convert,
+  % because it is already a template.
+  % Besides that, we cannot combine template using .file_name_combine,
+  % because template syntax breaks the platform path syntax.
+  % To resolve this, we first convert the <template> into
+  % a fake filename, and combine it with path,
+  % obtaining a correct separator. Then we replace
+  % the fake file name with the given template.
+  %
+
+  % Create the fake file name :
+  dup dup length string copy                       % b [dl] (templ) (ffn)
+  (*) 0 get (?) 0 get (\\) 0 get (x) 0 get 0 0     % b [dl] (templ) (ffn) * ? \ x i j
+  { 1 index 7 index length ge { exit } if
+    6 index 2 index get                            % b [dl] (templ) (ffn) * ? \ x i j c
+    dup 7 index eq                                 % b [dl] (templ) (ffn) * ? \ x i j c bool
+    1 index 7 index eq or { % *?
+      pop 2 index
+    } if                                           % b [dl] (templ) (ffn) * ? \ x i j C
+    dup 5 index eq {        % \
+      3 2 roll 1 add 3 1 roll                      % b [dl] (templ) (ffn) * ? \ x i' j C
+      2 index 8 index length ge { pop exit } if
+      pop 6 index 2 index get                      % b [dl] (templ) (ffn) * ? \ x i' j C'
+    } if
+    7 index 2 index 3 2 roll put                   % b [dl] (templ) (ffn) * ? \ x i' j
+    1 add exch 1 add exch                          % b [dl] (templ) (ffn) * ? \ x i'' j'
+  } loop                                           % b [dl] (templ) (ffn) * ? \ x i j
+  6 1 roll pop                                     % b [dl] (templ) (ffn) j * ? \ x
+  exch pop exch pop exch pop exch                  % b [dl] (templ) (ffn) x j
+  { dup 3 index length ge { exit } if
+    3 copy exch put
+    1 add
+  } loop
+  pop pop                                          % b [dl] (templ) (ffn)
+
+  % An internal procedure :
+  {                                 % {} b [dl] (templ) (ffn) (dffn)
+    dup length
+    2 index length sub % drop "ffn", remaining "ldffn" = length of the "directory" part
+    exch                            % {} b [dl] (templ) (ffn) ldffn (dffn)
+    .makepathtemplate               % {} b [dl] (templ) (ffn) ldffn (Dffn)
+    dup                             % {} b [dl] (templ) (ffn) ldffn (Dffn) (Dffn)
+    4 index length dup              % {} b [dl] (templ) (ffn) ldffn (Dffn) (Dffn) templL templL
+    2 index length                  % {} b [dl] (templ) (ffn) ldffn (Dffn) (Dffn) templL templL DffnL
+    exch sub                        % {} b [dl] (templ) (ffn) ldffn (Dffn) (Dffn) templL i
+    exch getinterval                % {} b [dl] (templ) (ffn) ldffn (Dffn) (suffix)
+    4 index exch copy pop           % {} b [dl] (templ) (ffn) ldffn (dt)
+    5 index {
+      exch                          % {} b [dl] (templ) (ffn) (dt) ldffn
+      7 2 roll                      % (dt) ldffn {} b [dl] (templ) (ffn)
+    } {
+      exch pop                      % {} b [dl] (templ) (ffn) (dt)
+      6 1 roll                      % (dt) {} b [dl] (templ) (ffn)
+    } ifelse
+  }
+  5 1 roll                                         % {} b [dl] (templ) (ffn)
+
+  % Generate templates :
+  dup .file_name_is_absolute {
+    dup                                            % {} b [dl] (templ) (ffn) (ffn)
+    5 index exec                                   % (t1) {} b [dl] (templ) (ffn)
+  } {
+    2 index {                                      % ... {} b [dl] (templ) (ffn) (d)
+      1 index                                      % ... {} b [dl] (templ) (ffn) (d) (ffn)
+      //false .file_name_combine {                 % ... {} b [dl] (templ) (ffn) (dffn)
+        5 index exec                               % ... (t1) ?l1 {} b [dl] (templ) (ffn)
+      } {                                          % ... {} b [dl] (templ) (ffn) (d) (ffn)
+        pop pop                                    % ... {} b [dl] (templ) (ffn)
+      } ifelse
+    } forall
+  } ifelse                                         % (t1) ?l1 (t2) ?l2 ... (tN) ?ln {} b [dl] (templ) (ffn)
+  pop pop pop pop pop                              % (t1) ?l1 (t2) ?l2 ... (tN) ?ln
+} bind def
+
+%   <dir_list> <template> .generate_dir_list_templates <t1> ... <tN>
+%
+% Generates various valid templates combining a directory list with a given template.
+% It's the 'false' case of the function above.
+%
+/.generate_dir_list_templates
+{ //false 3 1 roll //.generate_dir_list_templates_with_length exec
+} bind def
+
+% Load the initialization files for optional features.
+%% Replace 4 INITFILES
+systemdict /INITFILES known
+ { INITFILES { <00> search { exch pop dup runlibfile VMDEBUG }{ dup runlibfile VMDEBUG exit } ifelse } .bind loop
+ }
+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
+
+% If the paper size is not specifed and the device defaults to
+% letter or A4 paper, select the DEFAULTPAPERSIZE.
+systemdict /DEFAULTPAPERSIZE known not {
+  % Use .defaultpapersize if it returns a known paper size
+  .defaultpapersize {
+     statusdict /.pagetypeprocs get 1 index known {
+       systemdict exch /DEFAULTPAPERSIZE exch put
+     } {
+       QUIET {
+         pop
+       } {
+         (Unknown .defaultpapersize: ) print ==only (.) =
+       } ifelse
+     } ifelse
+  } if
+} if
+systemdict /DEFAULTPAPERSIZE known
+systemdict /PAPERSIZE known not and
+systemdict /DEVICEWIDTH known not and
+systemdict /DEVICEHEIGHT known not and
+systemdict /DEVICEWIDTHPOINTS known not and
+systemdict /DEVICEHEIGHTPOINTS known not and
+ {
+   defaultdevice mark /PageSize //null .dicttomark .getdeviceparams
+   .dicttomark /PageSize get
+   dup 0 get 0.5 add cvi 612 eq 1 index 1 get 0.5 add cvi 792 eq and
+   1 index 0 get 0.5 add cvi 595 eq 2 index 1 get 0.5 add cvi 842 eq and
+   or exch pop
+   {
+     % the default paper size was letter, so replace it with DEFAULTPAPERSIZE
+     /PAPERSIZE DEFAULTPAPERSIZE def
+   } if
+ }
+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.
+  statusdict /.pagetypeprocs get PAPERSIZE .knownget {
+    dup 0 get /DEVICEWIDTHPOINTS exch def
+    1 get /DEVICEHEIGHTPOINTS exch def
+  } {
+    (Unknown paper size: ) print PAPERSIZE ==only (.) =
+  } ifelse
+} 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 } { 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
+INITDEBUG { 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
+
+% Set up the interpreter context version of -dUSeCIEColor option
+% so that .getuseciecolor has the correct value (see gs_setpd.ps)
+/setpagedevice where {
+  pop systemdict /UseCIEColor known {
+    mark /UseCIEColor UseCIEColor /..StartupGlobal //true .dicttomark setpagedevice
+  } if
+} if
+
+%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 JOBSERVER {
+    { { clear cleardictstack //false 0 .startnewjob } 2 .stop } bind
+  } {
+    { }
+  } ifelse def
+<1b> cvn {	 		% UEL is <esc>%-12345X and acts the same as ^D
+  currentfile (%-12345X) .peekstring pop (%-12345X) eq <04> cvn load if
+} bind def
+<1b45> cvn { } def		% PJL reset prologue (ESC E)
+<1b451b> cvn <1b> cvn load def	% PJL reset epilogue (ESC E + UEL)
+(\001M) cvn			% TBCP initiator
+ { currentfile /TBCPDecode filter cvx exec
+ } bind def
+/@PJL				% H-P job control
+ {
+   % Windows 2000 driver includes PJL into %%BeginFeature block.
+   % Identify this from the pattern on the stack: countdictstack lucas mark
+   % and fail the feature request.
+
+   count 3 ge {
+     dup mark eq {
+       2 index countdictstack eq {
+          1 index /lucas where { /lucas get eq } { pop //false } ifelse {
+            stop
+         } if
+       } if
+     } if
+   } if
+   currentfile //=string readline pop pop
+ } 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
+
+/.locksafe_userparams {
+  SAFETY /safe get not {
+    <<
+      /PermitFileReading [
+        currentuserparams /PermitFileReading get aload pop
+        /FONTPATH .systemvar (*) .generate_dir_list_templates
+          % Library files :
+        /LIBPATH  .systemvar (*) .generate_dir_list_templates
+          % Resource files on OpenVMS requires a separate template (gs:[dir.*]*)
+          % because the (gs:[dir]*) doesn't cover them.
+        /LIBPATH  .systemvar (*) .file_name_separator (*)
+          concatstrings concatstrings .generate_dir_list_templates
+        .languagelevel 2 ge {
+            % Default resources :
+          [ currentsystemparams /GenericResourceDir get] (*) .generate_dir_list_templates
+            % Default resources (OpenVMS, see comment above.) :
+          [ currentsystemparams /GenericResourceDir get] (*) .file_name_separator (*)
+            concatstrings concatstrings .generate_dir_list_templates
+        } if
+      ]
+      /LockFilePermissions //true
+    >> setuserparams
+  }
+  if
+} bind def
+
+/.locksafe {
+  .locksafe_userparams
+  systemdict /getenv {pop //false} .forceput
+  % 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
+
+%% This is only used during startup. Its required so that
+%% we can detect in setpagdevice that we are in fact in startup
+%% and allocate a *global* instead of local VM. We need it to be
+%% global to satisfy Display PostScript (see start of /setpagdevice
+%% in gs_setpd.ps)
+%%
+/.locksafeglobal {
+  .locksafe_userparams
+  systemdict /getenv {pop //false} put
+  % 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
+    /..StartupGlobal //true
+  >> setpagedevice
+  setglobal
+  //SAFETY /safe //true .forceput % overrides readonly
+} .bind executeonly odef
+
+/.setsafe
+{
+  SAFETY /safe get not {
+    <<
+      /PermitFileReading [ ]
+      /PermitFileWriting [ ]
+      /PermitFileControl [ ]
+    >> setuserparams
+  }
+  if
+  .locksafe
+} .bind executeonly odef
+
+%% See /.locksafeglobal above.
+%%
+/.setsafeglobal {
+  SAFETY /safe get not {
+    <<
+      /PermitFileReading [ ]
+      /PermitFileWriting [ ]
+      /PermitFileControl [ ]
+    >> setuserparams
+  }
+  if
+  .locksafeglobal
+} bind executeonly odef
+
+/deletefile {
+  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 .argindex //true .forceput
+} .bind executeonly odef
+
+% If we are running in SAFER mode, lock things down
+SAFER { .setsafeglobal } if
+
+% If we delayed binding, make it possible to do it later.
+/.bindnow {
+  currentuserparams /IdiomRecognition .knownget {
+    1 dict dup /IdiomRecognition //false put setuserparams
+  } if
+  //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 /.forcecopynew .forceundef	% remove temptation
+  //systemdict /.forcedef .forceundef		% ditto
+  //systemdict /.forceput .forceundef		% ditto
+  //systemdict /.forceundef .forceundef		% ditto
+  currentuserparams /IdiomRecognition known {
+    1 dict dup /IdiomRecognition 4 -1 roll put setuserparams
+  } if
+} .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
+
+% Set up AlignToPixels :
+
+/AlignToPixels where {
+  mark /AlignToPixels 2 index /AlignToPixels get .dicttomark setuserparams
+  /AlignToPixels undef
+} if
+
+% Set up GridFitTT :
+
+/GridFitTT where {
+  mark /GridFitTT 2 index /GridFitTT get .dicttomark setuserparams
+  /GridFitTT undef
+} if
+
+% Establish local VM as the default.
+//false /setglobal where { pop setglobal } { .setglobal } ifelse
+$error /.nosetlocal //false put
+
+(END GLOBAL) VMDEBUG
+
+%% .savelocalstate is part of Display PostScript (if included). Part of the function of
+%% the .savelocalstate routine is to store the 'initial saved gstate' (savedinitialgstate)
+%% in systemdict. The code in dps1.c, gstate_check_space, disallows writing or creating
+%% gstates in global VM in certain conditions. If we execute setpagedevice before we
+%% reach this point, we must ensure that we do so using /..StartupGlobal so that
+%% the dictionary is defined in global VM, because the gstate contains a pointer to the
+%% device dictionary, and if that is allocated in local VM we will fail the gstate check.
+/.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
+
+% Execute scheduled inits :
+//.execute_scheduled_inits exec
+currentdict /.execute_scheduled_inits undef
+currentdict /.delayed_init_queue undef
+
+% Make global and local FontDirectory read-only.
+FontDirectory readonly pop
+/GlobalFontDirectory where { pop GlobalFontDirectory readonly pop } if
+
+% 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
+currentdict /.renderingintentdict .undef
+end
+
+% Clean up VM, and enable GC. Use .vmreclaim to force the GC.
+/vmreclaim where
+ { pop NOGC not { 2 .vmreclaim 0 vmreclaim } if
+ } if
+DELAYBIND not {
+  systemdict /.forcecopynew .undef	% remove temptation
+  systemdict /.forcedef .undef		% ditto
+  systemdict /.forceput .undef		% ditto
+  systemdict /.forceundef .undef	% ditto
+} if
+% Move superexec to internaldict if superexec is defined.
+currentdict /superexec .knownget {
+  1183615869 internaldict /superexec 3 -1 roll put
+  currentdict /superexec .undef
+} 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).

Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_l2img.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_l2img.ps	                        (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_l2img.ps	2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,183 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% 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.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc.,  7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA  94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% 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 .systemvar /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

Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_lev2.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_lev2.ps	                        (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_lev2.ps	2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,1198 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% 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.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc.,  7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA  94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% 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 .argindex {
+                % 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 wcheck exch dup xcheck exch		% original attributes
+    dup length array exch dup {	% stack: destination_array original_array original_array
+      dup type /arraytype eq {
+        dup 2 index ne {	% avoid recursion
+          .copyparam	% recurse to handle composite array elements
+        } {
+          % this array self referenced, do it again (yuk!)
+          pop 1 index		% get copy of destination array
+        } ifelse
+      } {
+        dup type /stringtype eq {
+          .copyparam
+        } if
+      }
+      ifelse 3 1 roll		% keep arrays on top
+    } forall pop astore
+    exch { cvx } if		% set executable state
+    exch not { readonly } if	% set readonly attribute as original
+    exch .setglobal
+  } if
+  dup type /stringtype eq {
+    dup wcheck exch	% save attr for setting readonly
+    .currentglobal //true .setglobal
+    1 index length string exch .setglobal
+    copy exch not { readonly } if
+  } 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 .argindex 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
+% We break out setuserparams into a separate procedure so that setvmxxx
+% can use it without affecting the command in case of an error.
+/.setuserparams2 {
+        % 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
+      % special protection for the security related parameters
+      [ /PermitFileReading /PermitFileWriting /PermitFileControl ]
+      { 2 index eq { % force all strings to readonly but make sure the
+                     % array is in the correct VM space (local/global).
+        currentglobal exch dup gcheck setglobal
+        dup length array exch { readonly exch } forall astore
+        exch setglobal
+        } if
+      } forall
+      % protect top level of parameters that we copied
+      dup type dup /arraytype eq exch /stringtype eq or { readonly } if
+      /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 def
+/setuserparams {		% <dict> setuserparams -
+    .setuserparams2
+} .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 .argindex .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.
+   dup pop		% check # of args
+   /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
+         % protect top level parameters that we copied
+         dup type dup /arraytype eq exch /stringtype eq or { readonly } if
+         //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 .argindex .dicttomark setuserparams pop }
+  stopped
+    {  /setcachelimit .systemvar $error /errorname get signalerror
+    } if
+} .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 } stopped {
+    /setcacheparams .systemvar $error /errorname get signalerror
+  } if
+} .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 0 .definepsuserparam
+
+% File Access Permission parameters
+  .currentglobal //true .setglobal
+  /.checkFilePermitparams {
+    type /arraytype eq {
+      currentuserparams /LockFilePermissions get {
+        5 { pop } repeat /setuserparams /invalidaccess signalerror
+      }{
+        % in addition to validating the value, ensure the value is read/only
+        dup { readonly exch } forall
+        .currentglobal exch dup gcheck .setglobal length array exch .setglobal
+        astore readonly
+      }
+      ifelse
+    } {
+      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
+  /CurInputDevice () .forcedef
+  /CurOutlineCache 0 .forcedef
+  /CurOutputDevice () .forcedef
+  /CurPatternCache 0 .forcedef
+  /CurUPathCache 0 .forcedef
+  /CurScreenStorage 0 .forcedef
+  /CurSourceList 0 .forcedef
+  /DoPrintErrors //false .forcedef
+  /JobTimeout 0 .forcedef
+  /LicenseID (LN-001) .forcedef     % bogus
+  /MaxDisplayList 140000 .forcedef
+  /MaxFormCache 100000 .forcedef
+  /MaxImageBuffer 524288 .forcedef
+  /MaxOutlineCache 65000 .forcedef
+  /MaxPatternCache 100000 .forcedef
+  /MaxUPathCache 300000 .forcedef
+  /MaxScreenStorage 84000 .forcedef
+  /MaxSourceList 25000 .forcedef
+  /PrinterName product .forcedef
+  /RamSize 4194304 .forcedef
+  /WaitTimeout 40 .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
+/.loadingfont //false def
+(%ProcessDSCComment) cvn {
+  /ProcessDSCComment getuserparam
+  dup //null eq .loadingfont or { pop pop pop } { exec } ifelse
+} bind def
+
+% ------ Miscellaneous ------ %
+
+(<<) cvn			% - << -mark-
+  /mark load def
+% (>> is defined primitively.)
+/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 .argindex .dicttomark .setuserparams2 pop
+} odef
+/vmreclaim {			% <int> vmreclaim -
+  dup 0 gt {
+    dup 2 le 1 index type /integertype eq and {
+      pop    % ignore user requests for vmreclaim
+             % (reclaim will still happen controlled by vmthreshold)
+    }
+    { .vmreclaim }    % let internal operator handle error conditions
+    ifelse
+  } {
+    % VMReclaim userparam controls enable/disable GC
+    mark /VMReclaim 2 index .dicttomark .setuserparams2 pop
+  } ifelse
+} odef
+-1 setvmthreshold
+
+% ------ IODevices ------ %
+
+/.getdevparams where {
+  pop /currentdevparams {	% <iodevice> currentdevparams <dict>
+    .getdevparams .dicttomark
+  } odef
+} if
+/.putdevparams where {
+  pop /setdevparams {		% <iodevice> <dict> setdevparams -
+    dup type /dicttype ne { /setdevparams .systemvar /typecheck signalerror } if
+    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
+    } {
+                        % Encapsulated job
+      pop
+      serverdict /.jobsave save put
+      serverdict /.jobsavelevel 1 put
+      .userdict /quit { stop } .bind put  % CET 28-10 requires a procedure
+    } 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 .argindex .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.
+  1 .argindex type /booleantype ne {
+    /startjob .systemvar /typecheck signalerror
+  } if
+  { .startnewjob //true } .startjob
+} odef
+
+% The procedure to undo the job encapsulation
+/.endjob {
+  clear cleardictstack
+  serverdict /.jobsave get dup //null eq { pop } { restore } ifelse
+  serverdict /.jobsave //null put
+  2 .vmreclaim   % recover local and global VM
+} odef
+
+systemdict begin
+/quit {				% - quit -
+  //systemdict begin serverdict /.jobsave get //null eq
+   { end //quit }
+   { /quit .systemvar /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
+% Also define /buildtime in systemdict because Adobe does so and some fonts use it as ID
+systemdict /buildtime dup load put
+/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
+
+% -------- ICC manager -------- %
+% All color management is going
+% through ICC flow.  We need
+% to have the default device
+% spaces gray, RGB and CMYK
+% defined by ICC profiles
+
+//systemdict /ICCProfilesDir .knownget {
+  % Set the directory sepcified by the command line option
+  mark exch /ICCProfilesDir exch .dicttomark .setuserparams2
+} {
+  % First see if the current value is valid so we don't have to guess
+  mark .currentuserparams .dicttomark /ICCProfilesDir get
+  (default_gray.icc) concatstrings {status} .internalstopped
+  {pop //false} if
+  {
+    pop pop pop pop		% current value was OK. Just clean up stack
+  } {
+    % Search for valid (iccprofiles) directory as a sibling to (Resource)
+    % and set it as a default if found.
+    LIBPATH {
+      (Resource) search {
+        exch pop exch pop (iccprofiles) concatstrings
+        .file_name_separator concatstrings
+        dup (default_gray.icc) concatstrings status {
+          pop pop pop pop
+          mark exch /ICCProfilesDir exch .dicttomark .setuserparams2
+          exit
+        } {
+          pop
+        } ifelse
+      } {
+        pop
+      } ifelse
+    } forall
+  } ifelse 	% if currentuserparams ICCProfilesDir
+} ifelse      % ICCProfilesDir set in systemdict (command line option)
+
+mark	% collect dict key value pairs for anything set in systemdict (command line options)
+[ /DefaultRGBProfile /DefaultGrayProfile /DefaultCMYKProfile /DeviceNProfile
+  /NamedProfile /SourceObjectICC /OverrideICC
+]
+{ dup //systemdict exch .knownget not {
+    pop		% discard keys not in systemdict
+  } if
+} forall
+.dicttomark .setuserparams2
+
+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 {		% <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
+
+% ------ Color spaces ------ %
+% gs_res.ps uses these entries in colorspacedict
+% to populate the ColorSpaceFamily resource, so we need
+% to add the supported spaces.
+%
+systemdict /colorspacedict get begin
+/CIEBasedA [] def
+/CIEBasedABC [] def
+/DevicePixel [] def
+/Indexed [] def
+/Pattern [] def
+/Separation [] def
+end
+
+% ------ CIE color rendering ------ %
+
+% Define findcolorrendering and a default ColorRendering ProcSet.
+
+/findcolorrendering {		% <intentname> findcolorrendering
+                                %   <crdname> <found>
+    % Adobe interpreters report /findcolorrendering (literal name), not the
+    % operator itself, if an error occurs in findcolorrendering.
+    /findcolorrendering {
+        /ColorRendering /ProcSet findresource
+        1 .argindex dup type /nametype eq { .namestring } if (.) concatstrings
+        1 index /GetPageDeviceName get exec dup type /nametype eq { .namestring } if (.) concatstrings
+        2 index /GetHalftoneName get exec dup type /nametype eq { .namestring } if
+        concatstrings concatstrings cvn	% stack: intentname procset crdname
+        dup /ColorRendering resourcestatus {
+            pop pop exch pop exch pop //true
+        } {
+            pop /GetSubstituteCRD get exec //false
+        } ifelse
+    } .errorexec
+} 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
+  dup type /integertype ne {
+    /setcolorrendering .systemvar /typecheck signalerror
+  } if
+  //.colorrenderingtypes exch .knownget {
+     exec
+  } {
+    /setcolorrendering .systemvar /rangecheck signalerror
+  } ifelse
+} odef
+
+/.setcolorrendering1 where { pop } { (%END CRD) .skipeof } ifelse
+
+.colorrenderingtypes 1 {
+  % Adobe ProcSet "Adobe_AGM_Core 2.0 0" places an /Intent key into CRD's
+  dup /Intent .knownget {
+    //.renderingintentdict exch .knownget { .setrenderingintent } if
+  } if
+  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
+
+% sRGB output CRD, D65 white point
+mark
+/ColorRenderingType 1
+/RangePQR [ -0.5 2 -0.5 2 -0.5 2 ] readonly
+
+% Bradford Cone Space
+/MatrixPQR [ 0.8951 -0.7502  0.0389
+             0.2664  1.7135 -0.0685
+            -0.1614  0.0367  1.0296] readonly
+
+/MatrixLMN [ 3.240449 -0.969265  0.055643
+            -1.537136  1.876011 -0.204026
+            -0.498531  0.041556  1.057229 ] readonly
+
+% Inverse sRGB gamma transform
+/EncodeABC [ { dup 0.00304 le
+                { 12.92321 mul }
+                { 1 2.4 div exp 1.055 mul 0.055 sub }
+               ifelse
+             } bind dup dup
+           ] readonly
+
+/WhitePoint [ 0.9505 1 1.0890 ] readonly % D65
+/BlackPoint [ 0 0 0 ] readonly
+
+% VonKries-like transform in Bradford Cone Space
+   /TransformPQR
+     % The implementations have been moved to C for performance.
+     [ { .TransformPQR_scale_WB0 } bind
+       { .TransformPQR_scale_WB1 } bind
+       { .TransformPQR_scale_WB2 } bind
+     ] 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
+
+% Special type to install
+% sRGB ICC profile color space
+/CIEsRGBICC [ /ICCBased
+  mark
+    /N 3
+    /DataSource (srgb)
+    /Alternate [/DeviceRGB]
+    /Name (srgb)
+  .dicttomark
+] def
+
+% Special type to install
+% sGray ICC profile color space
+/CIEsGRAYICC [ /ICCBased
+  mark
+    /N 1
+    /DataSource (sgray)
+    /Alternate [/DeviceGray]
+    /Name (sgray)
+  .dicttomark
+] def
+
+% ------ Painting ------ %
+
+%% We don't want to do any high level forms stuff if the source
+%% is PDF because :
+%% 1) Transparent forms are handled separately and we don't want to ge confused
+%% 2) PDF forms are too llikely to trip over the limitations in our support
+%% 3) Its highly unusual to find a PDF file which uses forms sensibly.
+%%
+%% So we have a special PDF version of execform which doesn't do high level forms.
+
+/.PDFexecform {
+        % 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
+
+/PDFexecform {
+  gsave {
+    .PDFexecform
+  } stopped grestore {stop} if
+} odef
+
+% 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.
+  %% High level forms need the CTM before the Form Matrix is applied
+  /UNROLLFORMS where {/UNROLLFORMS get}{false}ifelse not
+  {matrix currentmatrix exch} if
+  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
+  /UNROLLFORMS where {/UNROLLFORMS get}{false}ifelse not
+  %% [CTM] <<Form>> PaintProc .beginform -
+  {
+    %% First,, check to see if we have no /Implementation already defined (see above)
+    1 index /Implementation get //null eq
+    {
+      %% We don't, so copy the form dictionary
+      1 index 4 1 roll
+      %% tell devices we're starting a form, run the PaintProc, and then tell the devices we've finished
+      3 -1 roll 2 index
+      .beginform exec
+
+      %% This is all horrible code to deal with illegal forms which leave junk on the operand stack
+      %% Starting from 1 (not 0, we don't want to look at the loop count) and going up to the
+      %% number of objects on the stack, check each object to see if its the Form dict (it is
+      %% *supposed* to be the top object after executing the PaintProc). I don't currently check to see if
+      %% the PaintProc ate the dict, but if there are extra objects, remove them and tell
+      %% the user.
+      %%
+      count 1 1 3 -1 roll {
+        dup index
+        dup type /dicttype eq {
+          /Implementation known {
+            2 sub 0 1 3 -1 roll {
+              QUIET not {
+                 (\n  WARNING - Form PaintProc left operands on the stack after execution.\n        This is technically illegal and these have been removed, \n        if output is incorrect run again with -dUNROLLFORMS.\n) =
+              } if
+              pop pop
+            } for
+            exit
+          }if
+        } {
+          pop pop
+        }ifelse
+      } for
+
+      .endform
+      %% Ask devices if they have cached the form, and what ID to use if so
+      %% returning -1 means 'no ID'
+      .get_form_id dup -1 eq
+      {pop pop}
+      {
+        %% The form is cached with a specific ID. Make a dictionary (which we'll store in the
+        %% Form dictioanry using the /Implementation key).
+        1 dict dup /FormID 4 -1 roll put
+        1 index exch /Implementation exch .forceput readonly pop
+      }
+      ifelse
+    }
+    {
+      %% We have a (non-null) Implementation, get the dictionary and pull the
+      %% FormID key from it, then tell the device to use the stored form with the
+      %% specified key.
+      pop dup /Implementation get /FormID get .repeatform
+    }ifelse
+  }
+  {exec} ifelse
+} .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>
+  dup type /dicttype eq {
+     % "<dict> makepattern" reports /typecheck on Adobe
+     /makepattern .systemvar /typecheck signalerror
+  } if
+  //.patterntypes 2 .argindex /PatternType get .knownget not {
+      /makepattern .systemvar /rangecheck signalerror
+  } if
+  .currentglobal //false .setglobal exch
+                % Stack: proto matrix global buildproc
+  3 index dup length 1 add dict .copydict
+                % Stack: proto matrix global buildproc newdict
+  3 index 3 -1 roll exec
+                % Stack: proto matrix global newdict instance
+  % Create an 'Implementation' entry for the pattern dict.  The PRLM 3rd says
+  % this about the contents of Implementation:  "The type and value of this
+  % entry are implementation-dependent."  The CET (page 2 of 18-02f) expects
+  % that this entry be an array and that the second element of the array be a
+  % gstate. We put our pattern instance struct into the first element of the
+  % array.
+  1 index /Implementation 3 -1 roll
+  .getCPSImode { gstate } { //null } ifelse 2 array astore
+  put				% put Implementation into the pattern dict.
+                % Stack: proto matrix global newdict
+  readonly exch .setglobal exch pop exch pop
+} odef
+
+/setpattern {			% [<comp1> ...] <pattern> setpattern -
+  { currentcolorspace 0 get /Pattern ne {
+      [ /Pattern currentcolorspace ] setcolorspace
+    } if setcolor
+  } stopped {
+    /setpattern .systemvar $error /errorname get signalerror
+  } if
+} odef
+
+% The following functions emulate the actions of findcmykcustomcolor and
+% setcustomcolor.  These functions are described in Adobe's TN 5044.  That
+% same document also says "The following "operators" are not defined in the
+% PostScript Language Reference Manual, but should be used as pseudo-operators
+% in your PostScript language output. Separation applications from Adobe
+% Systems and other vendors will redefine these convention operators to
+% separate your documents.  Your application should conditionally define
+% procedures with these special names, as shown later in this document."
+%
+% We are providing these functions because we have found files created by
+% "QuarkXPress: pictwpstops filter 1.0" which produce bad shading dictionaries
+% if these operators are not defined.
+
+% Also we add a findrgbcustomcolor that was discovered in Adobe Illustrator
+% AI5 (Adobe Illustrator (R) Version 7.0 Full Prolog) ProcSet that allows
+% us to create Separation colorspace with a /DeviceRGB tint transform.
+
+% Conditionally disable the TN 5044 psuedo-ops if NO_TN5044 specified
+/NO_TN5044 where { pop (%END TN 5044 psuedo-ops) .skipeof } if
+
+% TN 5044 does not define the contents of the array.  We are simply putting
+% the values given into an array.  This is consistent with what we see when
+% testing with Adobe Distiller 6.0.
+%   <cyan> <magenta> <yellow> <black> <key> findcmykcustomcolor <array>
+/findcmykcustomcolor { 5 array astore } bind def
+% The following isn't documented by Adobe, but was found in Adobe Illustrator (R)
+% Version 7.0 Full Prolog
+/findrgbcustomcolor { 4 array astore } bind def
+
+% Build a tint transform function for use by setcustomcolor.  This function
+% is for a Separation color space which has either a DeviceCMYK base color space
+% (i.e. 1 input and 4 outputs) or a DeviceRGB colorspace (1 in, 3 out).
+% The input to buildcustomtinttransform is the array created by findcmykcustomcolor
+% and the length of the array is used to determine the alternate colorspace.
+% The resulting function for CMYK is:
+%   { dup cyan mul exch dup magenta mul exch dup yellow mul exch black mul }
+%   Where cyan, magenta, yellow, and black are values from the array.
+% For RGB, since the resulting function is:
+%    { dup red mul exch dup green mul exch blue mul }
+/buildcustomtinttransform	% <array> buildcustomtinttransform <function>
+{
+  dup length 5 eq {
+  % CMYK
+    [ /dup load 2 index 0 get /mul load
+      /exch load /dup load 6 index 1 get /mul load
+      /exch load /dup load 10 index 2 get /mul load
+      /exch load 13 index 3 get /mul load
+    ]
+  } {
+    % RGB is assumed
+    [ /dup load 2 index 0 get /mul load
+      /exch load /dup load 6 index 1 get /mul load
+      /exch load 9 index 2 get /mul load
+    ]
+  } ifelse
+  cvx bind exch pop		%  Make executable and remove the input array
+} bind def
+
+% Construct the colorspace array to be used by setcolorspace from the array
+% result of either findcmykcustomcolor or findrgbcustomcolor.
+/buildcolorspacearray	% <array> buildcustomtinttransform <colorspace_array>
+{ % as with buildcustomtinttransform, the length of the array is used to
+  % determine the alternate colorspace
+  dup length 5 eq {
+    % Start building Separation colorspace with CMYK alternate
+    [ /Separation 2 index 4 get	% Get separation name from array's key
+      /DeviceCMYK
+      4 index //buildcustomtinttransform exec % build the tint transform function
+    ]
+  } {
+    [ /Separation 2 index 3 get	% Get separation name from array's key
+      /DeviceRGB
+      4 index //buildcustomtinttransform exec % build the tint transform function
+    ]
+  } ifelse
+  exch pop		% remove the input array
+} bind def
+
+% Set a custom color based upon a tint and array which describes the custom
+% color.  See findcmykcustomcolor.  First we create and then set a Separation
+% colorspace.  Then we set the specified color.
+% Note that older Adobe ProcSets apparently allow for 'null' as the tint
+% for some reason, so an alternate operational mode is tolerated:
+% 					    null setcustomcolor -
+/setcustomcolor			% <array> <tint> setcustomcolor -
+{ dup //null ne {
+    exch //buildcolorspacearray exec
+    setcolorspace			% Set the Separation color space as current
+    setcolor			% Set the tint as the current color
+  }
+  { pop pop }	% 'null' as the tint is ignored. pop tint and array
+  ifelse
+} bind def
+
+% This proc is supposed to implement a version of overprinting. TN 5044 says
+% that this proc is not used by any shipping host-based application. We have
+% only found it being used in a proc set in files by Canvas from Deneba Systems.
+% Even their proc set does not actually do any overprinting.  However their
+% files crash if this is not defined.  Thus we have a copy of this proc but
+% we are simply checking for inputs being -1 and if so then we set the value
+% to 0.
+/setcmykoverprint {
+  4 { dup -1 eq { pop 0 } if 4 1 roll } repeat setcmykcolor
+} bind def
+
+/separation_all [/Separation /All /DeviceCMYK { dup dup dup } bind ] readonly def
+
+% Collect the arguments into the image dictionary
+% <width> <height> <bits/sample> <matrix> <proc> args2dict <dict>
+/args2dict {
+  10 dict begin
+  {1 0} 1
+  { /ImageType /Decode /DataSource /ImageMatrix /BitsPerComponent /Height /Width
+  } { exch def } forall
+  currentdict end
+} bind def
+
+% Prints (1-gray) on all separations.
+% <gray> setseparationgray -
+/setseparationgray {
+  //separation_all setcolorspace
+  1 exch sub setcolor
+} bind def
+
+% Renders an image whose sample values specify the amount of the custom color.
+% <width> <height> <bits/sample> <matrix> <proc> <array> customcolorimage -
+/customcolorimage {
+  gsave
+  //buildcolorspacearray exec setcolorspace
+  //args2dict exec image
+  grestore
+} bind def
+
+% Renders an image on all process and custom color plates.
+% <width> <height> <bits/sample> <matrix> <proc>
+/separationimage {
+  gsave
+  //separation_all setcolorspace
+  //args2dict exec image
+  grestore
+} bind def
+
+{ /buildcustomtinttransform /buildcolorspacearray /separation_all /args2dict }
+{ currentdict exch undef } forall
+
+%END TN 5044 psuedo-ops
+
+end				% level2dict

Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_ll3.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_ll3.ps	                        (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_ll3.ps	2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,499 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% 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.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc.,  7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA  94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% 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
+% Note 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_ {		% <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
+} def
+/.bind /.bind_ load odef	% note that .bind_ will get bound
+currentdict /.bindscratch .undef
+
+DELAYBIND NOBIND or not {
+% We can't just do
+%   /bind /.bind load def
+% because then /bind load == prints --.bind-- .
+  /bind {//.bind_ exec} odef
+} if
+currentdict /.bind_ 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 .systemvar /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
+  } {
+    gsave //sethalftone grestore
+    .getdefaulthalftone
+    { //sethalftone }
+    { .setdefaulthalftone }
+    ifelse
+  } ifelse
+} odef
+
+% ------ ImageTypes 3 and 4 (masked images) ------ %
+
+% Put the new data source in the requested dictionary.
+% Copy the updated dictionary because it nay be used elsewhere.
+% <dict> <data> <name> update_image3 <dict'>
+/update_image3 {
+  3 -1 roll dup length dict copy dup  % [data] /name <<image>> <<image>>
+  2 index get                         % [data] /name <<image>> <<sub-image>>
+  dup length dict copy dup            % [data] /name <<image>> <<sub-image>> <<sub-image>>
+  /DataSource 6 -1 roll put           % /name <<image>> <<sub-image>>
+  exch dup                            % /name <<sub-image>> <<image>> <<image>>
+  4 2 roll                            % <<image>> <<image>> /name <<sub-image>>
+  put                                 % <<image>>
+} bind def
+
+% Copy mask data source to a reusable stream
+% <dict> <source> buffer_mask <dict> <file>
+/buffer_mask {
+  1 index /MaskDict get
+  dup /Width get
+  1 index /BitsPerComponent get mul 7 add 8 idiv
+  exch /Height get mul () /SubFileDecode filter
+  /ReusableStreamDecode filter
+} bind def
+
+% Data type vs. mask type decission table.
+% All procedures have the signature:
+% <image dict> <data DataSource> <mask DataSource> proc <image dict'>
+/data_mask_dict mark
+  /stringtype mark % data is a string
+    /stringtype { pop pop } bind
+    /arraytype { % convert data to proc, don't buffer mask
+      pop
+      dup type dup /arraytype eq exch /packedarraytype eq or {
+        [ exch { 1 array astore cvx } forall ]
+      } {
+        1 array astore cvx
+      } ifelse
+      /DataDict //update_image3 exec
+    } bind
+    /packedarraytype 1 index
+    /filetype { % convert data to file, don't buffer mask
+      pop
+      dup type dup /arraytype eq exch /packedarraytype eq or {
+        [ exch { 1 array astore cvx 0 () /SubFileDecode filter } forall ]
+      } {
+        1 array astore cvx 0 () /SubFileDecode filter
+      } ifelse
+      /DataDict //update_image3 exec
+    } bind
+  .dicttomark readonly
+  /arraytype mark  % data is a proc
+    /stringtype { % convert mask to proc
+      exch pop
+      1 array astore cvx
+      /MaskDict //update_image3 exec
+    } bind
+    /arraytype { % buffer mask in reusable stream and convert back to proc
+      exch pop
+      //buffer_mask exec
+      500 string
+      { readstring pop } aload pop
+      4 packedarray cvx
+      /MaskDict //update_image3 exec
+    } bind
+    /packedarraytype 1 index
+    /filetype 1 index
+  .dicttomark readonly
+  /packedarraytype 1 index
+  /filetype mark  % data is a file
+    /stringtype { % convert mask to file
+      exch pop
+      1 array astore cvx 0 () /SubFileDecode filter
+      /MaskDict //update_image3 exec
+    } bind
+    /arraytype { % buffer the mask and convert to file
+      exch pop
+      //buffer_mask exec
+      /MaskDict //update_image3 exec
+    } bind
+    /packedarraytype 1 index
+    /filetype {
+      //systemdict /userdict get /PDFTopSave known {
+        pop pop   % mask is already buffered by PDF interpreter
+      } {
+        exch pop  % buffer the mask
+        //buffer_mask exec
+        /MaskDict //update_image3 exec
+      } ifelse
+    } bind
+  .dicttomark readonly
+.dicttomark readonly def
+
+.imagetypes
+  dup 3 {
+    dup /InterleaveType get 3 eq {
+      % .image3 requires data sources of the image and mask to be of the
+      % same type. Work around this restriction here.
+      dup /DataDict get /DataSource get
+      1 index /MaskDict get /DataSource get  % <<>> data mask
+      dup type                               % <<>> data mask mask_type
+      2 index
+      4 index /DataDict get /MultipleDataSources .knownget {
+        { 0 get } if
+      } if
+      type                                   % <<>> data mask mask_type data_type
+      //data_mask_dict exch .knownget {
+        exch .knownget {
+          exec
+        } {
+          pop pop   % pass wrong type as is to .image3
+        } ifelse
+      } {
+        pop pop pop % pass wrong type as is to .image3
+      } ifelse
+    } if
+    .image3
+  } bind 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
+
+currentdict /data_mask_dict undef
+currentdict /update_image3 undef
+currentdict /buffer_mask undef
+
+% ------ 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>
+  dup rcheck not {
+      % Adobe seems to access ColorSpace first and CET 12-14c checks this.
+      /$error .systemvar /errorinfo [ /ColorSpace //null ] put
+      /shfill .systemvar /invalidaccess signalerror
+  } if
+        % 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
+      % Copy the dictionary to replace the DataSource, but make sure the
+      % copy is in the same VM as the original.
+      .currentglobal 2 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 .knownget not { % error handling for CET 12-14b conformance
+     /$error .systemvar /errorinfo [ /ShadingType //null ] put
+     /shfill .systemvar /undefined signalerror
+  } if
+  dup type /integertype ne {
+     /$error .systemvar /errorinfo [ /ShadingType 4 index ] put
+     /shfill .systemvar /typecheck signalerror
+  } if
+  //.shadingtypes 1 index .knownget not {
+     /$error .systemvar /errorinfo [ /ShadingType 4 index ] put
+     /shfill .systemvar /rangecheck signalerror
+  } if
+  exch pop 1 index /ColorSpace .knownget {
+    { setcolorspace } stopped {
+       /$error .systemvar /errorinfo [ /ColorSpace 4 index ] put
+       /shfill .systemvar /$error .systemvar /errorname get signalerror
+    } if
+    exec
+  } {
+    /$error .systemvar /errorinfo [ /ColorSpace //null ] put
+    /shfill .systemvar /undefined signalerror
+  } ifelse
+} 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.
+        % Disable overprintmode for shfill
+  { dup gsave 0 .setoverprintmode .buildshading .shfill } stopped
+  grestore {
+    /$error .systemvar /errorinfo 2 copy known {
+      pop pop
+    } {
+      //null put  % CET 12-14c
+    } ifelse
+    stop
+  } if
+  pop
+} odef
+
+% Establish an initial smoothness value that matches Adobe RIPs.
+0.02 setsmoothness
+
+% ------ DeviceN color space ------ %
+% gs_res.ps uses these entries in colorspacedict
+% to populate the ColorSpaceFamily resource, so we need
+% to add the supported spaces.
+%
+systemdict /colorspacedict get begin
+/CIEBasedDEF [] def
+/CIEBasedDEFG [] def
+/DeviceN [] def
+end
+
+% ------ Miscellaneous ------ %
+
+% Make the setoverprintmode and currentoverprintmode operators visible (3015)
+% Because of the requirements of PDF, the .currentoverprintmode and
+% .setoverprintmode operators have integer parameters.  Thus we need to
+% convert the Postscript bool parameters to integers.
+%
+/setoverprintmode 		% bool setoverprint -
+{
+  { 1 } { 0 } ifelse		% convert bool to integer
+  //.setoverprintmode
+} odef
+
+/currentoverprintmode 		% - currentoverprintmode bool
+{
+  //.currentoverprintmode
+  0 ne				% convert integers to bool
+} odef
+
+% 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

Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_mex_e.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_mex_e.ps	                        (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_mex_e.ps	2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,65 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% 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.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc.,  7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA  94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% 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

Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_mgl_e.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_mgl_e.ps	                        (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_mgl_e.ps	2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,64 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% 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.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc.,  7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA  94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% $Id: gs_mgl_e.ps 8954 2008-08-08 04:22:38Z ray $
+% 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

Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_mro_e.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_mro_e.ps	                        (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_mro_e.ps	2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,61 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% 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.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc.,  7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA  94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% $Id: gs_mro_e.ps 8954 2008-08-08 04:22:38Z ray $
+% 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

Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_pdf_e.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_pdf_e.ps	                        (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_pdf_e.ps	2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,43 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% 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.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc.,  7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA  94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% 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

Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_pdfwr.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_pdfwr.ps	                        (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_pdfwr.ps	2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,1054 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% 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.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc.,  7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA  94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% 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 4 predefined settings in Acrobat Distiller 5,
+% plus a "default" setting that doesn't downsample images.
+
+{ /pdfwrite finddevice pop } .internalstopped
+{pop pop (%END PDFWR) .skipeof} if
+
+languagelevel 2 .setlanguagelevel
+
+/.a2112 [2 1 1 2] readonly def
+/.a1111 [1 1 1 1] readonly def
+/.standardfonts [
+  /Courier /Courier-Bold /Courier-Oblique /Courier-BoldOblique
+  /Helvetica /Helvetica-Bold /Helvetica-Oblique /Helvetica-BoldOblique
+  /Times-Roman /Times-Bold /Times-Italic /Times-BoldItalic
+  /Symbol /ZapfDingbats
+] readonly def
+
+% Parameters common to all non-default configurations.
+% Note that the default configuration overrides a few of these.
+/.defaultImageDict mark
+  /QFactor 0.9 /Blend 1
+  /HSamples .a2112 /VSamples .a2112
+.dicttomark readonly def
+/.distillercommon mark
+  /AlwaysEmbed []
+  /AntiAliasColorImages //false
+  /AntiAliasGrayImages //false
+  /AntiAliasMonoImages //false
+  /ASCII85EncodePages //false
+  /AutoFilterColorImages //true
+  /AutoFilterGrayImages //true
+  /AutoPositionEPSFiles //true
+  /Binding /Left
+  /CalCMYKProfile (None)		% (U.S. Web Coated (SWOP) v2)
+  /CalGrayProfile (None)		% (Dot Gain 20%)
+  /CalRGBProfile (None)			% (sRGB IEC61966-2.1)
+  /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
+  /GrayImageDepth -1
+  /GrayImageDict .defaultImageDict
+  /GrayImageDownsampleThreshold 1.5
+  /GrayImageFilter /DCTEncode
+  /ImageMemory 524288
+  /LockDistillerParams //false
+  /MaxSubsetPct 100
+  /MonoImageDepth -1
+  /MonoImageDict mark
+    /K -1
+  .dicttomark readonly
+  /MonoImageDownsampleThreshold 1.5
+  /MonoImageFilter /CCITTFaxEncode
+  /OffOptimizations 0
+  /OPM 1
+  /Optimize //true
+  /ParseDSCComments //true
+  /ParseDSCCommentsForDocInfo //true
+  /PDFXTrimBoxToMediaBoxOffset [0 0 0 0]
+  /PDFXSetBleedBoxToMediaBox //true
+  /PDFXBleedBoxToTrimBoxOffset [0 0 0 0]
+  /PreserveCopyPage //true
+  /PreserveHalftoneInfo //false
+  /sRGBProfile (None)			% (sRGB IEC61966-2.1)
+  /StartPage 1
+  /SubsetFonts //true
+  /TransferFunctionInfo /Preserve
+  /UseFlateCompression //true
+  /UsePrologue //false
+.dicttomark readonly def
+
+/.distillersettings mark
+
+/default mark
+  /AutoRotatePages /PageByPage
+  /CannotEmbedFontPolicy /Warning
+  /ColorACSImageDict .defaultImageDict
+  /ColorConversionStrategy /LeaveColorUnchanged
+%  /ColorImageDownsampleType
+%  /ColorImageResolution
+%  /CompatibilityLevel
+  /CreateJobTicket //false
+  /DoThumbnails //false
+  /DownsampleColorImages //false	% override
+  /DownsampleGrayImages //false		% override
+  /DownsampleMonoImages //false		% override
+  /EmbedAllFonts //true
+  /GrayACSImageDict .defaultImageDict
+%  /GrayImageDownsampleType
+%  /GrayImageResolution
+%  /MonoImageDownsampleType
+%  /MonoImageResolution
+  /NeverEmbed .standardfonts
+  /Optimize //false			% override
+  /PreserveEPSInfo //true
+  /PreserveOPIComments //true
+  /PreserveOverprintSettings //true
+  /UCRandBGInfo /Preserve
+.dicttomark readonly
+
+/.screenACSImageDict mark
+  /QFactor 0.76 /Blend 1 /ColorTransform 1
+  /HSamples .a2112 /VSamples .a2112
+.dicttomark readonly def
+/screen mark
+  /AutoRotatePages /PageByPage
+%  /CalGrayProfile (None)
+  /CannotEmbedFontPolicy /Warning
+  /ColorACSImageDict .screenACSImageDict
+  /ColorConversionStrategy /sRGB
+  /ColorImageDownsampleType /Average
+  /ColorImageResolution 72
+  /CompatibilityLevel 1.5
+  /CreateJobTicket //false
+  /DoThumbnails //false
+  /EmbedAllFonts //true
+  /GrayACSImageDict .screenACSImageDict
+  /GrayImageDownsampleType /Average
+  /GrayImageResolution 72
+  /MonoImageDownsampleType /Subsample
+  /MonoImageResolution 300
+  /NeverEmbed .standardfonts
+  /PreserveEPSInfo //false
+  /PreserveOPIComments //false
+  /PreserveOverprintSettings //false
+  /UCRandBGInfo /Remove
+.dicttomark readonly
+
+/ebook mark
+  /AutoRotatePages /All
+%  /CalGrayProfile (None)
+  /CannotEmbedFontPolicy /Warning
+  /ColorACSImageDict .screenACSImageDict
+  /ColorConversionStrategy /sRGB
+  /ColorImageDownsampleType /Average
+  /ColorImageResolution 150
+  /CompatibilityLevel 1.5
+  /CreateJobTicket //false
+  /DoThumbnails //false
+  /EmbedAllFonts //true
+  /GrayACSImageDict .screenACSImageDict
+  /GrayImageDownsampleType /Average
+  /GrayImageResolution 150
+  /MonoImageDownsampleType /Subsample
+  /MonoImageResolution 300
+  /NeverEmbed .standardfonts
+  /PreserveEPSInfo //false
+  /PreserveOPIComments //false
+  /PreserveOverprintSettings //false
+  /UCRandBGInfo /Remove
+.dicttomark readonly
+
+/.printerACSImageDict mark
+  /QFactor 0.4 /Blend 1 /ColorTransform 1
+  /HSamples .a1111 /VSamples .a1111
+.dicttomark readonly def
+/printer mark
+  /AutoRotatePages /None
+%  /CalGrayProfile (None)
+  /CannotEmbedFontPolicy /Warning
+  /ColorACSImageDict .printerACSImageDict
+  /ColorConversionStrategy /UseDeviceIndependentColor
+  /ColorImageDownsampleType /Average
+  /ColorImageResolution 300
+  /CompatibilityLevel 1.5
+  /CreateJobTicket //true
+  /DoThumbnails //false
+  /EmbedAllFonts //true
+  /GrayACSImageDict .printerACSImageDict
+  /GrayImageDownsampleType /Average
+  /GrayImageResolution 300
+  /MonoImageDownsampleType /Subsample
+  /MonoImageResolution 1200
+  /NeverEmbed []
+  /PreserveEPSInfo //true
+  /PreserveOPIComments //true
+  /PreserveOverprintSettings //true
+  /UCRandBGInfo /Preserve
+.dicttomark readonly
+
+/.prepressACSImageDict mark
+  /QFactor 0.15 /Blend 1 /ColorTransform 1
+  /HSamples .a1111 /VSamples .a1111
+.dicttomark readonly def
+/prepress mark
+  /AutoRotatePages /None
+  /CannotEmbedFontPolicy /Error
+  /ColorACSImageDict .prepressACSImageDict
+  /ColorConversionStrategy /LeaveColorUnchanged
+  /ColorImageDownsampleType /Bicubic
+  /ColorImageResolution 300
+  /CompatibilityLevel 1.5
+  /CreateJobTicket //true
+  /DoThumbnails //true
+  /EmbedAllFonts //true
+  /GrayACSImageDict .prepressACSImageDict
+  /GrayImageDownsampleType /Bicubic
+  /GrayImageResolution 300
+  /MonoImageDownsampleType /Subsample
+  /MonoImageResolution 1200
+  /NeverEmbed []
+  /PreserveEPSInfo //true
+  /PreserveOPIComments //true
+  /PreserveOverprintSettings //true
+  /UCRandBGInfo /Preserve
+.dicttomark readonly
+
+% Define distiller settings for the ps2write device and for the ps2ps2 script :
+/PSL2Printer mark
+  /AutoRotatePages /None
+  /CannotEmbedFontPolicy /Error
+  /ColorACSImageDict .prepressACSImageDict
+  /ColorConversionStrategy /LeaveColorUnchanged
+  /ColorImageDownsampleType /Subsample
+  /ColorImageResolution 600
+  /DownsampleColorImages false
+  /CompatibilityLevel 1.2 % Always 1.2 with ps2write.
+  % /CreateJobTicket //true % Not sure
+  /DoThumbnails //false
+  /EmbedAllFonts //true
+  /GrayACSImageDict .prepressACSImageDict
+  /GrayImageDownsampleType /Subsample
+  /GrayImageResolution 600
+  /DownsampleGrayImages false
+  /MonoImageDownsampleType /Subsample
+  /MonoImageResolution 1200
+  /DownsampleMonoImages false
+  /NeverEmbed []
+  /PreserveEPSInfo //true
+  /PreserveOPIComments //true
+  /PreserveOverprintSettings //true
+  /UCRandBGInfo /Preserve
+  /PreserveHalftoneInfo //true
+  /TransferFunctionInfo /Preserve
+%% Deprecated in 9.06
+%%  /MaxViewerMemorySize 8000000
+  /CompressPages //false
+  /CompressFonts //true
+  /ASCII85EncodePages //true
+.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
+} bind def
+
+% ---------------- pdfmark and DSC processing ---------------- %
+
+/.write_small_positive_real  % <file> <real> .write_small_positive_real -
+{ % The argument must be grater than 0 and must be strongly samller than 0.1.
+  % The conversion isn't simple due to the low (24 bits) precision
+  % of the floating point arithmetics in Postscript.
+  % For best result we first use the 1e8 factor since its binary
+  % representation 101111101011110000100000000 well rounds into 14 significant
+  % bits :         101111101011110000000000000 .
+  1 index (.) writestring
+  { dup 100000000 mul
+    dup 10 mul 1 ge {
+      % Will need not greater than 0.1 due to a rounding below.
+      pop exit
+    } if
+    exch pop
+    1 index (00000000) writestring
+  } loop
+  % Now it is not smaller than 1e-9, use simple digitizing.
+  { dup 10 mul
+    dup 10 mul 1 ge {
+      pop exit
+    } if
+    exch pop
+    1 index (0) writestring
+  } loop
+  % Now 0.01 <= n < 0.1, but rounding may give 0.1 .
+  % Convert to integer with 7 digits precision :
+  100000000 % precision factor 1e8       % f n r
+  dup 10 idiv 3 1 roll mul 0.5 add cvi   % f r' N
+  2 copy le {
+    % The rounding overflows, suppress it.
+    % Note it carries out an additional digit,
+    % that's why we needed <0.1 above.
+    pop pop (1) writestring
+  } {
+    % Didn't cary out, put 0.
+    2 index (0) writestring
+    exch                                 % f N r
+    % Continue the simple digitizing :
+    { 10 idiv dup                        % f N r' r'
+      2 index exch idiv                  % f N r' d
+      (0123456789) exch 1 getinterval    % f N r' (d)
+      3 index exch writestring           % f N r'
+      dup 3 2 roll exch mod              % f r' N'
+      dup 0 eq {
+        % Don't write trailing zeros.
+        exit
+      } if
+      exch                               % f N' r'
+    } loop
+    pop pop pop
+  } ifelse
+} bind def
+
+% 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
+  /nametype {
+    % If the name string includes any non-regular characters,
+    % write it with two preceding and one following null character(s).
+    % (Null characters in the name itself are not allowed.)
+    % This non-standard escape convention is required for passing names
+    % that include non-regular characters, because PostScript provides
+    % no way to do this.  The pdf_scan_token procedure in the C code of
+    % the pdfwrite driver is currently the only place that recognizes
+    % this convention.
+    % Note that \004 may be self-delimiting in gs, but is not in standard PS.
+    dup .namestring (\000\004\011\012\014\015 %()/<>[]{}) .stringbreak //null ne {
+      dup .namestring (\000) .stringbreak //null ne {
+        1 index <000000> writestring 1 index exch write===only 1 index exch 0 write 0 write
+      }{
+        1 index <0000> writestring 1 index exch write===only 0 write
+      }ifelse
+    } {
+      write===only
+    } ifelse
+  } bind
+  /realtype {
+    % Prevent using floating point format - see Bug 688167.
+    dup dup 0 lt { neg } if 0.01 lt {
+      dup 0 eq {
+        pop (0) writestring
+      } {
+        dup 0 lt {
+          1 index (-) writestring neg
+        } if
+        .write_small_positive_real
+      } ifelse
+    } {
+      write===only
+    } ifelse
+  } bind
+.dicttomark readonly def
+/pdf===only {	% <file> <obj> pdf===only -
+  .pdf===dict 1 index type .knownget { exec } { write===only } ifelse
+} bind def
+/.pdfcvbuf 30 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 64000 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
+
+/.CountLeafs {
+  0 exch
+  {
+    oforce dup type /dicttype eq {
+      /Limits knownoget {
+        dup type /arraytype eq {
+          1 get 2 copy lt {
+            exch pop
+          }{
+            pop
+          }ifelse
+        }{
+          (invalid number tree, /Limits not an array\n) print
+          pop pop 0 exit
+        } ifelse
+      }{
+        (invalid number tree, /Limits not defined in intermediate or leaf node\n) print
+        pop pop 0 exit
+      }ifelse
+    } {
+      (invalid number tree, /Kids entry not a dictionary\n) print
+      pop pop 0 exit
+    } ifelse
+  } forall
+} bind def
+
+/.ExtractLeafs
+{
+  {
+    oforce dup /Nums knownoget {
+      exch pop
+      dup length 1 sub 0 2 3 -1 roll {
+                          %% dict array index
+        dup               %% dict array index index
+        2 index exch get  %% dict array index
+        20 string cvs cvn %% dict array index name
+        exch 1 add        %% dict array name index+1
+        2 index exch oget %% dict array name object
+        3 index           %% dict array name object dict
+        3 1 roll          %% dict array dict name object
+        put               %% dict array
+      } for
+      pop               %% array
+    }{
+      /Kids knownoget {
+        .ExtractLeafs
+      } if
+    } ifelse
+  } forall
+} bind def
+
+/.pdfpagelabels {
+  dup type /dicttype eq {
+    dup /Nums knownoget {
+      exch pop
+      mark exch
+      0 1 2 index length 1 sub {
+        1 index exch oget
+        exch
+      } for
+      pop
+      counttomark array astore
+      1 dict dup begin exch /Nums exch def end
+      .pdfcvs
+      mark /pdfpagelabels 3 -1 roll .pdfputparams
+      dup type /booleantype ne {
+        /pdfpagelabels .pdfparamerror
+      } if cleartomark
+    }{
+      /Kids knownoget {
+        dup .CountLeafs dup 1000 ge {
+          (PageLabel tree too complex, ignoring PageLabels\n) print flush
+          pop pop
+        }{
+          dict exch .ExtractLeafs mark exch dup length 0 1 3 -1 roll {
+            dup 20 string cvs cvn  %% mark dict index name
+            2 index exch .knownget{
+                                   %% mark ... dict index object
+            3 -1 roll              %% mark ... index object dict
+            }{
+              pop
+            }ifelse
+          } for
+          pop
+          counttomark array astore
+          1 dict dup begin exch /Nums exch def end
+          .pdfcvs
+          mark /pdfpagelabels 3 -1 roll .pdfputparams
+          dup type /booleantype ne {
+            /pdfpagelabels .pdfparamerror
+          } if cleartomark
+        }ifelse
+      }{
+         (Invalid number tree in PageLabels, ignoring PageLabels\n) print flush
+      }ifelse
+    }ifelse
+  }{
+    /pdfpagelabels .pdfparamerror
+  } ifelse
+} bind def
+
+/pdfmark {		% -mark- <key> <value> ... <markname> pdfmark -
+  counttomark 0 eq {
+    /pdfmark /stackunderflow signalerror
+  } if
+  dup type /nametype eq not {
+    /pdfmark /typecheck signalerror
+  } if
+  dup /SP eq {
+    % A hack for synchronizing the clipping path.
+    gsave
+    [1 0 0 1 0 0] setmatrix 0 setlinewidth
+    newpath -3 -3 moveto closepath stroke % Paints outside the device bbox.
+    grestore
+  } if
+  dup /PS eq systemdict /PDFX .knownget not { //false } if
+             systemdict /PDFA .knownget not { //false }{0 eq {//false}{//true} ifelse} ifelse or and {
+    % Execute it since PDF/X doesn't allow to embed it.
+    pop
+    { dup mark eq {
+        pop exit
+      } if
+      1 index /DataSource eq {
+        exch pop
+        cvx exec
+      } {
+        pop pop
+      } ifelse
+    } loop
+  } {
+    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
+  } ifelse
+} odef
+userdict /pdfmark .undef
+currentdict /.pdfmarkparams .undef
+
+%	<dict> .hook_DSC_Creator -
+/.pdf_hook_DSC_Creator
+{
+  % If the Creator is PScript5.dll, disable the 32 /FontType resource for
+  % handling GlyphNames2Unicode. Since /FontType category can't redefine,
+  % we can do only with redefining the operator 'resourcestatus'.
+  systemdict  /.pdf_hooked_DSC_Creator .knownget
+  {
+    {//false}{//true} ifelse
+  }
+  {
+    //true
+  } ifelse
+
+  {
+    /WantsToUnicode /GetDeviceParam .special_op {
+      exch pop
+    }{
+      //true
+    }ifelse
+    {
+      /Creator .knownget {
+        (PScript5.dll) search {
+          pop pop
+          systemdict /resourcestatus dup
+          { dup /FontType eq 2 index 32 eq and {
+              pop pop //false
+            } {
+              resourcestatus
+            } ifelse
+          } bind .makeoperator .forceput
+          systemdict /.pdf_hooked_DSC_Creator //true .forceput
+        } if
+        pop
+      } if
+    } {
+      pop
+    } ifelse
+  }
+  {
+    pop
+  } ifelse
+}
+bind def
+
+% 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 } { 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>
+  1 index //.pdf_hook_DSC_Creator exec
+  dup /NOP ne 2 index length 1 gt or {	% Skip unparsed comments
+    PDFWRDEBUG { (**** DSC comment: ) print dup //== exec 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
+currentdict /.pdf_hook_DSC_Creator undef
+/.initialize_dsc_parser where {
+  pop
+  3000 % priority
+  {
+    currentglobal //true setglobal
+    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
+    setglobal
+  } bind .schedule_init
+} 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 { }
+  /OffOptimizations { }
+                % PDF/X parameters
+  /PDFXTrimBoxToMediaBoxOffset { }
+  /PDFXSetBleedBoxToMediaBox { }
+  /PDFXBleedBoxToTrimBoxOffset { }
+                % Color sampled image parameters
+  /ColorACSImageDict { }
+  /AntiAliasColorImages { }
+  /AutoFilterColorImages { }
+  /ColorImageDepth { }
+  /ColorImageDict { }
+  /DownsampleColorImages { }
+  /ColorImageDownsampleThreshold { }
+  /ColorImageDownsampleType { }
+  /ColorImageAutoFilterStrategy { }
+  /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 { }
+  /GrayImageAutoFilterStrategy { }
+  /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 type /booleantype eq } { //false } ifelse
+      { dup 0 get
+         { dup length 1 sub 1 exch getinterval
+         }
+         { dup length 1 sub 1 exch getinterval exch pop /~AlwaysEmbed exch
+         } ifelse
+       }
+      { exch pop /.AlwaysEmbed exch
+      } ifelse
+   }
+  /NeverEmbed
+  { dup length 0 gt
+     { dup 0 get type /booleantype eq } { //false } ifelse
+     { dup 0 get
+        { dup length 1 sub 1 exch getinterval
+        }
+        { dup length 1 sub 1 exch getinterval exch pop /~NeverEmbed exch
+        } ifelse
+     }
+     { exch pop /.NeverEmbed exch
+     } ifelse
+   }
+  /CannotEmbedFontPolicy { }
+  /EmbedAllFonts { }
+  /MaxSubsetPct { }
+  /SubsetFonts { }
+  /DSCEncodingToUnicode { }
+  /PSDocOptions { }
+  /PSPageOptions { }
+.dicttomark readonly def
+/.distillerdevice
+ {
+    % Check to see if the current device is a Distiller
+    % and return it if so.
+    /IsDistiller /GetDeviceParam .special_op {
+      exch pop
+    }{
+      //false
+    }ifelse
+    { currentdevice }
+    { /pdfwrite finddevice }
+   ifelse
+ } bind def
+
+% Some badly designed PostScript files only expect the current/set
+% distillerparams operators to exist in a distiller. Since we have
+% this as a runtime option, we enable these operators IFF the
+% currentdevice is pdfwrite. Also, we mask their existence in
+% systemdict so that 'where' and 'known' don't show them unless
+% the currentdevice is pdfwrite.
+/.setdistillerparams {		% <dict> setdistillerparams -
+  .distillerdevice //null //false mark 4 index {
+    //.distillerparamkeys 2 index .knownget { exec } { pop pop } ifelse
+  } forall .putdeviceparamsonly
+  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
+/setdistillerparams {
+  % Check to see if the current device is a Distiller
+  /IsDistiller /GetDeviceParam .special_op {
+    exch pop not
+  }{
+    //true
+  }ifelse
+  {
+    /setdistillerparams /undefined signalerror
+  } if
+  .setdistillerparams
+} bind odef
+/currentdistillerparams {
+  % Check to see if the current device is a Distiller
+  /IsDistiller /GetDeviceParam .special_op {
+    exch pop not
+  }{
+    //true
+  }ifelse
+  {
+    /currentdistillerparams /undefined signalerror
+  } if
+  .currentdistillerparams
+} bind odef
+
+% Patch 'where' so that the distiller operators are only visible
+% if the pdfwrite device is the current one.
+{
+  % Check to see if the current device is a Distiller
+  /IsDistiller /GetDeviceParam .special_op {
+    exch pop
+  }{
+    //false
+  }ifelse
+  {
+    .where
+  } {
+    .where pop dup //systemdict eq { pop //false } { //true } ifelse
+  } ifelse
+} bind
+{ /currentdistillerparams /setdistillerparams /pdfmark }
+{ .wheredict exch 2 index put } forall pop
+
+% Patch 'known' to hide the systemdict version of distiller operators
+% unless the currentdevice is pdfwrite.
+/known {
+  /currentdistillerparams 1 index eq /setdistillerparams 2 index eq or
+  /pdfmark 2 index eq or {
+    systemdict 2 index eq {	% only mask the operator in systemdict
+      known
+      % Check to see if the current device is a Distiller
+      /IsDistiller /GetDeviceParam .special_op {
+        exch pop not
+      }{
+        //true
+      }ifelse
+      { pop false } if
+    } {
+      known
+    } ifelse
+  } {
+    known
+  } ifelse
+} .bind odef
+
+% Create a table for translation DSC comments into Unicode UTF-16
+/.make_DSC_translation_table {        % <encoding> .make_DSC_translation_table <array>
+  dup type /stringtype eq {
+    cvn
+  } if
+  dup type /nametype eq {
+    /Encoding findresource
+  } if
+  dup length array exch                   % [out] [in]
+  0 1 2 index length 1 sub {              % [out] [in] i
+    dup 2 index exch get                       % [out] [in] i n
+    dup dup //null eq exch /.notdef eq or {
+      pop -1
+    } {
+      dup //AdobeGlyphList exch .knownget {  % [out] [in] i n c
+      dup type dup /arraytype eq exch /packedarraytype eq or {
+        0 get % fixme: using the 1st char
+      } if
+      exch pop                               % [out] [in] i c
+      } {                                    % [out] [in] i n
+        (DSCEncoding defines a character that is not in AdobeGlyphList : )
+        exch .namestring concatstrings =
+        /.make_DSC_translation_table cvx /undefined signalerror
+      } ifelse
+    } ifelse
+    3 index                                  % [out] [in] i c [out]
+    3 1 roll put                             % [out] [in]
+  } for
+  pop                                        % [out]
+} bind def
+
+1000 % priority
+{
+  % Note, this may not work if the initial device is not pdfwrite
+  % and may require the use of -dProvideUnicode on the command line.
+  % Check to see if the current device wants ToUnicode info
+  /WantsToUnicode /GetDeviceParam .special_op {
+    exch pop
+  }{
+    //false
+  }ifelse
+  systemdict /ProvideUnicode .knownget not { //false } if or
+  {
+    currentglobal true setglobal
+    systemdict /.setupUnicodeDecoder known {
+      /Unicode /Decoding resourcestatus {
+        pop pop
+        /Unicode /Decoding findresource
+        .setupUnicodeDecoder
+      } {
+        QUIET not {
+          (WARNING: /Unicode /Decoding resource is not accessible but it is useful for generating ToUnicode CMap.) =
+        } if
+      } ifelse
+    } if
+    setglobal
+  } if
+} bind .schedule_init
+
+1010 % priority
+{
+    % Set a predefined configuration in the distiller device (pdfwrite)
+    /PDFSETTINGS where {
+      pop /PDFSETTINGS load
+    } {
+      % We use the presence of the OPDFRead key as a proxy for a pdfwrite-family device
+      /ForOPDFRead /GetDeviceParam .special_op {
+        % Get rid of the OPDFRead key
+        exch pop
+        % and then check the value to see if its pdfwrite or ps2write
+        { /PSL2Printer } { /default } ifelse
+      } {
+        /default
+      } ifelse
+    } 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
+    % We use the presence of the OPDFRead key as a proxy for a pdfwrite-family device
+    /ForOPDFRead /GetDeviceParam .special_op {
+      % Get rid of the OPDFRead key
+      exch pop
+      % Then check to see if OPDFRead is true or not
+      not {
+        systemdict /PDFX known systemdict /PDFA known or {
+        /DSCEncoding where {
+            /DSCEncoding get .make_DSC_translation_table
+            /DSCEncodingToUnicode exch def
+          } if
+        } if
+      } if
+    } if
+    currentdict end .setdistillerparams
+    .distillerdevice //null //false mark .putdeviceparams
+    dup type /booleantype eq not { cleartomark pop } if pop pop
+} bind .schedule_init
+
+2000 % priority
+{ % Note, this may not work if the initial device is not pdfwrite
+  % We use the presence of the OPDFRead key as a proxy for a pdfwrite-family device
+  /ForOPDFRead /GetDeviceParam .special_op {
+    % Get rid of the OPDFRead key and value
+    pop pop
+    % Inform the device with initial graphic state. See gdev_pdf_fill_path.
+    newpath fill
+  } if
+} bind .schedule_init
+
+.setlanguagelevel
+
+%END PDFWR

Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_res.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_res.ps	                        (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_res.ps	2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,1161 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% 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.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc.,  7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA  94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% 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 don'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).
+% Note that all places that look up categories must use .findcategory
+% so that the command in case of error will be correct rather than an
+% internal invocation of findresource.
+/.findcategory {	% <name> .findcategory -
+                        %   (pushes the category on the dstack)
+    /Category .findresource begin	% note: *not* findresource
+} bind def
+
+% If an error occurs within the logic of a resource operator (after operand
+% acquisition and checking), the Adobe interpreters report the operator name,
+% not the operator object, as the command in $error.  For this reason, and
+% this reason only, all resource operators must wrap their logic code in
+%	/<opername> cvx { ...logic... } .errorexec
+
+% The Category resource signals /undefined rather than /undefinedresource,
+% both when referenced implicitly (to look up the category for a general
+% resource operation) and when it is accessed directly (/Category /xxx
+% findresource).  Because of this, all resource operators must use
+% .undefinedresource rather than signalling undefinedresource directly.
+/.undefinedresource {	% <command> .undefinedresource -
+    /Category dup load eq { /undefined } { /undefinedresource } ifelse
+    signaloperror
+} 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 cvx /typecheck signaloperror
+        } 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 cvx /invalidaccess signaloperror } 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.
+% We define its contents as a separate procedure so that .findcategory
+% can use it without entering another level of pseudo-operator.
+/.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
+def
+/findresource {
+    % See above re .errorexec.
+    1 .argindex 	% also catch stackunderflow
+    dup type /stringtype eq { cvn } if  % for CET 23-13-04
+    3 1 roll exch pop
+    dup type /nametype ne {
+      /findresource .systemvar /typecheck signalerror
+    } if
+    /findresource cvx //.findresource .errorexec
+} odef
+
+/defineresource {	% <key> <instance> <category> defineresource <instance>
+    2 .argindex 2 index 2 index	% catch stackunderflow
+    % See above re .errorexec.
+    /defineresource cvx {
+        .findcategory
+        currentdict /InstanceType known {
+          dup type InstanceType ne {
+            dup type /packedarraytype eq InstanceType /arraytype eq and
+            not { /defineresource cvx /typecheck signaloperror } if
+          } if
+        } if
+        /DefineResource .resourceexec
+        4 1 roll pop pop pop
+    } .errorexec
+} bind odef
+% We must prevent resourceforall from automatically restoring the stacks,
+% because we don't want the stacks restored if proc causes an error or
+% executes a 'stop'. 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 .findcategory
+        /ResourceForAll load
+        % Stack: <template> <proc> <scratch> <category> proc
+        exch pop		% pop the category
+        exec end
+} 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
+  {
+    0 .argindex type /nametype ne {
+      % CET 23-26 wants typecheck here, not undefineresource that happens
+      % without the check.
+      /resourcestatus cvx /typecheck signalerror
+    } if
+    2 copy .findcategory /ResourceStatus .resourceexec
+    { 4 2 roll pop pop //true } { pop pop //false } ifelse
+  } stopped {
+    % Although resourcestatus is an operator, Adobe uses executable name
+    % for error reporting. CET 23-26
+    /resourcestatus cvx $error /errorname get signalerror
+  } if
+} bind odef
+/undefineresource {	% <key> <category> undefineresource -
+  0 .argindex type /nametype ne {
+    /undefinedresource cvx /typecheck signaloperror
+  } if
+  1 .argindex 1 index		% catch stackunderflow
+
+  { .findcategory /UndefineResource .resourceexec pop pop
+  } stopped {
+    % Although undefineresource is an operator, Adobe uses executable name
+    % here but uses operator for the errors above. CET 23-33
+    /undefineresource cvx $error /errorname get signalerror
+  } if
+} bind odef
+
+% Define the system parameters used for the Generic implementation of
+% ResourceFileName.
+systemdict begin
+
+%     - .default_resource_dir <string>
+/.default_resource_dir {
+  /LIBPATH .systemvar {
+    dup .file_name_current eq {
+      pop
+    } {
+      (Resource) search {
+        exch concatstrings
+        exch pop
+        .file_name_separator concatstrings exit
+      } {
+        pop
+      } ifelse
+    } ifelse
+  } forall
+} bind def
+
+%  <path> <name> <string> .resource_dir_name <path> <name> <string>
+/.resource_dir_name
+{  systemdict 2 index .knownget {
+     exch pop
+     systemdict 1 index undef
+   } {
+     dup () ne {
+     .file_name_directory_separator concatstrings
+    } if
+    2 index exch //false .file_name_combine not {
+      (Error: .default_resource_dir returned ) print exch print ( that can't combine with ) print =
+      /.default_resource_dir cvx /configurationerror signalerror
+    } if
+  } ifelse
+} bind def
+
+currentdict /pssystemparams known not {
+  /pssystemparams 10 dict readonly def
+} if
+pssystemparams begin
+  .default_resource_dir
+  /FontResourceDir (Font) .resource_dir_name
+     readonly .forcedef	% pssys'params is r-o
+  /GenericResourceDir () .resource_dir_name
+     readonly .forcedef	% pssys'params is r-o
+  pop % .default_resource_dir
+  /GenericResourcePathSep
+        .file_name_separator readonly .forcedef		% pssys'params is r-o
+  (%diskFontResourceDir) cvn (/Resource/Font/) readonly .forcedef	% pssys'params is r-o
+  (%diskGenericResourceDir) cvn (/Resource/) readonly .forcedef	% pssys'params is r-o
+end
+end
+
+% Check if GenericResourceDir presents in LIBPATH.
+
+% The value of GenericResourceDir must end with directory separator.
+% We use .file_name_combine to check it.
+% Comments use OpenVMS syntax, because it is the most complicated case.
+(x) pssystemparams /GenericResourcePathSep get
+(y) concatstrings concatstrings dup length              % (x]y) l1
+pssystemparams /GenericResourceDir get dup length exch  % (x]y) l1 l2 (dir)
+3 index //true .file_name_combine not {
+  exch
+  (File name ) print print ( cant combine with ) print =
+  /GenericResourceDir cvx /configurationerror signaloperror
+} if
+dup length                                              % (x]y) l1 l2 (dir.x]y) l
+4 2 roll add                                            % (x]y) (dir.x]y) l ll
+ne {
+  (GenericResourceDir value does not end with directory separator.\n) =
+  /GenericResourceDir cvx /configurationerror signaloperror
+} if
+pop pop
+
+pssystemparams dup /GenericResourceDir get exch /GenericResourcePathSep get
+(Init) exch (gs_init.ps) concatstrings concatstrings concatstrings
+status {
+  pop pop pop pop
+} {
+  (\n*** Warning: GenericResourceDir doesn't point to a valid resource directory.) =
+  (               the -sGenericResourceDir=... option can be used to set this.\n) =
+  flush
+} ifelse
+
+% Define the generic algorithm for computing resource file names.
+/.rfnstring 8192 string def
+/.genericrfn		% <key> <scratch> <prefix> .genericrfn <filename>
+ { 3 -1 roll //.rfnstring cvs concatstrings exch copy
+ } 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
+    } {
+      pop pop
+    } ifelse
+  } {
+    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 cvx /typecheck signaloperror
+           }
+        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 //null eq {
+          % CET 13-06 wants /typecheck for "null findencoding" but
+          % .knownget doesn't fail on null
+          /findresource cvx /typecheck signaloperror
+        } if
+        dup .getvminstance {
+          exch pop 0 get
+        } {
+          dup ResourceStatus {
+            pop 1 gt {
+              .DoLoadResource .getvminstance not {
+                /findresource cvx .undefinedresource
+              } if 0 get
+            } {
+              .GetInstance pop 0 get
+            } ifelse
+          } {
+           /findresource cvx .undefinedresource
+          } 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 {
+                % Construct a new procedure to hold the arguments.
+                % All objects constructed here must be in local VM to avoid
+                % a possible invalidaccess.
+        currentdict 4 .localvmpackedarray	% [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 .localvmpackedarray 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 .localvmpackedarray cvx
+        .Instances exch cvx {forall} 0 get 1 index 0 get
+        currentdict end 3 .execn begin
+        mark                                             % args [
+        Category .namestring .file_name_separator concatstrings
+        2 index 0 get                                    % args [ (c/) (t)
+        1 index length 3 1 roll                          % args [ l (c/) (t)
+        concatstrings                                    % args [ l (c/t)
+        [
+          //true /LIBPATH .systemvar 3 index
+          .generate_dir_list_templates_with_length       % args (t) [ l [(pt) Lp ...]
+            % also add on the Resources as specified by the GenericResourceDir
+          //true [ currentsystemparams /GenericResourceDir get]
+          counttomark 1 add index .generate_dir_list_templates_with_length
+          ] exch pop
+        dup length 1 sub 0 exch 2 exch {                 % args [ l [] i
+          2 copy get                                     % args [ l [] i (pt)
+          exch 2 index exch 1 add get                    % args [ l [] (pt) Lp
+          3 index add
+          exch                                           % args [ l [] Lp (pt)
+
+          {                                              % args [ l [] Lp (pf)
+            dup length                                   % args [ l [] Lp (pf) Lpf
+            2 index sub                                  % args [ l [] Lp (pf) Lf
+            2 index exch                                 % args [ l [] Lp (pf) Lp Lf
+            getinterval cvn dup                          % args [ l [] Lp /n /n
+            5 2 roll                                     % args [ /n /n l [] Lp
+          } //.rfnstring filenameforall
+          pop                                            % args [ /n1 /n1 ... /nN /nN l []
+        } for                                            % args [ /n1 /n1 ... /nN /nN l []
+        pop pop
+        .dicttomark % An easy way to exclude duplicates. % args <</n/n>>
+          % {
+          { pop } 0 get
+          2 index 2 get { cvs 0 } aload pop 5 index
+          //.externalresourceforall {exec} 0 get
+          % }
+        7 .localvmpackedarray cvx
+        3 2 roll pop % args
+        { forall } 0 get
+        currentdict end 2 .execn begin
+} bind
+
+/ResourceFileName  {                          % /in (scr) --> (p/c/n)
+  exch //.rfnstring cvs                       % (scr) (n)
+  /GenericResourcePathSep getsystemparam exch % (scr) (/) (n)
+  Category .namestring                        % (scr) (/) (n) (c)
+  3 1 roll                                    % (scr) (c) (/) (n)
+  concatstrings concatstrings                 % (scr) (c/n)
+  /GenericResourceDir getsystemparam 1 index  % (scr) (c/n) (p/) (c/n)
+  concatstrings                               % (scr) (c/n) (p/c/n)
+  dup status {
+    pop pop pop pop exch pop                  % (scr) (p/c/n)
+  } {
+    exch
+    .libfile
+    {//true}
+    {
+      pop dup .libfile
+      {//true}
+      {//false}
+      ifelse
+    } ifelse
+
+    {
+      dup .filename pop
+      exch closefile
+      exch pop
+    }
+    {pop}
+    ifelse
+  } ifelse
+  exch copy                                   % (p/c/n)
+} 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	% 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
+           }
+         ifelse
+        } bind
+/.ResourceFile
+        {
+          Category //.rfnstring cvs length                      % key l
+          dup //.rfnstring dup length 2 index sub               % key l l (buf) L-l
+          3 2 roll exch getinterval                             % key l ()
+          .file_name_directory_separator exch copy length add   % key l1
+          dup //.rfnstring dup length 2 index sub               % key l1 l1 (buf) L-l
+          3 2 roll exch getinterval                             % key l1 ()
+          2 index exch cvs length add                           % key l2
+          //.rfnstring exch 0 exch getinterval                  % key (relative_path)
+          .libfile {
+            exch pop //true
+          } {
+            pop
+            currentdict /ResourceFileName known {
+              mark 1 index //.rfnstring { ResourceFileName } .internalstopped {
+                cleartomark //false
+              } {
+                (r) { file } .internalstopped {
+                  cleartomark //false
+                } {
+                  exch pop exch pop //true
+                } ifelse
+              } ifelse
+             } {
+               pop //false
+             } ifelse
+          } 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 { <00> search { exch pop cvn exch }{ cvn exit } ifelse } .bind loop .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 cvx /invalidaccess signaloperror }
+           { 2 copy ne
+              { /defineresource cvx /rangecheck signaloperror }
+              { dup .Instances 4 -2 roll .growput }
+             ifelse
+           }
+          ifelse
+        } bind
+   /UndefineResource
+        { /undefineresource cvx /invalidaccess signaloperror } bind
+   /FindResource
+        { .Instances 1 index .knownget
+           { exch pop }
+           { /findresource cvx .undefinedresource }
+          ifelse
+        } bind
+   /ResourceStatus
+        { .Instances exch known { 0 0 //true } { //false } ifelse } bind
+   /ResourceForAll
+        /Generic .findcategory /ResourceForAll load end
+
+                % 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
+/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 OutputDevice category.
+/OutputDevice mark
+/InstanceType /dicttype
+/.Instances mark
+%% devicedict is not created yet so here we employ a technique similar to
+%% that used to create it, in order to get the device names. We run a loop
+%% executing .getdevice with incremental numbers until we get an error.
+%% The devicedict creation only stops on a rangecheck, we stop on any error.
+%% We need to use .internalstopped, not stopped or we get an invalidacces
+%% later in this file. Instances of /OutputDevice are dictionaries, and the
+%% only required key is a /PageSize. The array of 4 numbers are minimum to
+%% maximum and are matches for the Adobe Acrobat Distiller values.
+0
+{
+  {dup .getdevice .devicename cvn 1 dict dup /PageSize [1 1 14400 14400] put [exch readonly 0 -1] 3 -1 roll 1 add} loop
+} .internalstopped pop
+%% Remove the count, and the duplicate, from the stack
+pop pop
+.dicttomark
+.definecategory
+
+% 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.
+
+/.fontstatusaux {		% <fontname> .fontstatusaux <fontname> <found>
+  {		% Create a loop context just so we can exit it early.
+                % Check Fontmap.
+    Fontmap 1 index .knownget
+    { //true }
+    { .nativeFontmap 1 index .knownget } ifelse
+
+    {
+      {
+        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
+
+
+    dup / eq { //false exit } if  % / throws an error from findlibfile
+                % 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
+
+/.fontstatus {		% <fontname> .fontstatus <fontname> <found>
+  //.fontstatusaux exec
+  { //true }
+  {
+    .buildnativefontmap
+    { //.fontstatusaux exec }
+    { //false } ifelse
+  } ifelse
+} bind def
+currentdict /.fontstatusaux .undef
+
+/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 .vmused 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 .vmused 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 } stopped {
+      /definefont cvx $error /errorname get signalerror
+  } if
+} 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 } stopped {
+    pop /findfont $error /errorname get signalerror
+  } if
+} 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 } stopped {
+      pop /findencoding $error /errorname get signalerror
+    } if
+  } 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
+    /DefaultColorRendering currentcolorrendering /ColorRendering defineresource pop
+  } if
+        % ColorSpace resources
+  systemdict /CIEsRGB .knownget {
+    /sRGB exch /ColorSpace defineresource pop
+    systemdict /CIEsRGB undef
+  } if
+  systemdict /CIEsRGBICC .knownget {
+    /sRGBICC exch /ColorSpace defineresource pop
+    systemdict /CIEsRGBICC undef
+  } if
+  systemdict /CIEsGRAYICC .knownget {
+    /sGrayICC exch /ColorSpace defineresource pop
+    systemdict /CIEsGRAYICC 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
+
+%% Replace 1 (gs_resmp.ps)
+(gs_resmp.ps)  dup runlibfile VMDEBUG

Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_resmp.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_resmp.ps	                        (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_resmp.ps	2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,529 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% 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.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc.,  7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA  94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% A procset to redefine a resource category with a resource map.
+
+% Public entries :
+
+% Redefine - a procedure for redefining a resource category with a map.
+%    Methods for interpreting the resource map to be provided by client
+%    in the argument dictionary.
+%
+%    Note that the procedure Redefine is idempotential :
+%    consequtive calls to it will not replace the category methods,
+%    but will merge resource maps. If an interleaving redefinition
+%    needs to cancel the idempotentity, it must remove the entry
+%    /.IsRedefinedWithMap from the category dictionary.
+
+% MakeResourceEnumerator - this procedure is useful for
+%    redefining any category. It provides a proper order of instances
+%    and proper stacks during resourceforall.
+
+% BindWithCurrentdict - a procedure for generating temporary procedures
+%    from templates, binding them with a local dictionary.
+
+% execstack_lookup - a procedure for communicating through the execution stack.
+%    It allows for a callee to get an information from an indirect caller.
+
+% The procedures are designed for exeution witout putting
+% the procset instance onto the dictionary stack.
+
+languagelevel 2 .setlanguagelevel
+currentglobal //true setglobal
+
+/MappedCategoryRedefiner 10 dict begin % The procset.
+
+currentpacking //false setpacking
+
+/InstanceEnumeratorPattern   %  - InstanceEnumeratorPattern ...
+{
+  % This is a pattern for enumeration procedure to be built dynamically,
+  % applying BindWithCurrentdict with a temporary dictionary.
+  % The following names will be replaced with specific objects
+  % during BindWithCurrentdict :
+  % en_local_dict - a dictionary for storing the local integer variable 'status'.
+  % scr - the scratch string argument of resourceforall;
+  % proc - the procedure argument of resourceforall;
+  % InstancesStatus - a dictionary that maps resource instance names to their status value;
+  % Category - the category to be enumerated.
+
+  % When this procedure is called from ResourceForAll, the category is the current dictionary.
+  % We remove it from the dictionary stack before performing the enumeration
+  % to provide the <proc> to write to the underlying dictionary,
+  % and put it back after the enumeration is completed.
+  end
+  {
+    0 1 2 {
+      en_local_dict exch /status exch put
+      InstancesStatus {
+        en_local_dict /status get eq {
+          scr cvs                           % ... (Font)
+          proc exec                         %
+        } {
+          pop
+        } ifelse                            % ...
+      } forall
+    } for                                   % ...
+  } stopped
+  Category begin
+  { stop } if
+} bind def
+
+% An auxiliary proc for BindWithCurrentdict :
+/.BindAux    % <proc> BindAux <proc>
+{ 0 exec
+} bind def
+
+setpacking
+
+/BindWithCurrentdict     % <proc> BindWithCurrentdict <proc>
+{
+  % Make a copy of the given procedure, binding in the values of all names
+  % defined in currentdict.
+  % Caution1 : this code cannot handle procedures that were already
+  %            bound recursively.
+  % Caution2 : this code don't bind packedarrays. This was done
+  %            intentionally for a termination of the procedure tree.
+
+  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 //BindWithCurrentdict put   % bind the recursive call in 'Bind'.
+
+/MakeResourceEnumerator   % <proc> <scr> <InstancesStatus> MakeResourceEnumerator <Enumerator>
+{
+  % 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.
+
+  % Always place the enumerator in local VM,
+  % because its elements may be in local VM.
+
+  currentglobal 4 1 roll
+  //false setglobal
+  currentdict                    % Category
+  6 dict begin % the temporary dictionary
+    /Category exch def
+    /InstancesStatus exch def
+    /scr exch def
+    /proc exch def
+    /en_local_dict currentdict def
+    //InstanceEnumeratorPattern //BindWithCurrentdict exec     % Enumerator
+    /status 0 def % variable for the current status to enumerate - do not bind with it !
+  end
+  exch setglobal
+} bind def
+
+/execstack_lookup     % <object> execstack_lookup <object1>
+                      % <object> execstack_lookup null
+{ % Checks whether execution stack contains a procedure starting with <object>,
+  % and retrives the 2nd element of the procedure,
+  % or null if the procedure was not found.
+  %
+  % Since 'execstack' actually renders subarrays of procedures,
+  % the pattern for recognition must be like this :
+  %
+  %   { <object> <object1>
+  %     CallSomething
+  %   } loop
+  %
+  % The solution with 'loop' depends on how GS implements cycles,
+  % so it must not appear in documents, which are required to be interpreter independent.
+  % Any other type of cycles are also acceptable.
+  % If no repitition is really needed, just insert 'exit' into its body.
+  % If <object> <object1> are not needed for the caller, insert "pop pop" after them.
+  % If <object1> is really unuseful, the pattern may be simplified :
+  %
+  %   { <object> pop
+  %     CallSomething
+  %     exit
+  %   } loop
+  %
+  % It will retrieve 'pop' or 'null'.
+  %
+  % Note that 2 topmost execstack elements are the execstack_lookup procedure and its caller.
+  % We don't check them.
+
+  currentglobal //false setglobal                  % <object> bGlobal
+  countexecstack array execstack                   % <object> bGlobal [execstack]
+  dup //null exch                                  % <object> bGlobal [execstack] null [execstack]
+  length 3 sub -1 0 {                              % <object> bGlobal [execstack] null i
+    2 index exch get                               % <object> bGlobal [execstack] null proc
+    dup type dup /packedarraytype eq exch /arraytype eq or {
+      dup rcheck {
+        dup length 1 gt {                          % <object> bGlobal [execstack] null proc
+          dup 0 get                                % <object> bGlobal [execstack] null proc elem0
+          5 index eq {                             % <object> bGlobal [execstack] null proc
+            1 get                                  % <object> bGlobal [execstack] null object1
+            exch pop exit                          % <object> bGlobal [execstack] object1
+          } {
+            pop
+          } ifelse
+        } {
+          pop                                      % <object> bGlobal [execstack] false
+        } ifelse
+      } {
+        pop                                        % <object> bGlobal [execstack] false
+      } ifelse
+    } {
+      pop                                          % <object> bGlobal [execstack] false
+    } ifelse
+  } for                                            % <object> bGlobal [execstack] bResult
+  exch pop exch setglobal exch pop                 % bResult
+} bind def
+
+currentpacking //false setpacking
+/MethodsToRedefine 5 dict begin
+
+    % Procedures in this dictionary really are patterns for new category methods.
+    % The following names will be replaced with specific objects during BindWithCurrentdict :
+    %   .map - the map dictionary;
+    %   DefineResource, ResourceStatus, ResourceFileName, FindResource, ResourceForAll
+    %        - procedures from the original resource category.
+
+    /FindResource  % <Name> FindResource <dict>
+    { RESMPDEBUG { (resmp FindResource beg ) print dup = } if
+      dup ResourceStatus exec {
+        pop 2 lt
+      } {
+        //false
+      } ifelse                             % bInVirtualMemory
+      { FindResource exec
+      } {
+        dup dup .map exch .knownget {      % /Name /Name <<record>>
+          dup dup /RecordVirtualMethods get /IsActive get exec {
+            1 index .getvminstance {       % /Name /Name <<record>> holder
+              1 get 1 eq
+            } {
+              //true
+            } ifelse                       % /Name /Name <<record>> bStatusIs1
+            4 1 roll                       % bStatusIs1 /Name /Name <<record>>
+            dup /RecordVirtualMethods get /MakeInstance get exec
+                                           % bStatusIs1 /Name /Name Instance size
+            5 1 roll                       % size bStatusIs1 /Name /Name Instance
+            DefineResource exec            % size bStatusIs1 /Name Instance
+            % Make ResourceStatus to return correct values for this instance :
+            % Hack: we replace status values in the instance holder :
+            exch .getvminstance pop        % size bStatusIs1 Instance holder
+            dup 5 -1 roll 2 exch put       % bStatusIs1 Instance holder
+            3 2 roll {                     % Instance holder
+              1 1 put                      % Instance
+            } {
+              pop
+            } ifelse                       % Instance
+          } {                              % /Name /Name <<record>>
+            pop pop FindResource exec
+          } ifelse
+        } {                                % /Name /Name
+          pop FindResource exec
+        } ifelse
+      } ifelse
+      RESMPDEBUG { (resmp FindResource end) = } if
+    } bind def
+
+    /ResourceStatus   % <Name> ResourceStatus <status> <size> true
+                      % <Name> ResourceStatus false
+    { RESMPDEBUG { (resmp ResourceStatus beg ) print dup //== exec } if
+      dup ResourceStatus exec {            % /Name status size
+        1 index 2 lt {
+          % In VM - return with it.
+          3 2 roll pop //true
+        } {
+          % Not in VM.
+          exch pop exch                    % size /Name
+          dup .map exch .knownget {        % size /Name <<record>>
+            dup dup /RecordVirtualMethods get /IsActive get exec {
+              3 2 roll pop                 % /Name <<record>>
+              dup /RecordVirtualMethods get /GetSize get exec 2 exch //true
+            } {                            % size /Name <<record>>
+              pop pop 2 exch //true
+            } ifelse
+          } {                              % size /Name
+            pop 2 exch //true
+          } ifelse
+        } ifelse
+      } {                                  % /Name
+        dup .map exch .knownget {          % /Name <<record>>
+          dup dup /RecordVirtualMethods get /IsActive get exec {
+            dup /RecordVirtualMethods get /GetSize get exec 2 exch //true
+          } {                              % /Name <<record>>
+            pop pop //false
+          } ifelse
+        } {                                % /Name
+          pop //false
+        } ifelse
+      } ifelse
+      RESMPDEBUG { (resmp ResourceStatus end) = } if
+    } bind def
+
+    /ResourceFileName  % <Name> <scratch> ResourceFileName <string>
+    { RESMPDEBUG { (resmp ResourceFileName beg ) print 1 index = } if
+      exch                                                    % (scratch) /Name
+      .map 1 index .knownget {                                % (scratch) /Name <<record>>
+        RESMPDEBUG { (resmp ResourceFileName : have a map record.) = } if
+        dup dup /RecordVirtualMethods get /IsActive get exec {
+          RESMPDEBUG { (resmp ResourceFileName : record is active.) = } if
+          dup /RecordVirtualMethods get /GetFilePath get exec % (string)
+          RESMPDEBUG { (resmp ResourceFileName : retrieving ) print dup = } if
+        } {                                                   % (scratch) /Name <<record>>
+          RESMPDEBUG { (resmp ResourceFileName : record is NOT active.) = } if
+          pop exch ResourceFileName exec
+          RESMPDEBUG { (resmp ResourceFileName : retrieving ) print dup = } if
+        } ifelse
+      } {
+        RESMPDEBUG { (resmp ResourceFileName : have NO map record.) = } if
+        exch ResourceFileName exec
+        RESMPDEBUG { (resmp ResourceFileName : retrieving ) print dup = } if
+      } ifelse
+      RESMPDEBUG { (resmp ResourceFileName end) = } if
+    } bind def
+
+    /ResourceForAll  % <template> <proc> <scratch> ResourceForAll -
+    { RESMPDEBUG { (resmp ResourceForAll beg ) print CategoryName =string cvs print ( ) print 2 index = } if
+      % Create InstancesStatus dictionary :
+      20 dict % IS - Instances Status
+      4 1 roll                            % <<IS>> (templ) {proc} (sctarch)
+      % Check if we are under another ResourceForAll :
+      /.DisableResourceOrdering //execstack_lookup exec //null eq 4 1 roll
+                                          % <<IS>> bOrder (templ) {proc} (sctarch)
+
+      % Put underlying resources to the InstancesStatus dictionary :
+      currentdict % the category
+      begin % ResourceForAll removes it locally.
+      2 index
+      { cvn                               % <<IS>> bOrder (templ) {proc} (sctarch) /Name
+        4 index {
+          dup ResourceStatus exec {pop 6 index 3 1 roll put} {pop} ifelse
+        } {
+          5 index exch 2 put % Don't need the ordering, put '2' as a scratch.
+        } ifelse
+      }
+      2 index ResourceForAll exec         % <<IS>> bOrder (templ) {proc} (sctarch)
+      4 3 roll pop                        % <<IS>> (templ) {proc} (sctarch)
+      end
+
+      % Put .map entries to the InstancesStatus dictionary :
+      4 -1 roll begin                     % (templ) {proc} (sctarch)
+      .map {                              % (templ) {proc} (sctarch) /Name record
+         dup dup /RecordVirtualMethods get /IsActive get exec {
+           pop                            % (templ) {proc} (sctarch) /Name
+           dup currentdict exch known {
+             pop
+           } {
+             dup 2 index cvs              % (templ) {proc} (sctarch) /Name (Name)
+             4 index .stringmatch {       % (templ) {proc} (sctarch) /Name
+               2 def % It is not in VM.
+             } {
+               pop
+             } ifelse
+           } ifelse
+        } {                               % (templ) {proc} (sctarch) /Name record
+          pop pop
+        } ifelse
+      } forall                            % (templ) {proc} (sctarch)
+
+      % prepare stacks for the enumeration :
+      3 2 roll pop                        % {proc} (sctarch)
+      currentdict end                     % {proc} (scratch) <<IS>>
+
+      % Make the enumerator and apply it :
+      //MakeResourceEnumerator exec exec
+      RESMPDEBUG { (resmp ResourceForAll end)= } if
+    } bind def
+
+    /GetCIDSystemInfoFromMap   % <Name> GetCIDSystemInfoFromMap <Name>
+                               % <Name> GetCIDSystemInfoFromMap <dict>
+    { RESMPDEBUG { (resmp GetCIDSystemInfoFromMap beg ) print dup = } if
+      % This is a special function for communicating with GetCIDSystemInfo in gs_cidcm.ps .
+      dup .map exch .knownget {
+        RESMPDEBUG { (resmp GetCIDSystemInfoFromMap : have a map record.) = } if
+        dup /RecordVirtualMethods get /GetCSI get exec
+        dup //null ne {
+          RESMPDEBUG { (resmp GetCIDSystemInfoFromMap : retrieving a dict.) = } if
+          exch
+        } if
+        pop
+      } if
+      RESMPDEBUG { (resmp GetCIDSystemInfoFromMap end) = } if
+    } bind def
+
+currentdict end def
+setpacking
+
+/Redefine     % <OptionsDict> Redefine -
+{ % Before calling this proc, the OptionsDict must specify options for
+  % the catregory to be redefined :
+  % CategoryName - a name of category to redefine;
+  % MapFileName - a string for the resource map file name;
+  % VerifyMap - a procedure :
+  %   <raw_map> VerifyMap -
+  %   - checks the map for consistency
+  % PreprocessRecord  - a procedure :
+  %   <map> <Name> <raw_record> PreprocessRecord <map> <Name> <record> true
+  %   <map> <Name> <raw_record> PreprocessRecord <map> <Name> <raw_record> false
+  %   - converts a map record into a dictionary;
+  %   It must add RecordVirtualMethods dictionary to the record :
+  %     MakeInstance - a procedure :
+  %         <Name> <record> MakeInstance <Name> <Instance> <size>
+  %         - converts the record to resource instance;
+  %     GetFilePath - a procedure for ResourceFileName :
+  %         <scratch> <Name> <record> GetFilePath <filepath>
+  %     GetSize - a procedure for ResourceStatus :
+  %         <Name> <record> GetSize <size>
+  %     GetCSI - a procedure for obtaining CIDSystemInfo dictionary from the record :
+  %         <record> GetCSI <CSI>
+  %         <record> GetCSI null
+  %     IsActive - a procedure for skipping records depending on the current device :
+  %         <record> IsActive <bool>
+  %     Also it is allowed to contain additional entries for client's needs.
+  % The OptionsDict is also used for storing some local variables.
+
+  % If a category is being redefined several times with this function,
+  % each redefinition must either use an unique map file,
+  % or the map file should be scanned by the last redefinition
+  % (and must be defined in the last one with /MapFileName).
+  % This happens so because we must accumulate all variants of
+  % methods before scanning the map. We would like to delay
+  % the scanning until all redefinitions are done, but it requires
+  % to implement a queue of "refinish" methods and execute it
+  % at very end of the prelude.
+
+  begin % OptionsDict
+  CategoryName /Category findresource /OldCategory exch def
+  OldCategory /.IsRedefinedWithMap known {
+    % Already redefined with map - don't redefine, but enhance the map.
+    OldCategory /NewCategory exch def
+  } {
+    % Redefine with a new category instance.
+    OldCategory dup length dict
+    dup /.PreprocessRecord 4 dict put
+    copy /NewCategory exch def
+  } ifelse
+
+  % Provide the 'or' logic for PreprocessRecord,
+  % to allow different record types to be mixed in a single map file.
+  % We do this with building a dictionary of PreprocessRecord procedures,
+  % which come from different calls to Redefine :
+  NewCategory /.PreprocessRecord get dup length % <<pr>> l
+  currentdict /PreprocessRecord get .growput
+
+  currentdict /MapFileName known {
+    MapFileName .libfile {
+      1 dict begin
+      /; {} def
+      mark exch cvx exec .dicttomark           % <<map>>
+      end
+      dup VerifyMap                            % <<map>>
+    } {
+      QUIET not {
+        currentdict /IsMapFileOptional .knownget not { //false } if not {
+          (Warning: the map file ) print dup =string cvs print ( was not found.) =
+        } if
+      } if
+      pop 0 dict                               % <<map>>
+    } ifelse
+  } {
+    currentdict /.map .knownget not {
+      0 dict                                   % <<map>>
+    } if
+  } ifelse
+
+  % Preprocess entries :
+  dup NewCategory /.PreprocessRecord get       % <<map>> <<map>> <<pr>>
+  3 1 roll {                                   % <<pr>> <<map>> /Name raw_record
+    //false 3 1 roll                           % <<pr>> <<map>> false /Name raw_record
+    4 index {                                  % <<pr>> <<map>> false /Name raw_record i {pr}
+      exch pop                                 % <<pr>> <<map>> false /Name raw_record {pr}
+      exec {                                   % <<pr>> <<map>> false /Name record
+        3 -1 roll pop //true 3 1 roll          % <<pr>> <<map>> true /Name record
+        exit
+      } if                                     % <<pr>> <<map>> false /Name raw_record
+    } forall
+    3 2 roll {                                 % <<pr>> <<map>> /Name record
+      2 index 3 1 roll put                     % <<pr>> <<map>>
+    } {
+      exch                                     % <<pr>> <<map>> raw_record /Name
+      (Incorrect record ) print =string cvs print ( of the map file ) print MapFileName =string cvs print (.) =
+      end % Pops OptionsDict from dstack.
+      pop pop pop                              %
+      /Redefine cvx /undefinedresource signalerror
+    } ifelse
+  } forall                                     % <<pr>> <<map>>
+  exch pop                                     % <<map>>
+
+  % Add the map :
+  OldCategory /.IsRedefinedWithMap known {     % <<map>>
+    % Just add to the old map :
+    OldCategory /.map get copy pop             %
+  } {                                          % <<map>>
+    % Store the map to both the category and OptionsDict :
+    dup NewCategory exch /.map exch put
+    /.map exch def                             %
+  } ifelse
+  OldCategory /.IsRedefinedWithMap known not {
+    % Copy old methods to OptionsDict :
+    [ /DefineResource /ResourceStatus /ResourceFileName
+      /FindResource /ResourceForAll
+    ] {
+      dup OldCategory exch get def
+    } forall
+
+    % Build new methods :
+    //MethodsToRedefine {
+      //BindWithCurrentdict exec NewCategory 3 1 roll put
+    } forall
+    CategoryName /CIDFont ne {
+      NewCategory /GetCIDSystemInfoFromMap undef
+      % This is some ugly, sorry.
+    } if
+    % Redefine the category :
+    NewCategory /.IsRedefinedWithMap //true put
+    CategoryName NewCategory /Category defineresource pop
+  } if
+  end % OptionsDict
+} bind executeonly def
+
+currentdict /PutPreprocessRecord .undef
+
+currentdict end
+/ProcSet defineresource pop
+
+setglobal .setlanguagelevel

Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_setpd.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_setpd.ps	                        (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_setpd.ps	2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,1031 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% 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.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc.,  7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA  94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% 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!
+      SETPDDEBUG { (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
+  % M. Sweet, Easy Software Products
+  %
+  % Due to the fact that it is not possible to properly implement
+  % the selection policies from a Ghostscript driver, we have changed
+  % the default policy to "7" (impose) to avoid numerous problems with
+  % printing within CUPS...
+  %
+  % If NOMEDIAATTRS is false, the set the default depending on whether
+  % PSFitPage is true. Policy 13 does best fit with page scaling up or down
+  % so it is only useful if FIXEDMEDIA is also specified, or if the set of
+  % media in the InputAttributes dictionary is the actual available choices
+  % and does not include any "range" page sizes.
+  /PageSize NOMEDIAATTRS { 7 } { //systemdict /PSFitPage known { 13 } { 0 } ifelse } ifelse
+  /PolicyNotFound 1
+  /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 populate InputAttributes with all of the known page sizes
+% followed by a dummy media type that handles pages of any size.
+% This will create some duplicates, but that only slightly slows
+% down the media selection (loop is in zmedia2.c).
+%
+% Some PostScript creators assume that slot 0 is the default media
+% size and some can't handle a non-standard 4-element array which
+% is a 'range' type page size (always put last).
+%
+% Real Devices that can only handle specific page sizes will override this.
+  /InputAttributes {
+    mark
+    % First put the device's default page size in slot 0
+    % This satifies those that have devices built with a4 as the default
+    0 mark /PageSize currentdevice /PageSize gsgetdeviceprop .dicttomark
+
+    % Only populate the other entries if we aren't FIXEDMEDIA
+    FIXEDMEDIA not {
+      statusdict /.pagetypenames get {
+        statusdict /.pagetypeprocs get
+        exch get 0 2 getinterval cvlit
+        counttomark 1 sub 2 idiv exch mark exch /PageSize exch
+        % stack: mark --dict-- --dict-- ... key mark /PageSize [x y]
+        % see note above about pagetype executable array contents.
+        .dicttomark
+      } forall
+      % If NORANGEPAGESIZE is defined, (-dNORANGEPAGESIZE), then don't add
+      % the 'match any' PageSize entry
+      systemdict /NORANGEPAGESIZE known not {
+        % Add one last entry which is the 4 element range array (non-standard)
+        counttomark 2 idiv
+          % PageSize with either dimension 0 will be detected in
+          % match_page_size, so we can allow it here
+        mark /PageSize [0 dup 16#7ffff dup] .dicttomark
+      } if
+    } if % FIXEDMEDIA false
+    .dicttomark
+  }
+  (%MediaSource) 0
+  /OutputAttributes {
+    mark 0 mark .dicttomark readonly .dicttomark
+  }
+  (%MediaDestination) 0
+  /Install {{.callinstall}} bind
+  /BeginPage {{.callbeginpage}} bind
+  /EndPage {{.callendpage}} bind
+  /Policies .defaultpolicies
+  /ImagingBBox //null		% default value
+  /UseCIEColor /.getuseciecolor load
+.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. We also have to deal specially with parameters which the device may
+% change on its own but which we *also* want to transmit to the device. Previously
+% any parameter which was 'dynamic' would not be sent to the device, making it
+% impossible to set a parameter, and later have the device change it. Currently
+% only OutputICCProfile fits this category.
+% This whole area is broken its completely the wrong way round from the way the spec says it should work.
+
+% This dictionary contains the keys we never want to set.
+/.readonlypdkeys mark
+  /.MediaSize dup		% because it changes when PageSize is set
+  /PageCount dup
+  /Colors dup
+  /BitsPerPixel dup
+  /ColorValues dup
+.dicttomark readonly def
+
+% Bonkers, but needed by our ridiculous setpagedevice implementation. There are
+% some keys (at the moment, RedValues, GreenValues and BlueValues are known) which
+% only exist in the page device dictionary under some conditions (ProcessColorModel == DeviceRGB)
+% If we change the conditions, so that these keys are no longer present in the params
+% returned by the device, sending these keys to the device can trigger a fault.
+% This is a problem because of our stored dictionary:
+%
+% 1) Set up the inital dictioanry by retrieving the params from the device
+% 2) Change the conditions (ProcessColorModel == DeviceGray)
+% 3) merge any volatile keys from the device. Note that RedValues etc no longer defined.
+% 4) Call .installpagdevice, use the stored dicitonary to set the params
+% 5) The stored RedValues etc, cause an error.
+%
+% The stored dictioanry is readonly (we use forceput to wedge new keys into it) so
+% we can't 'undef' keys from it. (the dictionary is made readonly by the action of zsetpagedevice
+% '.setpagedevice' in PostScrfipt)
+%
+% So the only solution is to have 'write only' keys. These can be written to the device
+% but are not stored in the saved page device dictionary. This means PostScript programs
+% can't interrogate and take action on these, but there's no solution to that except to
+% rewrite this stuff completely so that it actually works properly.
+
+/.writeonlykeys mark
+  /RedValues dup        % Set by the device when ProcessColorModel changes
+  /GreenValues dup      % Set by the device when ProcessColorModel changes
+  /BlueValues dup       % Set by the device when ProcessColorModel changes
+  /GrayValues dup       % Set by the device when ProcessColorModel changes
+.dicttomark readonly def
+
+% This dictionary contains the keys we always want to read back from the device.
+/.volatilepdkeys mark
+  /.MediaSize dup		% because it changes when PageSize is set
+  /RedValues dup        % Set by the device when ProcessColorModel changes
+  /GreenValues dup      % Set by the device when ProcessColorModel changes
+  /BlueValues dup       % Set by the device when ProcessColorModel changes
+  /GrayValues dup       % Set by the device when ProcessColorModel changes
+  /PageCount dup
+  /Colors dup
+  /BitsPerPixel dup
+  /ColorValues dup
+  /OutputICCProfile dup		% ColorConversionStrategy can change this
+.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 {
+      1 index /Policies eq {
+        % Merge policies from the device driver with defaults
+        2 index             % <<>> /key value <<>>
+        3 2 roll get        % <<>> value <<policies>>
+        exch {
+          2 index 2 index known {
+            pop pop
+          } {
+            2 index 3 1 roll put
+          } ifelse
+        } forall
+        pop
+      } {
+        pop pop
+      } ifelse
+    } {
+      exec 2 index 3 1 roll put
+    } ifelse
+  } forall exch .setglobal
+
+  % Remove any keys we don't want to be stored, before .setpagedevice
+  % makes the dictionary read only
+  .writeonlykeys {2 index exch undef pop} forall
+  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 //.volatilepdkeys .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 device is the distiller device, update distillerparams that
+      % may have been changed by setdistillerparams
+      /IsDistiller /GetDeviceParam .special_op {
+        exch pop
+      }{
+        //false
+      }ifelse
+      {
+          currentdistillerparams {
+              % Stack: current key value
+            2 index 2 index .knownget { 1 index ne } { //true } ifelse
+            { 2 index 3 1 roll put } { pop pop } ifelse
+          } forall
+      } if
+                % 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
+
+% M. Sweet, Easy Software Products:
+%
+% Define NOMEDIAATTRS to turn off the default (but unimplementable) media
+% selection policies for setpagedevice.  This is used by CUPS to support
+% the standard Adobe media attributes.
+NOMEDIAATTRS {
+  % Define only PageSize for input attribute matching.
+  /.inputattrkeys [
+    /PageSize
+  ] readonly def
+  % Define no other keys used in media selection.
+  /.inputselectionkeys [
+    /noInputSelectionsKeys
+  ] readonly def
+
+  % Define no keys used in output attribute matching.
+  /.outputattrkeys [
+    /noOutputAttrKeys
+  ] readonly def
+} {
+  % Define the keys used in input attribute matching.
+  /.inputattrkeys [
+    /PageSize /MediaColor /MediaWeight /MediaType /InsertSheet /ManualFeed
+          % 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
+} ifelse
+
+% 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
+  .readonlypdkeys
+      { 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 dup /PageSize eq exch /LeadingEdge eq or
+       { 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
+  /ImagingBBox //false	% This prevents the ImagingBBox value in the setpagedevice
+                        % from affecting the device's ImagingBBox parameter, but
+                        % does retain a 'shadow' copy at the PostScript level.
+                        % This is done for Adobe compatibility since Adobe does
+                        % render marks outside the ImagingBBox (and QuarkXpress
+                        % relies on it).
+.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 }
+          { //false }
+         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.
+%
+% M. Sweet, Easy Software Products:
+%
+% Define NOMEDIAATTRS to turn off the default (but unimplementable) media
+% selection policies for setpagedevice.  This is used by CUPS to support
+% the standard Adobe media attributes.
+  0 {		% Set errorinfo and signal a configurationerror.
+      NOMEDIAATTRS {
+        % NOMEDIAATTRS means that the default policy is 7...
+        pop 2 index exch 7 put
+      } {
+        pop dup 4 index exch get 2 array astore
+        $error /errorinfo 3 -1 roll put
+        cleartomark
+        /setpagedevice .systemvar /configurationerror signalerror
+      } ifelse
+  } bind
+  1 {		% Roll back the failed request to its previous status.
+SETPDDEBUG { (Rolling back.) = pstack flush } if
+        3 index 2 index 3 -1 roll .forceput
+        4 index 1 index .knownget
+         { 4 index 3 1 roll .forceput }
+         { 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
+SETPDDEBUG { (Putting.) = pstack flush } if
+   .putdeviceparamsonly
+SETPDDEBUG { (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 .systemvar /rangecheck signalerror
+   } if
+   2 array astore
+ } bind def
+
+% ---------------- setpagedevice itself ---------------- %
+
+/setpagedevice
+ {
+                % To avoid VM mismatches caused by copying subsidiary
+                % dictionaries to local VM (see WorPerfect bug in
+                % .makecurrentpagedevice) we want to make the dict
+                % returned by currentpagedevice local. However, if we
+                % run with -dSAFER we get a call to setpagedevice from
+                % .setsafe in gs_init.ps during startup. The dict returned
+                % by currentpagdevice is stored to the graphics state by
+                % .setpagedevice below, and returned by currentpagdevice.
+                % The Display PostScript code insists that the savedinitialgstate
+                % not have any pointers to local VM objects, so if we simply
+                % make the dict local then we fail in gs_dps.ps. The only
+                % solution is to make sure the VM mode is global during
+                % startup (to satisfy gs_dps.ps) and local thereafter
+                % (to satisfy the WordPerfect bug).
+   dup /..StartupGlobal known
+   {
+       currentglobal exch true setglobal
+       dup /..StartupGlobal undef
+   } {
+                % ensure that we are always in local VM mode to avoid
+                % mismatches. This is because we always create child
+                % dictionaries in local VM, regardless of the current VM state,
+                % (see .makecurrentpagdevice) and we can't store local objects
+                % in a global object, so we must ensure teh dictionary returned
+                % from currentpagedevice is in local VM.
+     currentglobal exch false setglobal
+   } ifelse
+
+   %% We used to execute endpage after .tsrysetparams, but that actually alters
+   %% the page device dictionary (in particular /PageSize) this is not correct.
+   %% Testing with Adobe Acrobat Distiller shows that EndPage is ececuted if the
+   %% page device dictionary is empty, and indeed even if setpagedevice returns
+   %% an error (caught by stopped), so it seems pretty clear that we should
+   %% run any required EndPage very early in the setpagedevice process.
+   %% Bug 690667.
+   2 .endpage
+   { 1 //true .outputpage
+     (>>setpagedevice, press <return> to continue<<\n) .confirm
+   }
+   if
+                % 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>
+SETPDDEBUG { (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>
+SETPDDEBUG { (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 unless the PageSize Policy 13 (for FitPage).
+   dup /Policies get /PageSize get 13 ne FIXEDMEDIA and 
+    { 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>
+SETPDDEBUG { (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>
+SETPDDEBUG { (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> ...
+SETPDDEBUG { (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 .systemvar exch signalerror
+       }
+      if
+    }
+   if
+
+                % The attempt succeeded.  Install the new device.
+                % Stack: mark ... <merged> <failed> <device> <eraseflag>
+SETPDDEBUG { (Installing.) = pstack flush } if
+
+    pop
+                % .setdevice clears the current page device!
+   .currentpagedevice pop exch
+   .setdevice pop
+   .setpagedevice
+
+                % Implement UseCIEColor directly if this is a LL3 system.
+                % The color substitution feature is now implemented in
+                % the interpreter, and this is used as an optimization.
+                %
+                % NB: This shoud be the only use of the .setuseciecolor
+                %     operator anywhere.
+                %
+                % Set some color space other than /DeviceGray, to insure
+                % that initgraphics will actually perform a setcolorspace
+                % operation (there is an optimization in setcolorspace
+                % that does nothing if the operand and current color
+                % spaces are the same)
+
+    /.setuseciecolor where
+      {
+        pop 1 index /UseCIEColor .knownget
+          {
+            .setuseciecolor /DeviceRGB setcolorspace
+          }
+        if
+      }
+    if
+
+                % 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
+  /HighLevelDevice /GetDeviceParam .special_op {
+    exch pop not
+  }{
+    //true
+  }ifelse
+  {
+  .setdefaulthalftone	% Set the default screen before calling Install.
+  } if
+  dup /Install .knownget {
+    { .execinstall } stopped {
+      pop % Install procedure failed. One element will have been left on the stack.
+      % stack: mark <orig> <request> <failed> <merged>
+      1 index /Install $error /errorname get put	% Put it in the "failed" dict
+      % .applypolicies needs stack: <orig> <merged> <failed>
+      exch 4 2 roll exch 4 2 roll .applypolicies exch 4 2 roll exch 4 2 roll
+      % Now execute the old Install -- failures after this are not handled
+      dup /Install .knownget { { .execinstall } stopped { pop } if } if
+      .postinstall stop
+    } {
+      .postinstall
+    } ifelse
+  } {
+    .postinstall
+  } ifelse
+  setglobal           % return to original VM allocation mode
+} 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
+% mostly restored if it fails, except for one element (the operand).
+% Thus if it fails, there will be one element left on the op stack.
+
+/.execinstall {		% <proc> .execinstall -
+  dup	% element left on the stack if the exec fails.
+
+        % 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. The 'pop' for the dummy element
+        % on the op stack suffices.
+  exec
+  pop	% See above.
+} odef
+
+/.postinstall {		% mark ... <failed> <merged> .postinstall -
+   matrix currentmatrix .setdefaultmatrix
+                % Erase and initialize the page.
+   initgraphics
+   currentoverprint //false setoverprint 1 setcolor
+   .fillpage
+   0 setcolor setoverprint
+   .beginpage
+
+                % Clean up, calling PolicyReport if needed.
+                % Stack: mark ... <failed> <merged>
+SETPDDEBUG { (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

Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_statd.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_statd.ps	                        (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_statd.ps	2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,373 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% 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.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc.,  7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA  94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% 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 91 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
+
+statusdict begin
+
+% Keep the table of named paper sizes as procedures. Reuse them later
+% as compatibility operators.
+/.pagetypeprocs 70 dict begin
+
+% 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
+
+                % Page sizes defined by Adobe documentation
+                % Note: these executable arrays should all begin with two
+                % integers which are the width and height (see gs_setpd.ps).
+ /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
+        % minimum of a4 and letter (a4 width, letter length)
+ /pa4 {595 792 //.setpagesize exec} bind def
+        % Japanese postcard size, 100mm x 148mm
+ /hagaki {283 420 //.setpagesize exec} bind def
+        % U.S. ANSI/ASME Y14.1 paper sizes
+ /ANSI_A  //letter def
+ /ANSI_B  //11x17  def
+ /tabloid //11x17  def
+ /ANSI_C {1224 1585 //.setpagesize exec} bind def
+ /ANSI_D {1585 2448 //.setpagesize exec} bind def
+ /ANSI_E {2448 3168 //.setpagesize exec} bind def
+ /ANSI_F {2016 2880 //.setpagesize exec} bind def
+%END SIZES
+currentdict end
+dup /.setpagesize .undef
+userdict begin dup { def } forall end  % reuse!
+readonly def
+
+% Define the pagetype values for the known page formats.
+% This array is now used for deterministic enumeration of .pagetypeprocs
+/.pagetypenames [ .pagetypeprocs { pop } bind forall ]
+  { .namestring exch .namestring gt } bind .sort
+  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 } 8192 string /IODevice resourceforall
+ } bind def
+ /diskstatus {10240 2097152 } bind odef %  - diskstatus <free> <total> (in 1024 byte pages)
+
+%/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.
+      {/letter /note} 1 index get
+      //systemdict /userdict get exch get cvx 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
+
+/devformat //true def
+/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

Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_std_e.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_std_e.ps	                        (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_std_e.ps	2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,72 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% 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.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc.,  7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA  94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% 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

Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_sym_e.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_sym_e.ps	                        (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_sym_e.ps	2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,82 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% 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.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc.,  7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA  94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% 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

Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_trap.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_trap.ps	                        (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_trap.ps	2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,102 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% 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.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc.,  7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA  94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% 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

Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_ttf.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_ttf.ps	                        (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_ttf.ps	2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,1987 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% 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.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc.,  7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA  94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% 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.
+
+% ---------------- Font loading machinery ---------------- %
+
+% Augment the FONTPATH machinery so it recognizes TrueType fonts.
+
+/.scanfontheaders where {
+  pop /.scanfontheaders [
+   .scanfontheaders aload pop (\000\001\000\000*) (true*) (wOFF*)
+  ] def
+} if
+
+% <file> <key> .findfontvalue <value> true
+% <file> <key> .findfontvalue false
+% Closes the file in either case.
+/.findnonttfontvalue /.findfontvalue load def
+/.findfontvalue {
+  1 index .is_woff {
+    dup /FontType eq {
+      pop closefile 42 //true
+    } {
+      dup /FontName eq { pop .findwoffname } { pop closefile //false } ifelse
+    } ifelse
+  }
+  {
+    1 index .is_ttf_or_otf {
+                  % 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
+  } ifelse
+} bind def
+
+% <file> .findttfontname <fname> true
+% <file> .findttfontname false
+% Closes the file in either case.
+/.findttfontname {
+  //true 0 .loadttfonttables
+  tabdict /name .knownget {
+    dup 8 getu32 f exch setfileposition
+    12 getu32
+    dup 65535 gt { pop 65535 } if % protect against extremely large name
+    string f exch readstring pop
+    dup
+    6 findname not {
+      4 findname	% Try FullName
+    } {
+      exch pop //true
+    }
+    ifelse
+  } {
+    //false
+  } ifelse
+  f closefile end end
+} bind def
+
+/.findwoffname {
+  //true 0 .loadwofftables
+  tabdict /name .knownget {
+    dup /clen exch 8 getu32 def
+    dup /olen exch 12 getu32 def
+    4 getu32 f exch setfileposition
+    olen dup 65535 gt { pop 65535 } if % protect against extremely large name
+    /fs
+    clen olen ne
+    {f clen () /SubFileDecode filter /FlateDecode filter}
+    {f clen () /SubFileDecode filter}
+    ifelse def
+    string fs exch readstring pop
+    fs closefile
+    dup
+    6 findname not {
+      4 findname	% Try FullName
+    } {
+      exch pop //true
+    }
+    ifelse
+  } {
+    //false
+  } ifelse
+  f closefile end end
+} bind def
+
+
+% Load a font file that might be a TrueType font.
+
+/tt_tag_dict << <00010000> 0 (true) 0 (typ1) 0 (ttcf) 0 >> readonly def
+/ttf_otf_tag_dict << <00010000> 0 (true) 0 (typ1) 0 (ttcf) 0 (OTTO) 0>> readonly def
+% The wOFF tag is immediately followed by the sfnt "flavour" so for simplicity
+% combine them
+/woff_tag_dict <<
+  (wOFF) 0
+  <774F464600010000> 0 % (wOFF)<00010000> .concatstrings
+  (wOFFtrue) 0
+  (wOFFtyp1) 0
+>> readonly def
+
+% <file> .loadfontfile -
+/.loadnonttfontfile /.loadfontfile load def
+/.loadfontfile {
+  dup (12345678) .peekstring { //woff_tag_dict exch known } { //false } ifelse
+  {
+    .loadwofffont pop
+  }
+  {
+    dup (1234) .peekstring { //tt_tag_dict exch known } { //false } ifelse {
+                  % If this is a font at all, it's a TrueType font.
+      .loadttfont pop
+    } {
+                  % Not a TrueType font.
+      .loadnonttfontfile
+    } ifelse
+  } ifelse
+} bind def
+
+% <file> .is_ttf_or_otf <bool>
+/.is_ttf_or_otf {
+    dup 0 setfileposition (1234) .peekstring { //ttf_otf_tag_dict exch known } { //false } ifelse
+} bind def
+
+/.is_woff {
+    dup 0 setfileposition (1234) .peekstring { //woff_tag_dict exch known } { //false } ifelse
+} bind def
+
+currentdict /tt_tag_dict .undef
+currentdict /ttf_otf_tag_dict .undef
+currentdict /woff_tag_dict .undef
+
+% ---------------- 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 32764 def    % half the maximum length of a PostScript string,
+                        % must be a multiple of 4 (for hmtx / loca / vmtx)
+
+/.invert_encoding   % <array> invert_encoding <dict>
+{ dup 256 dict exch
+  0 exch 1 exch length 1 sub {     % [] <> i
+    dup 3 index exch get           % [] <> i v
+    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
+  exch pop
+} bind def
+
+% Make /MacRomanEncodingForTrueType including additional
+% characters in Mac OS Roman encoding, which is missing
+% in /MacRomanEncoding. See PDF spec 1.7, p. 431 or
+% "Inside Macintosh: Text" 1-55, Figure 1-36.
+% This is useful to exploit the glyphs via Apple Roman
+% TrueType cmap subtable, but not appropriate for information
+% interchange.
+
+/MacRomanEncodingForTrueType
+  /MacRomanEncoding .findencoding
+  dup length array copy
+  <<
+        /notequal	173
+        /infinity	176
+        /lessequal	178
+        /greaterequal	179
+        /partialdiff	182
+        /summation	183
+        /product	184
+        /pi		185
+        /integral	186
+        /Omega		189
+        /radical	195
+        /approxequal	197
+        /Delta		198
+        /lozenge	215
+        /Euro		219
+        /apple		240
+  >> {
+    TTFDEBUG { (Extend MacRomanEncodingForTrueType for TrueType: ) =only } if
+
+    % check /.notdef to avoid overwriting
+    2 index 1 index get dup /.notdef eq {
+      TTFDEBUG { (insert /) =only 2 index =only ( @ ) =only 1 index //== exec } if
+      pop
+      exch 2 index 3 1 roll put
+    } {
+      TTFDEBUG { (cannot insert /) =only 2 index =only ( @ ) =only 1 index =only ( used for ) =only dup //== exec } if
+      pop
+      pop pop
+    } ifelse
+  } forall
+  aload pop
+  256 packedarray
+  5 1 index .registerencoding
+.defineencoding
+
+% Define the Macintosh standard mapping from characters to glyph indices.
+/MacRomanEncoding dup .findencoding def
+/MacGlyphEncoding dup .findencoding def
+/MacRomanEncodingForTrueType dup .findencoding def
+
+% Invert the MacRomanEncoding.
+/.romanmacdict MacRomanEncodingForTrueType .invert_encoding def
+/.latin1isodict ISOLatin1Encoding .invert_encoding def
+
+% Define remapping for misnamed glyphs in TrueType 'post' tables.
+% There are probably a lot more than this!
+/postremap mark
+  /Eoverdot /Edotaccent
+  /eoverdot /edotaccent
+.dicttomark readonly def
+
+% Array used for fast pre-filling of cmap array
+/.array1024z [ 1024 { 0 } repeat ] 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.
+
+% handle 64 bit integer objects
+/xuidstring 16#ffffffff 0 gt
+{
+  <8000000000000000>
+}
+{
+  <80000000>
+} ifelse def
+/curxuid {		% - curxuid <int>
+  .getCPSImode
+  //false .setCPSImode
+  0 xuidstring { exch 8 bitshift exch add } forall
+  % for tbe benefit of pdfwrite/ps2write we want the resulting XUID contents
+  % to fit into a 32 bit value
+  16#ffffffff 0 gt
+  {
+    16#ffffffff idiv
+  } if
+  exch .setCPSImode
+} 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|array> <index> getu16 <integer>
+/getu16a {
+  2 getinterval_from_stringarray 0 getu16
+} bind def
+
+% <string|array> <index> gets16 <integer>
+/gets16a {
+  2 getinterval_from_stringarray 0 gets16
+} bind def
+
+% <string|array> <index> getu32a <integer>
+/getu32a {
+  4 getinterval_from_stringarray 0 getu32
+} bind def
+
+% <string|array> <index> gets32a <integer>
+/gets32a {
+  4 getinterval_from_stringarray 0 gets32
+} bind def
+
+16#ffffffff 0 gt {  % 64-bit sign extension
+  { /gets32 /gets32a} {
+    mark 1 index load aload pop { 16#80000000 xor 16#80000000 sub } aload pop
+    .packtomark cvx def
+  } bind forall
+} if
+
+% <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
+
+% <nametable> <nameid> findname <string> true
+% <nametable> <nameid> findname false
+/findname {
+  TTFDEBUG { (findname: ) print dup =only  } if
+  //false 3 1 roll
+  1 index length 0 gt {	% check for zero length name table
+    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 1 index 8 getu16 0 ne and {
+                  % 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
+            3 copy add 1 index length
+            le {
+              pop
+              getinterval exch
+                  % Stack: false string record
+                  % Check for 8- vs. 16-bit characters.
+          is2byte { //true } { dup is2byte2 } ifelse { string2to1 } if //true //null 4 -1 roll exit
+            } {
+              pop pop pop pop
+              //false
+                  exit
+            } ifelse
+      } if pop
+    } for
+  } if
+  pop pop
+  TTFDEBUG {
+    dup { ( = ) print 1 index //== exec } { ( 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
+    { pop //false }		% default - *MUST* be last
+  }
+  % check for a valid Platform ID, if we don't get one, assume single byte encoding
+  dup length 1 sub
+  2 index lt {exch pop dup length 1 sub}{exch} ifelse
+  get exec
+} bind def
+
+% <string> is2byte2 <bool>
+/is2byte2 {
+  dup length
+  dup 2 mod 0 ne {
+    pop pop //false
+  } {            % s l
+    //true exch  % s b l
+    1 sub 0 exch 2 exch {
+      2 index exch get 0 ne {
+        pop //false exit
+      } if
+    } for
+    exch pop
+  } ifelse
+} 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
+
+% Each procedure in this dictionary is called as follows:
+%       <encodingtable> proc <glypharray>
+/cmapformats mark
+  0 {		% Apple standard 1-to-1 mapping.
+    6 256 getinterval_from_stringarray
+    mark 0 3 -1 roll
+    { 1 index 1 add } forall pop
+    .dicttomark
+  } 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 getu16a /cmapf2_tblen exch def
+
+    dup 4 getu16a /cmapf2_lang exch def
+
+    dup 6 256 sHK_sz mul getinterval_from_stringarray /sHKs exch def
+
+    0		% initialization value for /sH_len
+    0 1 255 {
+       sHKs exch
+       2 mul getu16a
+       1 index	% get current max
+       1 index	% get current subHeaderKey
+       lt {exch} if pop
+    } for
+    /sH_len exch def
+
+    dup 6 256 sHK_sz mul add
+    cmapf2_tblen 1 index sub getinterval_from_stringarray
+    /sH_gIA exch def
+
+    /cmapf2_glyph_array 0 dict def
+
+    /.cmapf2_putGID {
+        /cmapf2_ch cmapf2_ch_hi 8 bitshift cmapf2_ch_lo add def
+        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 getu16a
+            dup 0 gt { %
+                idDelta add
+                cmapf2_glyph_array exch cmapf2_ch exch put
+            } {
+                pop
+                % cmapf2_glyph_array cmapf2_ch 0 put
+            } ifelse
+        } {   % false: j is outside
+            % 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 getu16a
+        /sH_offset exch def
+        sH_gIA sH_offset sH_sz getinterval
+            dup 0 getu16a /firstCode exch def
+            dup 2 getu16a /entryCount exch def
+            dup 4 gets16a /idDelta exch def
+            dup 6 getu16a /idRangeOffset exch def
+        pop
+        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
+     cmapf2_glyph_array
+  } bind
+  4 {		% Microsoft/Adobe segmented mapping.
+    /etab exch def
+    /nseg2 etab 6 getu16a def
+    14 /endc etab 2 index nseg2 getinterval_from_stringarray 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_from_stringarray def
+    nseg2 add /iddelta etab 2 index nseg2 getinterval_from_stringarray def
+    nseg2 add /idroff etab 2 index nseg2 getinterval_from_stringarray def
+                % The following hack allows us to properly handle
+                % idiosyncratic fonts that start at 0xf000:
+    pop
+    /firstcode startc 0 getu16a 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 dict def
+    0 0 2 nseg2 3 sub {
+                % Stack: /glyphs numglyphs i2
+      /i2 exch def
+      /scode startc i2 getu16a def
+      /ecode endc i2 getu16a def
+
+      % Bug 693538: More undocumented nonsense: in cases where scode == ecode,
+      % see Bug 691326 below *except*, it seems when both are zero
+      scode 0 eq ecode 0 eq and not {
+        scode ecode 1 add gt {   % Bug 691326.
+          /ecode scode 1 add def % Acrobat does this contrary to TTF spec that
+        } if               % requires such intervals to be ignored.
+
+        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
+      } if
+    } for pop
+
+                % Now fill in the array.
+    /numcodes 0 def /code 0 def
+    0 2 nseg2 3 sub {
+      /i2 exch def
+      /scode startc i2 getu16a def
+      /ecode endc i2 getu16a def
+      % Bug 693538: see above
+      scode 0 eq ecode 0 eq and not {
+        scode ecode 1 add gt { /ecode scode 1 add def } if % Bug 691326. See above.
+
+        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 /code exch code exch add def
+        ecode scode sub 1 add add numcodes add /numcodes exch def
+        /delta iddelta i2 gets16a def
+        TTFDEBUG {
+          (scode=) print scode =only
+          ( ecode=) print ecode =only
+          ( delta=) print delta =only
+          ( droff=) print idroff i2 getu16 =
+        } if
+        idroff i2 getu16a 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 getu16a
+            dup 0 ne { delta add 65535 and } if putglyph
+          } for
+        } ifelse
+      } if
+    } for glyphs /glyphs //null def	% for GC
+  } bind
+  6 {		% Single interval lookup.
+    dup 6 getu16a /firstcode exch def
+    dup 8 getu16a /ng exch def
+    ng dict
+    dup
+                % Stack: tab dict dict
+                % Fill elements firstcode .. firstcode+nvalue-1 with glyph values
+    0 1 ng 1 sub {
+      dup firstcode add exch
+      2 mul 10 add 4 index exch getu16a 3 copy put pop pop
+    } for pop exch pop
+  } bind
+  12 {		% Microsoft/Adobe segmented mapping.
+    /etab exch def
+    /glyphs 0 dict def
+
+    0 1
+    etab 12 getu32a % nGroups
+    1 sub {
+      /ind exch def
+      /gid etab 12 ind mul 8 add 16 add getu32a def % startGlyphID
+      etab 12 ind mul 16 add getu32a % startCharCode
+      1
+      etab 12 ind mul 4 add 16 add getu32a % endCharCode
+      {
+        gid glyphs 3 1 roll put
+        /gid gid 1 add def
+      } for
+    } for
+    glyphs /glyphs //null def	% for GC
+  } bind
+.dicttomark readonly def                % cmapformats
+
+% <cmaptab> cmaparray <glypharray>
+/cmaparray {
+  dup 0 getu16a cmapformats exch .knownget {
+    TTFDEBUG {
+      (cmap: format ) print 1 index 0 getu16a = flush
+    } if exec
+  } {
+    (Can't handle format ) print 0 getu16a = flush
+    mark 0 1 255 { dup } for .dicttomark
+  } ifelse
+  TTFDEBUG {
+    (cmap: length=) print dup length = dup ===
+  } if
+} bind def
+
+/get_from_stringarray % <array|string> <offset> get_from_stringarray <int>
+{ 1 index type /stringtype eq {
+    get
+  } {
+    exch {                % o ()
+      2 copy length ge {
+        length sub
+      } {
+        exch get exit
+      } ifelse
+    } forall
+  } ifelse
+} bind def
+
+/getinterval_from_stringarray % <array|string> <offset> <length> getinterval_from_stringarray <string>
+{ % May allocate a string in VM.
+  2 index type /stringtype eq {
+    getinterval
+  } {
+    dup 65535 le {
+      string exch 0                                 % [] s o p
+      4 3 roll {                                    % s o p Si
+        dup length                                  % s o p Si lSi
+        dup 4 index lt {
+          3 index exch sub                          % s o p Si o'
+          exch pop 3 1 roll exch pop                % s o' p
+        } {                                         % s o p Si lSi
+          dup 3 1 roll                              % s o p lSi Si lSi
+          4 index sub                               % s o p lSi Si lSi-o
+          5 index length 4 index sub                % s o p lSi Si lSi-o ls-p
+          2 copy gt { exch } if pop                 % s o p lSi Si minl
+          dup 3 1 roll                              % s o p lSi minl Si minl
+          5 index exch getinterval                  % s o p lSi minl from
+          5 index 4 index 3 index                   % s o p lSi minl from s p minl
+          getinterval                               % s o p lSi minl from to
+          copy pop                                  % s o p lSi minl
+          exch pop add exch pop 0 exch              % s 0 p'
+          dup 3 index length ge { exit } if
+        } ifelse
+      } forall
+      pop pop                                       % s
+    } {
+      [ 4 1 roll
+        {
+          dup 0 eq {
+            pop pop pop exit
+          } if
+          3 copy
+          dup 65535 ge {
+            pop 65535
+          } if
+          getinterval_from_stringarray 4 1 roll
+          3 index length sub
+          exch
+          3 index length add
+          exch
+        } loop
+      ]
+    } ifelse
+  } ifelse
+} bind def
+
+/string_array_size  % <array|string> string_array_size <int>
+{ dup type /stringtype eq {
+    length
+  } {
+    0 exch { length add } forall
+  } ifelse
+} 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.
+    dup dup type /arraytype  eq { 0 get } if length 36 lt {
+      TTFDEBUG { (post format 2.0 invalid.) = flush } if
+      pop [ ]
+    } {
+      /postglyphs exch def
+      /post_first postglyphs dup type /arraytype eq { 0 get } if def
+      post_first 32 getu16 /numglyphs exch def
+      % Build names array in the order they occur in the 'post' table
+      /postpos numglyphs 2 mul 34 add  def
+      /total_length postglyphs //string_array_size exec def
+
+      % the number of names in a post table is not declared up front
+      % and there are fonts with more names than glyph indices <sigh>
+      % so we have to pre-process and find the highest index used.
+      % We start with a base value of numglyphs as it's most common,
+      % and we can safely have a array that's too large.
+      % Rather than parse out the indices twice, we store them in an
+      % array on the stack, which we then reuse, overwriting entries
+      % as we go later on.
+      numglyphs array numglyphs postglyphs
+      0 1 numglyphs 1 sub {
+        dup 2 mul 34 add 2 index exch 2 //getinterval_from_stringarray exec
+        dup 0 get 8 bitshift exch 1 get add
+        dup 5 index exch
+        4 -1 roll exch put
+        258 sub dup 3 index gt
+        % if we find a reference to an index higher than the value
+        % already on the stack, replace the value on the stack
+        { 3 -1 roll pop 2 1 roll} {pop} ifelse
+      } for
+      pop
+      1 add array 0 1 2 index length 1 sub {
+        postpos total_length ge {
+          % Fill the rest with .notdef
+          1 2 index length 1 sub { 1 index exch /.notdef put } for
+          exit
+        } if

@@ Diff output truncated at 1234567 characters. @@


More information about the tex-live-commits mailing list