summaryrefslogtreecommitdiff
path: root/base
diff options
context:
space:
mode:
Diffstat (limited to 'base')
-rw-r--r--base/all-arch.mak2
-rw-r--r--base/assert_.h2
-rw-r--r--base/bench.c2
-rw-r--r--base/bobbin.c2
-rw-r--r--base/bobbin.h2
-rw-r--r--base/cal.mak8
-rw-r--r--base/claptrap-impl.h2
-rw-r--r--base/claptrap-init.c4
-rw-r--r--base/claptrap-planar.c4
-rw-r--r--base/claptrap.c2
-rw-r--r--base/claptrap.h2
-rw-r--r--base/ctype_.h2
-rw-r--r--base/dirent_.h2
-rw-r--r--base/dos_.h2
-rw-r--r--base/echogs.c2
-rw-r--r--base/endianness.h17
-rw-r--r--base/errno_.h2
-rw-r--r--base/ets.c19
-rw-r--r--base/ets.h37
-rw-r--r--base/ets_tm.h37
-rw-r--r--base/expat.mak2
-rw-r--r--base/fapi_bs.mak2
-rw-r--r--base/fapi_ft.c42
-rw-r--r--base/fapibstm.c7
-rw-r--r--base/fapiufst.c253
-rw-r--r--base/fcntl_.h2
-rw-r--r--base/freetype.mak2
-rw-r--r--base/gconf.c2
-rw-r--r--base/gconf.h2
-rw-r--r--base/gdbflags.h2
-rw-r--r--base/gdebug.h2
-rw-r--r--base/gdevabuf.c63
-rw-r--r--base/gdevbbox.c2
-rw-r--r--base/gdevbbox.h2
-rw-r--r--base/gdevdbit.c2
-rw-r--r--base/gdevdcrd.c2
-rw-r--r--base/gdevdcrd.h2
-rw-r--r--base/gdevddrw.c2
-rw-r--r--base/gdevddrw.h2
-rw-r--r--base/gdevdevn.c2
-rw-r--r--base/gdevdevn.h2
-rw-r--r--base/gdevdevnprn.h2
-rw-r--r--base/gdevdflt.c9
-rw-r--r--base/gdevdgbr.c8
-rw-r--r--base/gdevdrop.c16
-rw-r--r--base/gdevdsha.c2
-rw-r--r--base/gdevemap.c2
-rw-r--r--base/gdevepo.c2
-rw-r--r--base/gdevepo.h2
-rw-r--r--base/gdevflp.c103
-rw-r--r--base/gdevflp.h2
-rw-r--r--base/gdevhit.c2
-rw-r--r--base/gdevkrnlsclass.c2
-rw-r--r--base/gdevkrnlsclass.h2
-rw-r--r--base/gdevm1.c2
-rw-r--r--base/gdevm16.c2
-rw-r--r--base/gdevm2.c2
-rw-r--r--base/gdevm24.c2
-rw-r--r--base/gdevm32.c2
-rw-r--r--base/gdevm4.c2
-rw-r--r--base/gdevm40.c2
-rw-r--r--base/gdevm48.c2
-rw-r--r--base/gdevm56.c2
-rw-r--r--base/gdevm64.c2
-rw-r--r--base/gdevm8.c2
-rw-r--r--base/gdevmem.c65
-rw-r--r--base/gdevmem.h2
-rw-r--r--base/gdevmpla.c82
-rw-r--r--base/gdevmpla.h7
-rw-r--r--base/gdevmplt.c2
-rw-r--r--base/gdevmplt.h2
-rw-r--r--base/gdevmr1.c2
-rw-r--r--base/gdevmr2n.c2
-rw-r--r--base/gdevmr8n.c2
-rw-r--r--base/gdevmrop.h2
-rw-r--r--base/gdevmrun.c2
-rw-r--r--base/gdevmrun.h2
-rw-r--r--base/gdevmx.c2
-rw-r--r--base/gdevnfwd.c29
-rw-r--r--base/gdevoflt.c2
-rw-r--r--base/gdevoflt.h2
-rw-r--r--base/gdevp14.c2921
-rw-r--r--base/gdevp14.h42
-rw-r--r--base/gdevpccm.c2
-rw-r--r--base/gdevpccm.h2
-rw-r--r--base/gdevpipe.c19
-rw-r--r--base/gdevplnx.c10
-rw-r--r--base/gdevplnx.h2
-rw-r--r--base/gdevppla.c2
-rw-r--r--base/gdevppla.h2
-rw-r--r--base/gdevprn.c87
-rw-r--r--base/gdevprn.h32
-rw-r--r--base/gdevpxat.h2
-rw-r--r--base/gdevpxen.h2
-rw-r--r--base/gdevpxop.h2
-rw-r--r--base/gdevrops.c2
-rw-r--r--base/gdevsclass.c2
-rw-r--r--base/gdevsclass.h2
-rw-r--r--base/gdevvec.c2
-rw-r--r--base/gdevvec.h2
-rw-r--r--base/gen_ordered.c31
-rw-r--r--base/gen_ordered.h2
-rw-r--r--base/genarch.c2
-rw-r--r--base/genconf.c2
-rw-r--r--base/gendev.c2
-rw-r--r--base/genht.c2
-rw-r--r--base/gp.h21
-rw-r--r--base/gp_dosfe.c2
-rw-r--r--base/gp_dosfs.c2
-rw-r--r--base/gp_dvx.c2
-rw-r--r--base/gp_getnv.c2
-rw-r--r--base/gp_mktmp.c2
-rw-r--r--base/gp_msdll.c2
-rw-r--r--base/gp_msdos.c2
-rw-r--r--base/gp_mshdl.c2
-rw-r--r--base/gp_mslib.c2
-rw-r--r--base/gp_mspol.c4
-rw-r--r--base/gp_msprn.c16
-rw-r--r--base/gp_mswin.c8
-rw-r--r--base/gp_mswin.h2
-rw-r--r--base/gp_nsync.c2
-rw-r--r--base/gp_ntfs.c2
-rw-r--r--base/gp_nxpsprn.c2
-rw-r--r--base/gp_os2.c8
-rw-r--r--base/gp_os2.h2
-rw-r--r--base/gp_os2fs.c14
-rw-r--r--base/gp_os2pr.c4
-rw-r--r--base/gp_os9.c2
-rw-r--r--base/gp_paper.c2
-rw-r--r--base/gp_psync.c2
-rw-r--r--base/gp_stdia.c2
-rw-r--r--base/gp_stdin.c2
-rw-r--r--base/gp_strdl.c2
-rw-r--r--base/gp_unifn.c2
-rw-r--r--base/gp_unifs.c16
-rw-r--r--base/gp_unix.c76
-rw-r--r--base/gp_upapr.c2
-rw-r--r--base/gp_vms.c18
-rw-r--r--base/gp_wgetv.c8
-rw-r--r--base/gp_win32.c2
-rw-r--r--base/gp_winfs.c58
-rw-r--r--base/gp_winfs2.c2
-rw-r--r--base/gp_wpapr.c2
-rw-r--r--base/gp_wsync.c2
-rw-r--r--base/gp_wutf8.c2
-rw-r--r--base/gp_wxpsprn.cpp2
-rw-r--r--base/gpcheck.h2
-rw-r--r--base/gpgetenv.h2
-rw-r--r--base/gpmisc.c159
-rw-r--r--base/gpmisc.h2
-rw-r--r--base/gpsync.h2
-rw-r--r--base/gs.mak2
-rw-r--r--base/gs_dll_call.h2
-rw-r--r--base/gs_mgl_e.h2
-rw-r--r--base/gs_mro_e.h2
-rw-r--r--base/gsalloc.c165
-rw-r--r--base/gsalloc.h19
-rw-r--r--base/gsalpha.c39
-rw-r--r--base/gsalphac.c842
-rw-r--r--base/gsalphac.h63
-rw-r--r--base/gsargs.c2
-rw-r--r--base/gsargs.h2
-rw-r--r--base/gsbitcom.c2
-rw-r--r--base/gsbitmap.h2
-rw-r--r--base/gsbitops.c2
-rw-r--r--base/gsbitops.h2
-rw-r--r--base/gsbittab.c2
-rw-r--r--base/gsbittab.h2
-rw-r--r--base/gsccode.h13
-rw-r--r--base/gsccolor.h2
-rw-r--r--base/gscdef.c2
-rw-r--r--base/gscdefs.h2
-rw-r--r--base/gscdevn.c4
-rw-r--r--base/gscdevn.h2
-rw-r--r--base/gscedata.c2
-rw-r--r--base/gscedata.h2
-rw-r--r--base/gscencs.c2
-rw-r--r--base/gscencs.h2
-rw-r--r--base/gschar.c2
-rw-r--r--base/gschar.h2
-rw-r--r--base/gschar0.c30
-rw-r--r--base/gscicach.c2
-rw-r--r--base/gscicach.h2
-rw-r--r--base/gscie.c16
-rw-r--r--base/gscie.h2
-rw-r--r--base/gsciemap.c6
-rw-r--r--base/gscindex.h2
-rw-r--r--base/gsclipsr.c2
-rw-r--r--base/gsclipsr.h2
-rw-r--r--base/gscms.h6
-rw-r--r--base/gscolor.c2
-rw-r--r--base/gscolor.h2
-rw-r--r--base/gscolor1.c2
-rw-r--r--base/gscolor1.h2
-rw-r--r--base/gscolor2.c2
-rw-r--r--base/gscolor2.h2
-rw-r--r--base/gscolor3.c2
-rw-r--r--base/gscolor3.h2
-rw-r--r--base/gscompt.h2
-rw-r--r--base/gscoord.c2
-rw-r--r--base/gscoord.h2
-rw-r--r--base/gscparam.c3
-rw-r--r--base/gscpixel.c2
-rw-r--r--base/gscpixel.h2
-rw-r--r--base/gscpm.h2
-rw-r--r--base/gscrd.c2
-rw-r--r--base/gscrd.h2
-rw-r--r--base/gscrdp.c2
-rw-r--r--base/gscrdp.h2
-rw-r--r--base/gscrypt1.c2
-rw-r--r--base/gscrypt1.h2
-rw-r--r--base/gscscie.c2
-rw-r--r--base/gscsel.h2
-rw-r--r--base/gscsepr.c10
-rw-r--r--base/gscsepr.h2
-rw-r--r--base/gscspace.c57
-rw-r--r--base/gscspace.h13
-rw-r--r--base/gscssub.c2
-rw-r--r--base/gscssub.h2
-rw-r--r--base/gsdcolor.h2
-rw-r--r--base/gsdevice.c39
-rw-r--r--base/gsdevice.h2
-rw-r--r--base/gsdevmem.c2
-rw-r--r--base/gsdll.h2
-rw-r--r--base/gsdllwin.h2
-rw-r--r--base/gsdparam.c41
-rw-r--r--base/gsdps1.c2
-rw-r--r--base/gsdsrc.c2
-rw-r--r--base/gsdsrc.h2
-rw-r--r--base/gsequivc.c10
-rw-r--r--base/gsequivc.h2
-rw-r--r--base/gserrors.h8
-rw-r--r--base/gsexit.h2
-rw-r--r--base/gsfcid.c2
-rw-r--r--base/gsfcid2.c2
-rw-r--r--base/gsfcmap.c15
-rw-r--r--base/gsfcmap.h2
-rw-r--r--base/gsfcmap1.c13
-rw-r--r--base/gsflip.c2
-rw-r--r--base/gsflip.h2
-rw-r--r--base/gsfname.c5
-rw-r--r--base/gsfname.h2
-rw-r--r--base/gsfont.c26
-rw-r--r--base/gsfont.h2
-rw-r--r--base/gsfont0.c2
-rw-r--r--base/gsfont0c.c2
-rw-r--r--base/gsform1.h2
-rw-r--r--base/gsftopts.h2
-rw-r--r--base/gsfunc.c4
-rw-r--r--base/gsfunc.h2
-rw-r--r--base/gsfunc0.c10
-rw-r--r--base/gsfunc0.h2
-rw-r--r--base/gsfunc3.c2
-rw-r--r--base/gsfunc3.h2
-rw-r--r--base/gsfunc4.c2
-rw-r--r--base/gsfunc4.h2
-rw-r--r--base/gsgc.h2
-rw-r--r--base/gsgcache.c2
-rw-r--r--base/gsgcache.h2
-rw-r--r--base/gsgdata.c2
-rw-r--r--base/gsgdata.h2
-rw-r--r--base/gsgstate.c20
-rw-r--r--base/gsgstate.h2
-rw-r--r--base/gshsb.c2
-rw-r--r--base/gshsb.h2
-rw-r--r--base/gsht.c8
-rw-r--r--base/gsht.h2
-rw-r--r--base/gsht1.c2
-rw-r--r--base/gsht1.h2
-rw-r--r--base/gshtscr.c12
-rw-r--r--base/gshtx.c2
-rw-r--r--base/gshtx.h2
-rw-r--r--base/gsicc.c18
-rw-r--r--base/gsicc.h2
-rw-r--r--base/gsicc_cache.c81
-rw-r--r--base/gsicc_cache.h2
-rw-r--r--base/gsicc_cms.h2
-rw-r--r--base/gsicc_create.c14
-rw-r--r--base/gsicc_create.h2
-rw-r--r--base/gsicc_lcms2.c2
-rw-r--r--base/gsicc_lcms2mt.c2
-rw-r--r--base/gsicc_manage.c80
-rw-r--r--base/gsicc_manage.h2
-rw-r--r--base/gsicc_monitorcm.c4
-rw-r--r--base/gsicc_nocm.c2
-rw-r--r--base/gsicc_profilecache.c14
-rw-r--r--base/gsicc_profilecache.h2
-rw-r--r--base/gsicc_replacecm.c2
-rw-r--r--base/gsimage.c18
-rw-r--r--base/gsimage.h2
-rw-r--r--base/gsimpath.c2
-rw-r--r--base/gsinit.c2
-rw-r--r--base/gsio.h2
-rw-r--r--base/gsiodev.c6
-rw-r--r--base/gsiodevs.c2
-rw-r--r--base/gsiodisk.c2
-rw-r--r--base/gsioram.c2
-rw-r--r--base/gsiorom.c39
-rw-r--r--base/gsiorom.h2
-rw-r--r--base/gsipar3x.h2
-rw-r--r--base/gsiparam.h2
-rw-r--r--base/gsiparm3.h2
-rw-r--r--base/gsiparm4.h2
-rw-r--r--base/gsjconf.h2
-rw-r--r--base/gsjmorec.h2
-rw-r--r--base/gslib.c14
-rw-r--r--base/gslib.h2
-rw-r--r--base/gslibctx.c238
-rw-r--r--base/gslibctx.h66
-rw-r--r--base/gsline.c2
-rw-r--r--base/gsline.h2
-rw-r--r--base/gslparam.h2
-rw-r--r--base/gsmalloc.c41
-rw-r--r--base/gsmalloc.h2
-rw-r--r--base/gsmatrix.c2
-rw-r--r--base/gsmatrix.h2
-rw-r--r--base/gsmchunk.c38
-rw-r--r--base/gsmchunk.h2
-rw-r--r--base/gsmd5.c2
-rw-r--r--base/gsmd5.h2
-rw-r--r--base/gsmdebug.h2
-rw-r--r--base/gsmemory.c33
-rw-r--r--base/gsmemory.h2
-rw-r--r--base/gsmemraw.h2
-rw-r--r--base/gsmemret.c2
-rw-r--r--base/gsmemret.h2
-rw-r--r--base/gsmisc.c31
-rw-r--r--base/gsnamecl.c2
-rw-r--r--base/gsnamecl.h2
-rw-r--r--base/gsncdummy.c6
-rw-r--r--base/gsncdummy.h2
-rw-r--r--base/gsnogc.c2
-rw-r--r--base/gsnogc.h2
-rw-r--r--base/gsnotify.c2
-rw-r--r--base/gsnotify.h2
-rw-r--r--base/gsovrc.c2
-rw-r--r--base/gsovrc.h2
-rw-r--r--base/gspaint.c64
-rw-r--r--base/gspaint.h2
-rw-r--r--base/gsparam.c148
-rw-r--r--base/gsparam.h41
-rw-r--r--base/gsparam2.c10
-rw-r--r--base/gsparaml.c1048
-rw-r--r--base/gsparams.c6
-rw-r--r--base/gsparams.h2
-rw-r--r--base/gsparamx.c2
-rw-r--r--base/gsparamx.h2
-rw-r--r--base/gspath.c2
-rw-r--r--base/gspath.h2
-rw-r--r--base/gspath1.c2
-rw-r--r--base/gspath2.h2
-rw-r--r--base/gspcolor.c8
-rw-r--r--base/gspcolor.h17
-rw-r--r--base/gspenum.h2
-rw-r--r--base/gspmdrv.c2
-rw-r--r--base/gspmdrv.h2
-rw-r--r--base/gspmdrv.rc4
-rw-r--r--base/gsptype1.c78
-rw-r--r--base/gsptype1.h3
-rw-r--r--base/gsptype2.c2
-rw-r--r--base/gsptype2.h2
-rw-r--r--base/gsrect.h2
-rw-r--r--base/gsrefct.h4
-rw-r--r--base/gsromfs0.c2
-rw-r--r--base/gsrop.c2
-rw-r--r--base/gsrop.h2
-rw-r--r--base/gsroprun.c6
-rw-r--r--base/gsroprun1.h2
-rw-r--r--base/gsroprun24.h2
-rw-r--r--base/gsroprun8.h2
-rw-r--r--base/gsropt.h2
-rw-r--r--base/gsroptab.c2
-rw-r--r--base/gsserial.c2
-rw-r--r--base/gsserial.h2
-rw-r--r--base/gsshade.c2
-rw-r--r--base/gsshade.h2
-rw-r--r--base/gssprintf.h2
-rw-r--r--base/gsstate.c100
-rw-r--r--base/gsstate.h2
-rw-r--r--base/gsstrl.h2
-rw-r--r--base/gsstrtok.h2
-rw-r--r--base/gsstruct.h6
-rw-r--r--base/gsstype.h2
-rw-r--r--base/gstext.c6
-rw-r--r--base/gstext.h2
-rw-r--r--base/gstiffio.c48
-rw-r--r--base/gstiffio.h2
-rw-r--r--base/gstparam.h10
-rw-r--r--base/gstrans.c117
-rw-r--r--base/gstrans.h24
-rw-r--r--base/gstrap.c2
-rw-r--r--base/gstrap.h2
-rw-r--r--base/gstype1.c14
-rw-r--r--base/gstype1.h2
-rw-r--r--base/gstype2.c18
-rw-r--r--base/gstype42.c34
-rw-r--r--base/gstypes.h2
-rw-r--r--base/gsuid.h2
-rw-r--r--base/gsutil.c2
-rw-r--r--base/gsutil.h2
-rw-r--r--base/gswin.rc2
-rw-r--r--base/gsxfont.h2
-rw-r--r--base/gx.h2
-rw-r--r--base/gxacpath.c30
-rw-r--r--base/gxalloc.h16
-rw-r--r--base/gxalpha.h2
-rw-r--r--base/gxarith.h2
-rw-r--r--base/gxband.h2
-rw-r--r--base/gxbcache.c11
-rw-r--r--base/gxbcache.h2
-rw-r--r--base/gxbitfmt.h2
-rw-r--r--base/gxbitmap.h2
-rw-r--r--base/gxbitops.h2
-rw-r--r--base/gxblend.c262
-rw-r--r--base/gxblend.h6
-rw-r--r--base/gxblend1.c271
-rw-r--r--base/gxccache.c27
-rw-r--r--base/gxccman.c38
-rw-r--r--base/gxcdevn.h2
-rw-r--r--base/gxchar.c2
-rw-r--r--base/gxchar.h2
-rw-r--r--base/gxchrout.c2
-rw-r--r--base/gxchrout.h2
-rw-r--r--base/gxcht.c2
-rw-r--r--base/gxcid.h2
-rw-r--r--base/gxcie.h2
-rw-r--r--base/gxcindex.h2
-rw-r--r--base/gxclbits.c5
-rw-r--r--base/gxcldev.h2
-rw-r--r--base/gxclfile.c2
-rw-r--r--base/gxclimag.c54
-rw-r--r--base/gxclio.h2
-rw-r--r--base/gxclip.c2
-rw-r--r--base/gxclip.h2
-rw-r--r--base/gxclip2.c4
-rw-r--r--base/gxclip2.h2
-rw-r--r--base/gxclipm.c4
-rw-r--r--base/gxclipm.h2
-rw-r--r--base/gxclipsr.h2
-rw-r--r--base/gxclist.c64
-rw-r--r--base/gxclist.h58
-rw-r--r--base/gxcllzw.c2
-rw-r--r--base/gxclmem.c10
-rw-r--r--base/gxclmem.h2
-rw-r--r--base/gxclpage.c2
-rw-r--r--base/gxclpage.h2
-rw-r--r--base/gxclpath.c52
-rw-r--r--base/gxclpath.h8
-rw-r--r--base/gxclrast.c96
-rw-r--r--base/gxclread.c8
-rw-r--r--base/gxclrect.c11
-rw-r--r--base/gxclthrd.c30
-rw-r--r--base/gxclthrd.h2
-rw-r--r--base/gxclutil.c28
-rw-r--r--base/gxclzlib.c2
-rw-r--r--base/gxcmap.c52
-rw-r--r--base/gxcmap.h2
-rw-r--r--base/gxcolor2.h2
-rw-r--r--base/gxcomp.h2
-rw-r--r--base/gxcoord.h2
-rw-r--r--base/gxcpath.c20
-rw-r--r--base/gxcpath.h4
-rw-r--r--base/gxcspace.h2
-rw-r--r--base/gxctable.c2
-rw-r--r--base/gxctable.h2
-rw-r--r--base/gxcvalue.h2
-rw-r--r--base/gxdcconv.c2
-rw-r--r--base/gxdcconv.h2
-rw-r--r--base/gxdcolor.c2
-rw-r--r--base/gxdcolor.h2
-rw-r--r--base/gxdda.h2
-rw-r--r--base/gxdevbuf.h2
-rw-r--r--base/gxdevcli.h26
-rw-r--r--base/gxdevice.h2
-rw-r--r--base/gxdevmem.h10
-rw-r--r--base/gxdevndi.c2
-rw-r--r--base/gxdevrop.h2
-rw-r--r--base/gxdevsop.h25
-rw-r--r--base/gxdht.h2
-rw-r--r--base/gxdhtres.h2
-rw-r--r--base/gxdhtserial.c2
-rw-r--r--base/gxdhtserial.h2
-rw-r--r--base/gxdither.h2
-rw-r--r--base/gxdownscale.c937
-rw-r--r--base/gxdownscale.h245
-rw-r--r--base/gxdtfill.h2
-rw-r--r--base/gxfapi.c8
-rw-r--r--base/gxfapi.h64
-rw-r--r--base/gxfapiu.c2
-rw-r--r--base/gxfapiu.h2
-rw-r--r--base/gxfarith.h2
-rw-r--r--base/gxfcache.h2
-rw-r--r--base/gxfcid.h2
-rw-r--r--base/gxfcmap.h2
-rw-r--r--base/gxfcmap1.h2
-rw-r--r--base/gxfill.c38
-rw-r--r--base/gxfill.h2
-rw-r--r--base/gxfillsl.h6
-rw-r--r--base/gxfilltr.h2
-rw-r--r--base/gxfillts.h2
-rw-r--r--base/gxfixed.h2
-rw-r--r--base/gxfmap.h2
-rw-r--r--base/gxfont.h2
-rw-r--r--base/gxfont0.h2
-rw-r--r--base/gxfont0c.h2
-rw-r--r--base/gxfont1.h2
-rw-r--r--base/gxfont42.h4
-rw-r--r--base/gxfrac.h2
-rw-r--r--base/gxftype.h2
-rw-r--r--base/gxfunc.h2
-rw-r--r--base/gxgetbit.h2
-rw-r--r--base/gxgstate.h25
-rw-r--r--base/gxhintn.c6
-rw-r--r--base/gxhintn.h2
-rw-r--r--base/gxhintn1.c2
-rw-r--r--base/gxhldevc.c2
-rw-r--r--base/gxhldevc.h2
-rw-r--r--base/gxht.c6
-rw-r--r--base/gxht.h4
-rw-r--r--base/gxht_thresh.c6
-rw-r--r--base/gxht_thresh.h2
-rw-r--r--base/gxhtbit.c4
-rw-r--r--base/gxhttile.h2
-rw-r--r--base/gxhttype.h2
-rw-r--r--base/gxi12bit.c10
-rw-r--r--base/gxi16bit.c2
-rw-r--r--base/gxiclass.h2
-rw-r--r--base/gxicolor.c14
-rw-r--r--base/gxidata.c4
-rw-r--r--base/gxifast.c2
-rw-r--r--base/gximag3x.c2
-rw-r--r--base/gximag3x.h2
-rw-r--r--base/gximage.c2
-rw-r--r--base/gximage.h2
-rw-r--r--base/gximage1.c2
-rw-r--r--base/gximage3.c2
-rw-r--r--base/gximage3.h2
-rw-r--r--base/gximage4.c2
-rw-r--r--base/gximask.c2
-rw-r--r--base/gximask.h2
-rw-r--r--base/gximdecode.c2
-rw-r--r--base/gximdecode.h5
-rw-r--r--base/gximono.c8
-rw-r--r--base/gxiodev.h9
-rw-r--r--base/gxiparam.h2
-rw-r--r--base/gxipixel.c4
-rw-r--r--base/gxiscale.c18
-rw-r--r--base/gxline.h2
-rw-r--r--base/gxlum.h2
-rw-r--r--base/gxmatrix.h2
-rw-r--r--base/gxmclip.c2
-rw-r--r--base/gxmclip.h2
-rw-r--r--base/gxobj.h2
-rw-r--r--base/gxoprect.c2
-rw-r--r--base/gxoprect.h2
-rw-r--r--base/gxp1fill.c2
-rw-r--r--base/gxp1impl.h2
-rw-r--r--base/gxpaint.c2
-rw-r--r--base/gxpaint.h2
-rw-r--r--base/gxpath.c52
-rw-r--r--base/gxpath.h2
-rw-r--r--base/gxpath2.c2
-rw-r--r--base/gxpcache.h6
-rw-r--r--base/gxpcmap.c48
-rw-r--r--base/gxpcolor.h8
-rw-r--r--base/gxpcopy.c2
-rw-r--r--base/gxpdash.c2
-rw-r--r--base/gxpflat.c2
-rw-r--r--base/gxrplane.h2
-rw-r--r--base/gxsample.c2
-rw-r--r--base/gxsample.h2
-rw-r--r--base/gxsamplp.h2
-rw-r--r--base/gxscanc.c2
-rw-r--r--base/gxscanc.h2
-rw-r--r--base/gxshade.c34
-rw-r--r--base/gxshade.h2
-rw-r--r--base/gxshade1.c2
-rw-r--r--base/gxshade4.c6
-rw-r--r--base/gxshade4.h2
-rw-r--r--base/gxshade6.c4
-rw-r--r--base/gxstate.h4
-rw-r--r--base/gxstdio.h2
-rw-r--r--base/gxstroke.c582
-rw-r--r--base/gxsync.c2
-rw-r--r--base/gxsync.h2
-rw-r--r--base/gxtext.h2
-rw-r--r--base/gxtmap.h2
-rw-r--r--base/gxttf.h2
-rw-r--r--base/gxttfb.c2
-rw-r--r--base/gxttfb.h2
-rw-r--r--base/gxtype1.c2
-rw-r--r--base/gxtype1.h2
-rw-r--r--base/gxxfont.h2
-rw-r--r--base/gzacpath.h2
-rw-r--r--base/gzcpath.h2
-rw-r--r--base/gzht.h2
-rw-r--r--base/gzline.h2
-rw-r--r--base/gzpath.h2
-rw-r--r--base/gzspotan.c2
-rw-r--r--base/gzspotan.h2
-rw-r--r--base/gzstate.h2
-rw-r--r--base/ijs.mak2
-rwxr-xr-xbase/instcopy2
-rw-r--r--base/jbig2.mak2
-rw-r--r--base/jerror_.h2
-rw-r--r--base/jmemcust.c2
-rw-r--r--base/jmemcust.h2
-rw-r--r--base/jpeg.mak70
-rw-r--r--base/jpegxr.mak2
-rw-r--r--base/lcms2.mak2
-rw-r--r--base/lcms2mt.mak4
-rw-r--r--base/lcups.mak2
-rw-r--r--base/lcupsi.mak2
-rw-r--r--base/ldf_jb2.mak2
-rw-r--r--base/leptonica.mak644
-rw-r--r--base/lib.mak7347
-rw-r--r--base/locale_.h2
-rw-r--r--base/lwf_jp2.mak2
-rw-r--r--base/malloc_.h28
-rw-r--r--base/math_.h2
-rw-r--r--base/memento.c2
-rw-r--r--base/memento.h2
-rw-r--r--base/memory_.h81
-rw-r--r--base/mkromfs.c28
-rw-r--r--base/msvccmd.mak3
-rw-r--r--base/msvclib.mak31
-rw-r--r--base/msvctail.mak2
-rw-r--r--base/ocr.mak46
-rw-r--r--base/openjpeg.mak2
-rw-r--r--base/openvms.mak2
-rw-r--r--base/openvms.mmk2
-rw-r--r--base/pack_ps.c2
-rw-r--r--base/pcwin.mak2
-rw-r--r--base/pipe_.h2
-rw-r--r--base/png.mak2
-rw-r--r--base/png_.h2
-rw-r--r--base/ramfs.c2
-rw-r--r--base/ramfs.h2
-rw-r--r--base/sa85d.c2
-rw-r--r--base/sa85d.h11
-rw-r--r--base/sa85x.h2
-rw-r--r--base/saes.c2
-rw-r--r--base/saes.h2
-rw-r--r--base/sarc4.c2
-rw-r--r--base/sarc4.h2
-rw-r--r--base/sbcp.c2
-rw-r--r--base/sbcp.h2
-rw-r--r--base/sbtx.h2
-rw-r--r--base/scanchar.h2
-rw-r--r--base/scantab.c2
-rw-r--r--base/scf.h2
-rw-r--r--base/scfd.c6
-rw-r--r--base/scfdgen.c2
-rw-r--r--base/scfdtab.c2
-rw-r--r--base/scfe.c15
-rw-r--r--base/scfetab.c2
-rw-r--r--base/scfparam.c2
-rw-r--r--base/scfx.h2
-rw-r--r--base/scommon.h2
-rw-r--r--base/sdcparam.c2
-rw-r--r--base/sdcparam.h2
-rw-r--r--base/sdct.h2
-rw-r--r--base/sdctc.c2
-rw-r--r--base/sdctd.c2
-rw-r--r--base/sdcte.c2
-rw-r--r--base/sddparam.c2
-rw-r--r--base/sdeparam.c2
-rw-r--r--base/seexec.c4
-rw-r--r--base/setjmp_.h2
-rw-r--r--base/sfilter.h2
-rw-r--r--base/sfilter1.c2
-rw-r--r--base/sfilter2.c2
-rw-r--r--base/sfxboth.c2
-rw-r--r--base/sfxcommon.c2
-rw-r--r--base/sfxfd.c18
-rw-r--r--base/sfxstdio.c6
-rw-r--r--base/shc.c2
-rw-r--r--base/shc.h2
-rw-r--r--base/sidscale.c8
-rw-r--r--base/sidscale.h2
-rw-r--r--base/siinterp.c2
-rw-r--r--base/siinterp.h2
-rw-r--r--base/simscale.c8402
-rw-r--r--base/simscale.h8
-rw-r--r--base/simscale_foo.c2507
-rw-r--r--base/simscale_foo.h (renamed from base/gsalpha.h)22
-rw-r--r--base/siscale.c6
-rw-r--r--base/siscale.h2
-rw-r--r--base/siscale_cal.c2
-rw-r--r--base/sisparam.h2
-rw-r--r--base/sjbig2.c18
-rw-r--r--base/sjbig2.h4
-rw-r--r--base/sjbig2_luratech.c2
-rw-r--r--base/sjbig2_luratech.h2
-rw-r--r--base/sjpeg.h2
-rw-r--r--base/sjpegc.c2
-rw-r--r--base/sjpegd.c2
-rw-r--r--base/sjpege.c2
-rw-r--r--base/sjpx_luratech.c2
-rw-r--r--base/sjpx_luratech.h2
-rw-r--r--base/sjpx_none.c2
-rw-r--r--base/sjpx_openjpeg.c17
-rw-r--r--base/sjpx_openjpeg.h2
-rw-r--r--base/slzwc.c2
-rw-r--r--base/slzwd.c2
-rw-r--r--base/slzwe.c2
-rw-r--r--base/slzwx.h2
-rw-r--r--base/smd5.c2
-rw-r--r--base/smd5.h2
-rw-r--r--base/smtf.h2
-rw-r--r--base/spdiff.c2
-rw-r--r--base/spdiffx.h2
-rw-r--r--base/spngp.c2
-rw-r--r--base/spngpx.h2
-rw-r--r--base/spprint.c72
-rw-r--r--base/spprint.h14
-rw-r--r--base/spsdf.c10
-rw-r--r--base/spsdf.h2
-rw-r--r--base/srdline.h2
-rw-r--r--base/srld.c2
-rw-r--r--base/srle.c2
-rw-r--r--base/srlx.h2
-rw-r--r--base/ssha2.c2
-rw-r--r--base/ssha2.h2
-rw-r--r--base/sstring.c2
-rw-r--r--base/sstring.h2
-rw-r--r--base/stat_.h2
-rw-r--r--base/std.h3
-rw-r--r--base/stdint_.h18
-rw-r--r--base/stdio_.h2
-rw-r--r--base/stdpre.h22
-rw-r--r--base/stream.c36
-rw-r--r--base/stream.h4
-rw-r--r--base/strimpl.h2
-rw-r--r--base/string_.h2
-rw-r--r--base/strmio.c4
-rw-r--r--base/strmio.h2
-rw-r--r--base/stub.mak2
-rw-r--r--base/szlibc.c4
-rw-r--r--base/szlibd.c2
-rw-r--r--base/szlibe.c2
-rw-r--r--base/szlibx.h2
-rw-r--r--base/szlibxx.h2
-rw-r--r--base/tess_version.h30
-rw-r--r--base/tesseract.mak1173
-rw-r--r--base/tessocr.cpp443
-rw-r--r--base/tessocr.h45
-rw-r--r--base/tiff.mak116
-rw-r--r--base/time_.h2
-rw-r--r--base/ttcalc.c2
-rw-r--r--base/ttcalc.h2
-rw-r--r--base/ttcommon.h2
-rw-r--r--base/ttconf.h2
-rw-r--r--base/ttconfig.h2
-rw-r--r--base/ttfinp.c2
-rw-r--r--base/ttfinp.h2
-rw-r--r--base/ttfmain.c11
-rw-r--r--base/ttfmemd.c2
-rw-r--r--base/ttfmemd.h2
-rw-r--r--base/ttfoutl.h2
-rw-r--r--base/ttfsfnt.h2
-rw-r--r--base/ttinterp.c2
-rw-r--r--base/ttinterp.h2
-rw-r--r--base/ttload.c2
-rw-r--r--base/ttload.h2
-rw-r--r--base/ttmisc.h2
-rw-r--r--base/ttobjs.c2
-rw-r--r--base/ttobjs.h2
-rw-r--r--base/tttables.h2
-rw-r--r--base/tttype.h2
-rw-r--r--base/tttypes.h2
-rw-r--r--base/ugcclib.mak2
-rw-r--r--base/unistd_.h2
-rw-r--r--base/unix-aux.mak2
-rw-r--r--base/unix-dll.mak2
-rw-r--r--base/unix-end.mak2
-rw-r--r--base/unix-gcc.mak7
-rw-r--r--base/unixansi.mak2
-rw-r--r--base/unixhead.mak2
-rw-r--r--base/unixinst.mak2
-rw-r--r--base/unixlink.mak2
-rw-r--r--base/valgrind.h2
-rw-r--r--base/version.mak15
-rw-r--r--base/vms_x_fix.h2
-rw-r--r--base/vmsmath.h2
-rw-r--r--base/windows_.h2
-rw-r--r--base/winlib.mak13
-rw-r--r--base/winplat.mak2
-rw-r--r--base/winrtsup.cpp2
-rw-r--r--base/winrtsup.h2
-rw-r--r--base/wrfont.c2
-rw-r--r--base/wrfont.h2
-rw-r--r--base/write_t1.c662
-rw-r--r--base/write_t1.h2
-rw-r--r--base/write_t2.c209
-rw-r--r--base/write_t2.h2
-rw-r--r--base/x_.h2
-rw-r--r--base/zlib.mak2
798 files changed, 17453 insertions, 17779 deletions
diff --git a/base/all-arch.mak b/base/all-arch.mak
index 4263d01b..cb9b56b5 100644
--- a/base/all-arch.mak
+++ b/base/all-arch.mak
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2019 Artifex Software, Inc.
+# Copyright (C) 2001-2020 Artifex Software, Inc.
# All Rights Reserved.
#
# This software is provided AS-IS with no warranty, either express or
diff --git a/base/assert_.h b/base/assert_.h
index a00007f9..6be404ed 100644
--- a/base/assert_.h
+++ b/base/assert_.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/bench.c b/base/bench.c
index 170c8d9b..6ff8aca9 100644
--- a/base/bench.c
+++ b/base/bench.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/bobbin.c b/base/bobbin.c
index 2994bd46..63720f3e 100644
--- a/base/bobbin.c
+++ b/base/bobbin.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2016-2018 Artifex Software, Inc.
+/* Copyright (C) 2016-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/bobbin.h b/base/bobbin.h
index 01863c5a..04c6d9aa 100644
--- a/base/bobbin.h
+++ b/base/bobbin.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2016-2018 Artifex Software, Inc.
+/* Copyright (C) 2016-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/cal.mak b/base/cal.mak
index 2e18077b..8a718a29 100644
--- a/base/cal.mak
+++ b/base/cal.mak
@@ -56,6 +56,8 @@ cal_OBJS = \
$(CAL_OBJ)$(CAL_PREFIX)blendavx2.$(OBJ) \
$(CAL_OBJ)$(CAL_PREFIX)blendsse42.$(OBJ)\
$(CAL_OBJ)$(CAL_PREFIX)blend.$(OBJ) \
+ $(CAL_OBJ)$(CAL_PREFIX)skew.$(OBJ) \
+ $(CAL_OBJ)$(CAL_PREFIX)deskew.$(OBJ) \
$(CAL_OBJ)$(CAL_PREFIX)cmsavx2.$(OBJ) \
$(CAL_OBJ)$(CAL_PREFIX)cmssse42.$(OBJ) \
$(CAL_OBJ)$(CAL_PREFIX)cmsneon.$(OBJ) \
@@ -121,6 +123,12 @@ $(CAL_OBJ)$(CAL_PREFIX)blendsse42.$(OBJ) : $(CAL_SRC)blendsse42.c $(cal_HDRS) $(
$(CAL_OBJ)$(CAL_PREFIX)blend.$(OBJ) : $(CAL_SRC)blend.c $(cal_HDRS) $(CAL_DEP) $(gsmemory_h)
$(CAL_CC) $(I_)$(GLSRC) $(CAL_O)blend.$(OBJ) $(C_) $(CAL_SRC)blend.c
+$(CAL_OBJ)$(CAL_PREFIX)skew.$(OBJ) : $(CAL_SRC)skew.c $(cal_HDRS) $(CAL_DEP) $(gsmemory_h)
+ $(CAL_CC) $(CAL_SSE4_2_CFLAGS) $(I_)$(GLSRC) $(CAL_O)skew.$(OBJ) $(C_) $(CAL_SRC)skew.c
+
+$(CAL_OBJ)$(CAL_PREFIX)deskew.$(OBJ) : $(CAL_SRC)deskew.c $(cal_HDRS) $(CAL_DEP) $(gsmemory_h)
+ $(CAL_CC) $(CAL_SSE4_2_CFLAGS) $(CAL_NEON_CFLAGS) $(I_)$(GLSRC) $(CAL_O)deskew.$(OBJ) $(C_) $(CAL_SRC)deskew.c
+
cal_ets_h=$(CAL_SRC)cal_ets.h
ca_ets_tm_h=$(CAL_SRC)cal_ets_tm.h
$(GLOBJ)ets_1.$(OBJ) : $(CAL_SRC)cal_ets.c $(CAL_SRC)ets_template.c \
diff --git a/base/claptrap-impl.h b/base/claptrap-impl.h
index dc9cca30..f758d5e0 100644
--- a/base/claptrap-impl.h
+++ b/base/claptrap-impl.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/claptrap-init.c b/base/claptrap-init.c
index f32e2712..3e20d3ed 100644
--- a/base/claptrap-init.c
+++ b/base/claptrap-init.c
@@ -45,8 +45,8 @@ ClapTrap *ClapTrap_Init(gs_memory_t *mem,
ct->y = 0;
ct->span = width * num_comps;
- ct->linebuf = gs_alloc_bytes(mem, ct->span * ct->lines_in_buf, "ClapTrap linebuf");
- ct->process = gs_alloc_bytes(mem, ct->width * ct->lines_in_buf, "ClapTrap process");
+ ct->linebuf = gs_alloc_bytes(mem, (size_t)ct->span * ct->lines_in_buf, "ClapTrap linebuf");
+ ct->process = gs_alloc_bytes(mem, (size_t)ct->width * ct->lines_in_buf, "ClapTrap process");
if (ct->linebuf == NULL || ct->process == NULL)
{
gs_free_object(mem, ct->linebuf, "ClapTrap linebuf");
diff --git a/base/claptrap-planar.c b/base/claptrap-planar.c
index 9b06b184..e77233ae 100644
--- a/base/claptrap-planar.c
+++ b/base/claptrap-planar.c
@@ -44,7 +44,7 @@ inline static void process_at_pixel(ClapTrap * gs_restrict ct,
int width = ct->width;
int height = ct->height;
#ifndef NDEBUG
- int num_comp_lim = ct->num_comps;
+ int num_comp_lim = ct->num_comps-1;
#endif
int max_x_offset = ct->max_x_offset;
int max_y_offset = ct->max_y_offset;
@@ -152,7 +152,7 @@ int ClapTrap_GetLinePlanar(ClapTrap * gs_restrict ct,
int x;
int line_offset;
unsigned char *process;
- int num_comp_lim = ct->num_comps;
+ int num_comp_lim = ct->num_comps-1;
/* Read in as many lines as we need */
max_y = ct->y + ct->max_y_offset;
diff --git a/base/claptrap.c b/base/claptrap.c
index 1ca57370..5829f09e 100644
--- a/base/claptrap.c
+++ b/base/claptrap.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2018 Artifex Software, Inc.
+/* Copyright (C) 2015-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/claptrap.h b/base/claptrap.h
index 64902fee..2b28c04f 100644
--- a/base/claptrap.h
+++ b/base/claptrap.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2015-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/ctype_.h b/base/ctype_.h
index 0123c6b9..32e8f9a6 100644
--- a/base/ctype_.h
+++ b/base/ctype_.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/dirent_.h b/base/dirent_.h
index dc1e8b40..6eae53d2 100644
--- a/base/dirent_.h
+++ b/base/dirent_.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/dos_.h b/base/dos_.h
index ffc8b05e..29f92aa5 100644
--- a/base/dos_.h
+++ b/base/dos_.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/echogs.c b/base/echogs.c
index ae68402c..b8e93d9f 100644
--- a/base/echogs.c
+++ b/base/echogs.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/endianness.h b/base/endianness.h
new file mode 100644
index 00000000..a609e622
--- /dev/null
+++ b/base/endianness.h
@@ -0,0 +1,17 @@
+#ifndef LEPTONICA_ENDIANNESS_H
+#define LEPTONICA_ENDIANNESS_H
+
+#include "arch.h"
+
+#if ARCH_IS_BIG_ENDIAN
+#define L_BIG_ENDIAN
+#endif
+
+#ifdef L_BIG_ENDIAN
+#else
+# ifndef L_LITTLE_ENDIAN
+# define L_LITTLE_ENDIAN
+# endif
+#endif
+
+#endif
diff --git a/base/errno_.h b/base/errno_.h
index f7ed62dc..5f05c616 100644
--- a/base/errno_.h
+++ b/base/errno_.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/ets.c b/base/ets.c
index 598ebbda..2b6a073f 100644
--- a/base/ets.c
+++ b/base/ets.c
@@ -1,4 +1,4 @@
- /*
+/*
* Testbed implementation of Even Better Screening. Please see
* http://www.artofcode.com/eventone/ for more details.
*
@@ -9,7 +9,18 @@
* of ETS is for commercial licensees and is governed by the licensing
* agreement between artofcode LLC and the licensee. Please see
* http://www.artofcode.com/eventone/ for information on licensing.
-*/
+ *
+ * Subsequent Changes: Copyright (C) 2013-2020 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.
+ */
#include <stdlib.h>
#include <string.h>
@@ -101,7 +112,7 @@ typedef struct {
* on an input line. Called to generate optimised versions.
*/
static inline void
-ets_line_template(unsigned char * gs_restrict * gs_restrict dest, const ETS_SrcPixel * const gs_restrict * gs_restrict src, int n_planes, int levels, int aspect_x, int aspect_y, int elo, int ehi, int ets_bias, int r_style, int old_quant, int fancy_coupling, int * gs_restrict c_line,
+ets_line_template(unsigned char * gs_restrict * gs_restrict dest, const ETS_SrcPixel * const gs_restrict * gs_restrict src, int n_planes, int levels, int aspect_x, int aspect_y, int elo, int ehi, int ets_biasing_mode, int r_style, int old_quant, int fancy_coupling, int * gs_restrict c_line,
const signed char * gs_restrict tmmat, unsigned int tmwidth, unsigned int tmheight, unsigned int y, int xd, ETS_PlaneCtx * gs_restrict * gs_restrict planes, uint32 *seeds, int in_plane_step, int out_plane_step)
{
ETS_PixelInternals pi[M];
@@ -260,7 +271,7 @@ ets_line_template(unsigned char * gs_restrict * gs_restrict dest, const ETS_SrcP
* 3 like 1, but same shift either side of 0.
* 4+ scale the modulation down.
*/
- switch (ets_bias)
+ switch (ets_biasing_mode)
{
case ETS_BIAS_ZERO:
ets_bias = 0;
diff --git a/base/ets.h b/base/ets.h
index 4b009b8a..a57bef52 100644
--- a/base/ets.h
+++ b/base/ets.h
@@ -1,17 +1,26 @@
-/* Copyright (C) 2001-2019 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., 1305 Grant Avenue - Suite 200, Novato,
- CA 94945, U.S.A., +1(415)492-9861, for further information.
-*/
+/*
+ * Testbed implementation of Even Better Screening. Please see
+ * http://www.artofcode.com/eventone/ for more details.
+ *
+ * Copyright 2001-2004 Raph Levien <raph@acm.org>
+ *
+ * Code in this module is covered by US Patents 5,055,942 and
+ * 5,917,614, and corresponding international patents. This version
+ * of ETS is for commercial licensees and is governed by the licensing
+ * agreement between artofcode LLC and the licensee. Please see
+ * http://www.artofcode.com/eventone/ for information on licensing.
+ *
+ * Subsequent Changes: Copyright (C) 2013-2020 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.
+ */
#ifndef ets_h_INCLUDED
# define ets_h_INCLUDED
diff --git a/base/ets_tm.h b/base/ets_tm.h
index 62e13e95..5decb9c3 100644
--- a/base/ets_tm.h
+++ b/base/ets_tm.h
@@ -1,17 +1,26 @@
-/* Copyright (C) 2001-2019 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., 1305 Grant Avenue - Suite 200, Novato,
- CA 94945, U.S.A., +1(415)492-9861, for further information.
-*/
+/*
+ * Testbed implementation of Even Better Screening. Please see
+ * http://www.artofcode.com/eventone/ for more details.
+ *
+ * Copyright 2001-2004 Raph Levien <raph@acm.org>
+ *
+ * Code in this module is covered by US Patents 5,055,942 and
+ * 5,917,614, and corresponding international patents. This version
+ * of ETS is for commercial licensees and is governed by the licensing
+ * agreement between artofcode LLC and the licensee. Please see
+ * http://www.artofcode.com/eventone/ for information on licensing.
+ *
+ * Subsequent Changes: Copyright (C) 2013-2020 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.
+ */
#ifndef ets_tm_h_INCLUDED
diff --git a/base/expat.mak b/base/expat.mak
index 3cb3c3c8..08db2a1d 100644
--- a/base/expat.mak
+++ b/base/expat.mak
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2019 Artifex Software, Inc.
+# Copyright (C) 2001-2020 Artifex Software, Inc.
# All Rights Reserved.
#
# This software is provided AS-IS with no warranty, either express or
diff --git a/base/fapi_bs.mak b/base/fapi_bs.mak
index afc0fa2f..894bcb82 100644
--- a/base/fapi_bs.mak
+++ b/base/fapi_bs.mak
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2019 Artifex Software, Inc.
+# Copyright (C) 2001-2020 Artifex Software, Inc.
# All Rights Reserved.
#
# This software is provided AS-IS with no warranty, either express or
diff --git a/base/fapi_ft.c b/base/fapi_ft.c
index 60f69f64..46f865ef 100644
--- a/base/fapi_ft.c
+++ b/base/fapi_ft.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -1114,7 +1114,7 @@ gs_fapi_ft_get_scaled_font(gs_fapi_server * a_server, gs_fapi_font * a_font,
ff_server *s = (ff_server *) a_server;
ff_face *face = (ff_face *) a_font->server_font_data;
FT_Error ft_error = 0;
- int i, j;
+ int i, j, code;
FT_CharMap cmap = NULL;
bool data_owned = true;
@@ -1183,7 +1183,6 @@ gs_fapi_ft_get_scaled_font(gs_fapi_server * a_server, gs_fapi_font * a_font,
/* Load a typeface from a file. */
else if (a_font->font_file_path) {
FT_Open_Args args;
- int code;
memset(&args, 0x00, sizeof(args));
@@ -1215,9 +1214,12 @@ gs_fapi_ft_get_scaled_font(gs_fapi_server * a_server, gs_fapi_font * a_font,
if (a_font->is_type1) {
long length;
- int type =
- a_font->get_word(a_font, gs_fapi_font_feature_FontType,
- 0);
+ unsigned short type = 0;
+
+ code = a_font->get_word(a_font, gs_fapi_font_feature_FontType, 0, &type);
+ if (code < 0) {
+ return code;
+ }
/* Tell the FAPI interface that we need to decrypt the /Subrs data. */
a_font->need_decrypt = true;
@@ -1230,6 +1232,7 @@ gs_fapi_ft_get_scaled_font(gs_fapi_server * a_server, gs_fapi_font * a_font,
length = gs_fapi_serialize_type1_font(a_font, NULL, 0);
else
length = gs_fapi_serialize_type2_font(a_font, NULL, 0);
+
open_args.memory_base = own_font_data =
FF_alloc(s->ftmemory, length);
if (!open_args.memory_base)
@@ -1237,14 +1240,14 @@ gs_fapi_ft_get_scaled_font(gs_fapi_server * a_server, gs_fapi_font * a_font,
own_font_data_len = length;
if (type == 1)
open_args.memory_size =
- gs_fapi_serialize_type1_font(a_font, own_font_data,
- length);
+ gs_fapi_serialize_type1_font(a_font, own_font_data, length);
else
open_args.memory_size =
- gs_fapi_serialize_type2_font(a_font, own_font_data,
- length);
+ gs_fapi_serialize_type2_font(a_font, own_font_data, length);
+
if (open_args.memory_size != length)
return_error(gs_error_unregistered); /* Must not happen. */
+
ft_inc_int = new_inc_int(a_server, a_font);
if (!ft_inc_int) {
FF_free(s->ftmemory, own_font_data);
@@ -1255,11 +1258,16 @@ gs_fapi_ft_get_scaled_font(gs_fapi_server * a_server, gs_fapi_font * a_font,
/* It must be type 42 (see code in FAPI_FF_get_glyph in zfapi.c). */
else {
/* Get the length of the TrueType data. */
- open_args.memory_size =
- a_font->get_long(a_font, gs_fapi_font_feature_TT_size, 0);
- if (open_args.memory_size == 0)
+ unsigned long ms;
+
+ code = a_font->get_long(a_font, gs_fapi_font_feature_TT_size, 0, &ms);
+ if (code < 0)
+ return code;
+ if (ms == 0)
return_error(gs_error_invalidfont);
+ open_args.memory_size = (FT_Long)ms;
+
/* Load the TrueType data into a single buffer. */
open_args.memory_base = own_font_data =
FF_alloc(s->ftmemory, open_args.memory_size);
@@ -1268,10 +1276,10 @@ gs_fapi_ft_get_scaled_font(gs_fapi_server * a_server, gs_fapi_font * a_font,
own_font_data_len = open_args.memory_size;
- if (a_font->
- serialize_tt_font(a_font, own_font_data,
- open_args.memory_size))
- return_error(gs_error_invalidfont);
+ code = a_font->serialize_tt_font(a_font, own_font_data,
+ open_args.memory_size);
+ if (code < 0)
+ return code;
/* We always load incrementally. */
ft_inc_int = new_inc_int(a_server, a_font);
diff --git a/base/fapibstm.c b/base/fapibstm.c
index 73c1d08f..0eb120c2 100644
--- a/base/fapibstm.c
+++ b/base/fapibstm.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -103,8 +103,9 @@ InitFont(Bitstream_server * server, FAPI_font * ff)
own_font_data = gs_malloc(mem, 1, length, "Type 42 fotn copy");
if (!own_font_data)
return_error(gs_error_VMerror);
- if (ff->serialize_tt_font(ff, own_font_data, length))
- return_error(gs_error_invalidfont);
+ error = ff->serialize_tt_font(ff, own_font_data, length);
+ if (error < 0)
+ return error;
}
}
face->font_data = own_font_data;
diff --git a/base/fapiufst.c b/base/fapiufst.c
index 59aeb134..4089e905 100644
--- a/base/fapiufst.c
+++ b/base/fapiufst.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -79,14 +79,14 @@
#include "gxfapiu.h"
-#if UFST_VERSION_MAJOR >= 6 && UFST_VERSION_MINOR >= 2
+#if (UFST_VERSION_MAJOR >= 6 && UFST_VERSION_MINOR >= 2) || UFST_VERSION_MAJOR >= 7
#include "t1itype1.h"
#endif
#define ufst_emprintf(m,s) { outflush(m); emprintf(m, s); outflush(m); }
#define ufst_emprintf1(m,s,d) { outflush(m); emprintf1(m, s, d); outflush(m); }
-#if UFST_VERSION_MAJOR >= 6 && UFST_VERSION_MINOR >= 2
+#if (UFST_VERSION_MAJOR >= 6 && UFST_VERSION_MINOR >= 2) || UFST_VERSION_MAJOR >= 7
#undef true
#undef false
@@ -720,74 +720,170 @@ pack_float(LPUB8 * p, float v)
#define PACK_ZERO(p) *(p++) = 0
#define PACK_BYTE(p, c) *(p++) = c
-#define PACK_WORD(p, i, var) pack_word(&p, ff->get_word(ff, var, i))
-#define PACK_LONG(p, i, var) pack_long(&p, ff->get_long(ff, var, i))
-static void
+static inline int
+pack_feature_word(gs_fapi_font * ff, LPUB8 * p, gs_fapi_font_feature var, int ind)
+{
+ UW16 val;
+ int code = ff->get_word(ff, var, ind, (unsigned short *)&val);
+ if (code < 0)
+ return code;
+ pack_word(p, val);
+
+ return code;
+}
+
+static inline int
+pack_feature_long(gs_fapi_font * ff, LPUB8 * p, gs_fapi_font_feature var, int ind)
+{
+ UL32 val;
+ unsigned long lv;
+ int code = ff->get_long(ff, var, ind, &lv);
+ if (code < 0)
+ return code;
+ val = (UL32)lv;
+ pack_word(p, val);
+
+ return code;
+}
+
+static int
pack_pseo_word_array(fapi_ufst_server * r, gs_fapi_font * ff, UB8 ** p,
UW16 max_count, gs_fapi_font_feature count_id,
gs_fapi_font_feature array_id)
{
- UW16 k = min(ff->get_word(ff, count_id, 0), max_count), j;
+ UW16 k, k2, j;
+ int code;
+
+ code = ff->get_word(ff, count_id, 0, (unsigned short *)&k2);
+ if (code < 0)
+ return code;
+ k = min(k2, max_count);
pack_word(p, k);
for (j = 0; j < k; j++)
- PACK_WORD(*p, j, array_id);
+ code = pack_feature_word(ff, p, j, array_id);
for (; j < max_count; j++)
pack_word(p, 0);
+
+ return code;
}
-static void
+static int
pack_pseo_fhdr(fapi_ufst_server * r, gs_fapi_font * ff, UB8 * p)
{
ushort j, n, skip = 0;
+ int code;
while (((uint64_t) p) & 0x03) /* align to QUADWORD */
PACK_ZERO(p);
pack_long(&p, 1); /* format = 1 */
- for (j = 0; j < 6; j++)
- pack_float(&p, ff->get_float(ff, gs_fapi_font_feature_FontMatrix, j));
+ for (j = 0; j < 6; j++) {
+ float f;
+ code = ff->get_float(ff, gs_fapi_font_feature_FontMatrix, j, &f);
+ if (code < 0)
+ return code;
+ pack_float(&p, f);
+ }
while (((uint64_t) p) & 0x03) /* align to QUADWORD */
PACK_ZERO(p);
/* UFST has no definition for PSEO structure, so implement serialization : */
- PACK_LONG(p, 0, gs_fapi_font_feature_UniqueID);
- PACK_LONG(p, 0, gs_fapi_font_feature_BlueScale);
- PACK_WORD(p, 0, gs_fapi_font_feature_Weight);
- PACK_WORD(p, 0, gs_fapi_font_feature_ItalicAngle);
- PACK_WORD(p, 0, gs_fapi_font_feature_IsFixedPitch);
- PACK_WORD(p, 0, gs_fapi_font_feature_UnderLinePosition);
- PACK_WORD(p, 0, gs_fapi_font_feature_UnderlineThickness);
- PACK_WORD(p, 0, gs_fapi_font_feature_FontType);
- PACK_WORD(p, 0, gs_fapi_font_feature_FontBBox);
- PACK_WORD(p, 1, gs_fapi_font_feature_FontBBox);
- PACK_WORD(p, 2, gs_fapi_font_feature_FontBBox);
- PACK_WORD(p, 3, gs_fapi_font_feature_FontBBox);
- pack_pseo_word_array(r, ff, &p, 14, gs_fapi_font_feature_BlueValues_count,
+ /* NOTE: PACK_LONG and PACK_WORD macros can do a return on error */
+ code = pack_feature_long(ff, &p, 0, gs_fapi_font_feature_UniqueID);
+ if (code < 0)
+ return code;
+ code = pack_feature_long(ff, &p, 0, gs_fapi_font_feature_BlueScale);
+ if (code < 0)
+ return code;
+ code = pack_feature_word(ff, &p, 0, gs_fapi_font_feature_Weight);
+ if (code < 0)
+ return code;
+ code = pack_feature_word(ff, &p, 0, gs_fapi_font_feature_ItalicAngle);
+ if (code < 0)
+ return code;
+ code = pack_feature_word(ff, &p, 0, gs_fapi_font_feature_IsFixedPitch);
+ if (code < 0)
+ return code;
+ code = pack_feature_word(ff, &p, 0, gs_fapi_font_feature_UnderLinePosition);
+ if (code < 0)
+ return code;
+ code = pack_feature_word(ff, &p, 0, gs_fapi_font_feature_UnderlineThickness);
+ if (code < 0)
+ return code;
+ code = pack_feature_word(ff, &p, 0, gs_fapi_font_feature_FontType);
+ if (code < 0)
+ return code;
+ code = pack_feature_word(ff, &p, 0, gs_fapi_font_feature_FontBBox);
+ if (code < 0)
+ return code;
+ code = pack_feature_word(ff, &p, 1, gs_fapi_font_feature_FontBBox);
+ if (code < 0)
+ return code;
+ code = pack_feature_word(ff, &p, 2, gs_fapi_font_feature_FontBBox);
+ if (code < 0)
+ return code;
+ code = pack_feature_word(ff, &p, 3, gs_fapi_font_feature_FontBBox);
+ if (code < 0)
+ return code;
+ code = pack_pseo_word_array(r, ff, &p, 14, gs_fapi_font_feature_BlueValues_count,
gs_fapi_font_feature_BlueValues);
- pack_pseo_word_array(r, ff, &p, 10, gs_fapi_font_feature_OtherBlues_count,
+ if (code < 0)
+ return code;
+ code = pack_pseo_word_array(r, ff, &p, 10, gs_fapi_font_feature_OtherBlues_count,
gs_fapi_font_feature_OtherBlues);
- pack_pseo_word_array(r, ff, &p, 14,
+ if (code < 0)
+ return code;
+
+ code = pack_pseo_word_array(r, ff, &p, 14,
gs_fapi_font_feature_FamilyBlues_count,
gs_fapi_font_feature_FamilyBlues);
- pack_pseo_word_array(r, ff, &p, 10,
+ if (code < 0)
+ return code;
+
+ code = pack_pseo_word_array(r, ff, &p, 10,
gs_fapi_font_feature_FamilyOtherBlues_count,
gs_fapi_font_feature_FamilyOtherBlues);
- PACK_WORD(p, 0, gs_fapi_font_feature_BlueShift);
- PACK_WORD(p, 0, gs_fapi_font_feature_BlueFuzz);
- PACK_WORD(p, 0, gs_fapi_font_feature_StdHW);
- PACK_WORD(p, 0, gs_fapi_font_feature_StdVW);
- pack_pseo_word_array(r, ff, &p, 12, gs_fapi_font_feature_StemSnapH_count,
+ if (code < 0)
+ return code;
+
+ code = pack_feature_word(ff, &p, 0, gs_fapi_font_feature_BlueShift);
+ if (code < 0)
+ return code;
+ code = pack_feature_word(ff, &p, 0, gs_fapi_font_feature_BlueFuzz);
+ if (code < 0)
+ return code;
+ code = pack_feature_word(ff, &p, 0, gs_fapi_font_feature_StdHW);
+ if (code < 0)
+ return code;
+ code = pack_feature_word(ff, &p, 0, gs_fapi_font_feature_StdVW);
+ if (code < 0)
+ return code;
+ code = pack_pseo_word_array(r, ff, &p, 12, gs_fapi_font_feature_StemSnapH_count,
gs_fapi_font_feature_StemSnapH);
- pack_pseo_word_array(r, ff, &p, 12, gs_fapi_font_feature_StemSnapV_count,
+ if (code < 0)
+ return code;
+
+ code = pack_pseo_word_array(r, ff, &p, 12, gs_fapi_font_feature_StemSnapV_count,
gs_fapi_font_feature_StemSnapV);
- PACK_WORD(p, 0, gs_fapi_font_feature_ForceBold);
- PACK_WORD(p, 0, gs_fapi_font_feature_LanguageGroup);
- PACK_WORD(p, 0, gs_fapi_font_feature_lenIV);
+ if (code < 0)
+ return code;
+
+ code = pack_feature_word(ff, &p, 0, gs_fapi_font_feature_ForceBold);
+ if (code < 0)
+ return code;
+ code = pack_feature_word(ff, &p, 0, gs_fapi_font_feature_LanguageGroup);
+ if (code < 0)
+ return code;
+ code = pack_feature_word(ff, &p, 0, gs_fapi_font_feature_lenIV);
+ if (code < 0)
+ return code;
for (j = 0; j < 12; j++)
PACK_ZERO(p), PACK_ZERO(p); /* Reserved2 */
/* max data size = 107 words + 6 floats in ASCII */
- n = ff->get_word(ff, gs_fapi_font_feature_Subrs_count, 0);
+ code = ff->get_word(ff, gs_fapi_font_feature_Subrs_count, 0, &n);
+ if (code < 0)
+ return code;
pack_word(&p, n);
for (j = 0; j < n; j++) {
ushort subr_len = ff->get_subr(ff, j, 0, 0);
@@ -802,23 +898,23 @@ pack_pseo_fhdr(fapi_ufst_server * r, gs_fapi_font * ff, UB8 * p)
else
skip = 1;
}
- n = ff->get_word(ff, gs_fapi_font_feature_GlobalSubrs_count, 0);
- /* get_word() doesn't have an error return value, so I've used an unlikely value */
- if (n != 65535) {
- pack_word(&p, n);
- for (j = 0; j < n; j++) {
- ushort subr_len = ff->get_gsubr(ff, j, 0, 0);
-
- if (subr_len != 0) {
- pack_word(&p, j);
- pack_word(&p, subr_len);
- PACK_BYTE(p, 1); /* is_decrypted */
- ff->get_gsubr(ff, j, p, subr_len);
- p += subr_len;
- }
- else
- skip = 1;
+ code = ff->get_word(ff, gs_fapi_font_feature_GlobalSubrs_count, 0, &n);
+ if (code < 0)
+ return code;
+
+ pack_word(&p, n);
+ for (j = 0; j < n; j++) {
+ ushort subr_len = ff->get_gsubr(ff, j, 0, 0);
+
+ if (subr_len != 0) {
+ pack_word(&p, j);
+ pack_word(&p, subr_len);
+ PACK_BYTE(p, 1); /* is_decrypted */
+ ff->get_gsubr(ff, j, p, subr_len);
+ p += subr_len;
}
+ else
+ skip = 1;
}
if (skip)
pack_word(&p, 0xFFFF);
@@ -905,20 +1001,37 @@ ufst_make_font_data(fapi_ufst_server * r, const char *font_file_path,
area_length += PCLETTOFONTHDRSIZE;
if (ff->is_type1) {
- int subrs_count = ff->get_word(ff, gs_fapi_font_feature_Subrs_count, 0);
- int subrs_length = ff->get_long(ff, gs_fapi_font_feature_Subrs_total_size, 0);
+ int subrs_count;
+ int subrs_length;
int subrs_area_size;
- int gsubrs_count = ff->get_word(ff, gs_fapi_font_feature_GlobalSubrs_count, 0);
-
- /* get_word() doesn't have an error return value, so I've used an unlikely value */
- if (gsubrs_count != 65535)
- subrs_count += gsubrs_count;
+ int gsubrs_count;
+ unsigned short usval;
+ unsigned long ulval;
+
+ code = ff->get_word(ff, gs_fapi_font_feature_Subrs_count, 0, &usval);
+ if (code < 0)
+ return code;
+ subrs_count = usval;
+ code = ff->get_word(ff, gs_fapi_font_feature_GlobalSubrs_count, 0, &usval);
+ if (code < 0)
+ return code;
+ gsubrs_count = usval;
+
+ subrs_count += gsubrs_count;
+
+ code = ff->get_long(ff, gs_fapi_font_feature_Subrs_total_size, 0, &ulval);
+ if (code < 0)
+ return code;
+ subrs_length = (int)ulval;
subrs_area_size = subrs_count * 5 + subrs_length + 2;
area_length += 360 + subrs_area_size; /* some inprecise - see pack_pseo_fhdr */
}
else {
- tt_size = ff->get_long(ff, gs_fapi_font_feature_TT_size, 0);
+ code = ff->get_long(ff, gs_fapi_font_feature_TT_size, 0, &tt_size);
+ if (code < 0)
+ return code;
+
if (tt_size == 0)
return_error(gs_error_invalidfont);
/* area_length += tt_size + (use_XL_format ? 6 : 4) + 4 + 2;*/
@@ -979,8 +1092,13 @@ ufst_make_font_data(fapi_ufst_server * r, const char *font_file_path,
}
}
else {
+ unsigned long ulval;
+
d->font_type = (ff->is_type1 ? FC_PST1_TYPE : FC_TT_TYPE);
- d->font_id = ff->get_long(ff, gs_fapi_font_feature_UniqueID, 0);
+ code = ff->get_long(ff, gs_fapi_font_feature_UniqueID, 0, &ulval);
+ if (code < 0)
+ return code;
+ d->font_id = ulval;
if (d->font_id < 0) {
d->font_id = assign_font_id();
}
@@ -1047,7 +1165,9 @@ ufst_make_font_data(fapi_ufst_server * r, const char *font_file_path,
if (ff->is_type1) {
LPUB8 fontdata = (LPUB8) h + PCLETTOFONTHDRSIZE;
- pack_pseo_fhdr(r, ff, fontdata);
+ code = pack_pseo_fhdr(r, ff, fontdata);
+ if (code < 0)
+ return code;
}
else {
LPUB8 pseg = (LPUB8) h + PCLETTOFONTHDRSIZE;
@@ -1060,8 +1180,11 @@ ufst_make_font_data(fapi_ufst_server * r, const char *font_file_path,
*((ulong *) (&(pseg[2]))) = SWAPL(tt_size);
d->tt_font_body_offset = (LPUB8) fontdata - (LPUB8) d;
- if (ff->serialize_tt_font(ff, fontdata, tt_size))
- return_error(gs_error_invalidfont);
+
+ code = ff->serialize_tt_font(ff, fontdata, tt_size);
+ if (code < 0)
+ return code;
+
*(fontdata + tt_size) = 255;
*(fontdata + tt_size + 1) = 255;
*(fontdata + tt_size + 2) = 0;
diff --git a/base/fcntl_.h b/base/fcntl_.h
index 46d08135..fc2cdb46 100644
--- a/base/fcntl_.h
+++ b/base/fcntl_.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/freetype.mak b/base/freetype.mak
index eea93a7f..ec85b5ce 100644
--- a/base/freetype.mak
+++ b/base/freetype.mak
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2019 Artifex Software, Inc.
+# Copyright (C) 2001-2020 Artifex Software, Inc.
# All Rights Reserved.
#
# This software is provided AS-IS with no warranty, either express or
diff --git a/base/gconf.c b/base/gconf.c
index 8d00af2d..68aecb75 100644
--- a/base/gconf.c
+++ b/base/gconf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gconf.h b/base/gconf.h
index 3779d4c9..1dcfa6c2 100644
--- a/base/gconf.h
+++ b/base/gconf.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gdbflags.h b/base/gdbflags.h
index 1ac6c586..c7d3fe91 100644
--- a/base/gdbflags.h
+++ b/base/gdbflags.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gdebug.h b/base/gdebug.h
index 28795661..8fa4cca0 100644
--- a/base/gdebug.h
+++ b/base/gdebug.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gdevabuf.c b/base/gdevabuf.c
index d9c45a28..e937299d 100644
--- a/base/gdevabuf.c
+++ b/base/gdevabuf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -191,7 +191,7 @@ gs_make_mem_abuf_device(gx_device_memory * adev, gs_memory_t * mem,
adev->mapped_x = mapped_x;
set_dev_proc(adev, close_device, mem_abuf_close);
set_dev_proc(adev, get_clipping_box, mem_abuf_get_clipping_box);
- if (!devn)
+ if (!devn)
adev->save_hl_color = NULL; /* This is the test for when we flush the
the buffer as to what copy_alpha type
use */
@@ -235,7 +235,7 @@ abuf_flush_block(gx_device_memory * adev, int y)
* (see gsbitops.c), we can't expand the box only to pixel
* boundaries:
int alpha_mask = -1 << adev->log2_alpha_bits;
- * Instead, we must expand it to byte boundaries,
+ * Instead, we must expand it to byte boundaries,
*/
int alpha_mask = ~7;
gs_int_rect bbox;
@@ -249,7 +249,7 @@ abuf_flush_block(gx_device_memory * adev, int y)
adev->raster, bits, draster, &adev->log2_scale,
adev->log2_alpha_bits);
/* Set up with NULL when adev initialized */
- if (adev->save_hl_color == NULL) {
+ if (adev->save_hl_color == NULL) {
return (*dev_proc(target, copy_alpha)) (target,
bits, 0, draster, gx_no_bitmap_id,
(adev->mapped_x + bbox.p.x) >>
@@ -304,21 +304,25 @@ typedef struct y_transfer_s {
int transfer_y;
int transfer_height;
} y_transfer;
-static void
+static int
y_transfer_init(y_transfer * pyt, gx_device * dev, int ty, int th)
{
gx_device_memory * const mdev = (gx_device_memory *)dev;
int bh = 1 << mdev->log2_scale.y;
if (ty < mdev->mapped_y || ty > mdev->mapped_y + mdev->mapped_height) {
- abuf_flush(mdev);
+ int code = abuf_flush(mdev);
+ if (code < 0)
+ return code;
mdev->mapped_y = ty & -bh;
mdev->mapped_height = bh;
- memset(scan_line_base(mdev, 0), 0, bh * mdev->raster);
+ memset(scan_line_base(mdev, 0), 0, (size_t)bh * mdev->raster);
}
pyt->y_next = ty;
pyt->height_left = th;
pyt->transfer_height = 0;
+
+ return 0;
}
/* while ( yt.height_left > 0 ) { y_transfer_next(&yt, mdev); ... } */
static int
@@ -348,7 +352,7 @@ y_transfer_next(y_transfer * pyt, gx_device * dev)
mdev->mapped_height = mh += bh;
}
memset(scan_line_base(mdev, (ms == 0 ? mh : ms) - bh),
- 0, bh * mdev->raster);
+ 0, (size_t)bh * mdev->raster);
}
/* Now we know that my <= ty < my + mh. */
tby = ty - my + ms;
@@ -380,6 +384,7 @@ mem_abuf_copy_mono(gx_device * dev,
{
gx_device_memory * const mdev = (gx_device_memory *)dev;
y_transfer yt;
+ int code;
if (zero != gx_no_color_index || one == gx_no_color_index)
return_error(gs_error_undefinedresult);
@@ -387,11 +392,18 @@ mem_abuf_copy_mono(gx_device * dev,
fit_copy_xyw(dev, base, sourcex, sraster, id, x, y, w, h); /* don't limit h */
if (w <= 0 || h <= 0)
return 0;
+ if (mdev->mapped_height != 0 && mdev->save_color != one) {
+ /* Color has changed. Better flush. */
+ int code = abuf_flush(mdev);
+ if (code < 0)
+ return code;
+ }
mdev->save_color = one;
- y_transfer_init(&yt, dev, y, h);
+ code = y_transfer_init(&yt, dev, y, h);
+ if (code < 0)
+ return code;
while (yt.height_left > 0) {
- int code = y_transfer_next(&yt, dev);
-
+ code = y_transfer_next(&yt, dev);
if (code < 0)
return code;
(*dev_proc(&mem_mono_device, copy_mono)) (dev,
@@ -410,16 +422,24 @@ mem_abuf_fill_rectangle(gx_device * dev, int x, int y, int w, int h,
{
gx_device_memory * const mdev = (gx_device_memory *)dev;
y_transfer yt;
+ int code;
x -= mdev->mapped_x;
fit_fill_xy(dev, x, y, w, h);
fit_fill_w(dev, x, w); /* don't limit h */
/* or check w <= 0, h <= 0 */
+ if (mdev->mapped_height != 0 && mdev->save_color != color) {
+ /* Color has changed. Better flush. */
+ int code = abuf_flush(mdev);
+ if (code < 0)
+ return code;
+ }
mdev->save_color = color;
- y_transfer_init(&yt, dev, y, h);
+ code = y_transfer_init(&yt, dev, y, h);
+ if (code < 0)
+ return code;
while (yt.height_left > 0) {
- int code = y_transfer_next(&yt, dev);
-
+ code = y_transfer_next(&yt, dev);
if (code < 0)
return code;
(*dev_proc(&mem_mono_device, fill_rectangle)) (dev,
@@ -442,17 +462,26 @@ mem_abuf_fill_rectangle_hl_color(gx_device * dev, const gs_fixed_rect *rect,
int y = fixed2int(rect->p.y);
int w = fixed2int(rect->q.x) - x;
int h = fixed2int(rect->q.y) - y;
+ int code;
(void)pgs;
x -= mdev->mapped_x;
fit_fill_xy(dev, x, y, w, h);
fit_fill_w(dev, x, w); /* don't limit h */
/* or check w <= 0, h <= 0 */
+ if (mdev->mapped_height != 0 &&
+ memcmp(mdev->save_hl_color, pdcolor, sizeof(*pdcolor)) != 0) {
+ /* Color has changed. Better flush. */
+ int code = abuf_flush(mdev);
+ if (code < 0)
+ return code;
+ }
mdev->save_hl_color = pdcolor;
- y_transfer_init(&yt, dev, y, h);
+ code = y_transfer_init(&yt, dev, y, h);
+ if (code < 0)
+ return code;
while (yt.height_left > 0) {
- int code = y_transfer_next(&yt, dev);
-
+ code = y_transfer_next(&yt, dev);
if (code < 0)
return code;
(*dev_proc(&mem_mono_device, fill_rectangle)) (dev,
diff --git a/base/gdevbbox.c b/base/gdevbbox.c
index 8b4e6313..20f80d3a 100644
--- a/base/gdevbbox.c
+++ b/base/gdevbbox.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gdevbbox.h b/base/gdevbbox.h
index ae993a5b..1abf2cf4 100644
--- a/base/gdevbbox.h
+++ b/base/gdevbbox.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gdevdbit.c b/base/gdevdbit.c
index faeac5f6..fb9ff800 100644
--- a/base/gdevdbit.c
+++ b/base/gdevdbit.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gdevdcrd.c b/base/gdevdcrd.c
index a5c2b792..299afc52 100644
--- a/base/gdevdcrd.c
+++ b/base/gdevdcrd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gdevdcrd.h b/base/gdevdcrd.h
index b0063c36..7ef729a2 100644
--- a/base/gdevdcrd.h
+++ b/base/gdevdcrd.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gdevddrw.c b/base/gdevddrw.c
index 0adda189..19089b88 100644
--- a/base/gdevddrw.c
+++ b/base/gdevddrw.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gdevddrw.h b/base/gdevddrw.h
index 007a0317..dcf4468a 100644
--- a/base/gdevddrw.h
+++ b/base/gdevddrw.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gdevdevn.c b/base/gdevdevn.c
index 3b019d6f..4cbf11b5 100644
--- a/base/gdevdevn.c
+++ b/base/gdevdevn.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gdevdevn.h b/base/gdevdevn.h
index 3f50c996..fea7c3d7 100644
--- a/base/gdevdevn.h
+++ b/base/gdevdevn.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gdevdevnprn.h b/base/gdevdevnprn.h
index fa08cd7d..6c3020e6 100644
--- a/base/gdevdevnprn.h
+++ b/base/gdevdevnprn.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gdevdflt.c b/base/gdevdflt.c
index 8d342995..1d949080 100644
--- a/base/gdevdflt.c
+++ b/base/gdevdflt.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -1026,6 +1026,8 @@ gx_default_dev_spec_op(gx_device *pdev, int dev_spec_op, void *data, int size)
case gxdso_supports_saved_pages:
case gxdso_needs_invariant_palette:
case gxdso_supports_iccpostrender:
+ case gxdso_supports_alpha:
+ case gxdso_pdf14_sep_device:
return 0;
case gxdso_pattern_shfill_doesnt_need_path:
return (dev_proc(pdev, fill_path) == gx_default_fill_path);
@@ -1873,7 +1875,8 @@ transform_pixel_region_render_portrait(gx_device *dev, gx_default_transform_pixe
byte *out;
int depth = spp;
if (state->line == NULL) {
- state->line = gs_alloc_bytes(state->mem, dev->width * depth,
+ state->line = gs_alloc_bytes(state->mem,
+ (size_t)dev->width * depth,
"image line");
if (state->line == NULL)
return gs_error_VMerror;
@@ -1969,7 +1972,7 @@ transform_pixel_region_render_portrait(gx_device *dev, gx_default_transform_pixe
goto err;
}
}
- return (code < 0 ? code : 1);
+ return 1;
/* Save position if error, in case we resume. */
err:
buffer[0] = run;
diff --git a/base/gdevdgbr.c b/base/gdevdgbr.c
index 456f9101..164124d7 100644
--- a/base/gdevdgbr.c
+++ b/base/gdevdgbr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -423,6 +423,9 @@ gx_get_bits_std_to_native(gx_device * dev, int x, int w, int h,
gx_color_value src_max = (1 << src_depth) - 1;
#define v2cv(value) ((ulong)(value) * gx_max_color_value / src_max)
gx_color_value alpha_default = src_max;
+ subclass_color_mappings scm;
+
+ scm = get_color_mapping_procs_subclass(dev);
params->options &= ~GB_COLORS_ALL | GB_COLORS_NATIVE;
for (; h > 0; dest_line += raster, src_line += dev_raster, --h) {
@@ -443,9 +446,6 @@ gx_get_bits_std_to_native(gx_device * dev, int x, int w, int h,
gx_color_value va = alpha_default;
gx_color_index pixel;
bool do_alpha = false;
- subclass_color_mappings scm;
-
- scm = get_color_mapping_procs_subclass(dev);
/* Fetch the source data. */
if (stored->options & GB_ALPHA_FIRST) {
diff --git a/base/gdevdrop.c b/base/gdevdrop.c
index dcd3f659..b22823a9 100644
--- a/base/gdevdrop.c
+++ b/base/gdevdrop.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -54,17 +54,17 @@ trace_copy_rop(const char *cname, gx_device * dev,
int x, int y, int width, int height,
int phase_x, int phase_y, gs_logical_operation_t lop)
{
- dmlprintf4(dev->memory, "%s: dev=0x%lx(%s) depth=%d\n",
- cname, (ulong) dev, dev->dname, dev->color_info.depth);
- dmlprintf4(dev->memory, " source data=0x%lx x=%d raster=%u id=%lu colors=",
- (ulong) sdata, sourcex, sraster, (ulong) id);
+ dmlprintf4(dev->memory, "%s: dev="PRI_INTPTR"(%s) depth=%d\n",
+ cname, (intptr_t)dev, dev->dname, dev->color_info.depth);
+ dmlprintf4(dev->memory, " source data="PRI_INTPTR" x=%d raster=%u id=%lu colors=",
+ (intptr_t)sdata, sourcex, sraster, (ulong) id);
if (scolors)
dmprintf2(dev->memory, "(%"PRIx64",%"PRIx64");\n", (uint64_t)scolors[0], (uint64_t)scolors[1]);
else
dmputs(dev->memory, "none;\n");
if (textures)
- dmlprintf8(dev->memory, " textures=0x%lx size=%dx%d(%dx%d) raster=%u shift=%d(%d)",
- (ulong) textures, textures->size.x, textures->size.y,
+ dmlprintf8(dev->memory, " textures="PRI_INTPTR" size=%dx%d(%dx%d) raster=%u shift=%d(%d)",
+ (intptr_t)textures, textures->size.x, textures->size.y,
textures->rep_width, textures->rep_height,
textures->raster, textures->shift, textures->rep_shift);
else
@@ -189,7 +189,7 @@ gx_default_strip_copy_rop2(gx_device * dev,
return code;
lop = lop_sanitize(lop);
if (rop3_uses_D(lop)) {
- row = gs_alloc_bytes(mem, draster * block_height, "copy_rop row");
+ row = gs_alloc_bytes(mem, (size_t)draster * block_height, "copy_rop row");
if (row == 0) {
code = gs_note_error(gs_error_VMerror);
goto out;
diff --git a/base/gdevdsha.c b/base/gdevdsha.c
index 2553a795..2111974d 100644
--- a/base/gdevdsha.c
+++ b/base/gdevdsha.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gdevemap.c b/base/gdevemap.c
index f174d01f..b307fb78 100644
--- a/base/gdevemap.c
+++ b/base/gdevemap.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gdevepo.c b/base/gdevepo.c
index 45363781..e3454273 100644
--- a/base/gdevepo.c
+++ b/base/gdevepo.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gdevepo.h b/base/gdevepo.h
index 45add78e..68f47686 100644
--- a/base/gdevepo.h
+++ b/base/gdevepo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gdevflp.c b/base/gdevflp.c
index 0ad19656..7b02bc35 100644
--- a/base/gdevflp.c
+++ b/base/gdevflp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -419,7 +419,7 @@ int flp_close_device(gx_device *dev)
if (psubclass_data->PageArraySize)
{
- gs_free(dev->memory->non_gc_memory, psubclass_data->PageArray, 1, , "array of pages selected");
+ gs_free(dev->memory->non_gc_memory, psubclass_data->PageArray, 1, psubclass_data->PageArraySize, "array of pages selected");
psubclass_data->PageArray = 0;
psubclass_data->PageArraySize = 0;
}
@@ -504,23 +504,116 @@ int flp_get_bits(gx_device *dev, int y, byte *data, byte **actual_data)
return gx_default_get_bits(dev, y, data, actual_data);
}
+static void
+flp_rc_free_pages_list(gs_memory_t * mem, void *ptr_in, client_name_t cname)
+{
+ gdev_pagelist *PageList = (gdev_pagelist *)ptr_in;
+
+ if (PageList->rc.ref_count <= 1) {
+ gs_free(mem->non_gc_memory, PageList->Pages, 1, PagesSize, "free page list");
+ gs_free(mem->non_gc_memory, PageList, 1, sizeof(gdev_pagelist), "free structure to hold page list");
+ }
+}
+
int
flp_put_params(gx_device * dev, gs_param_list * plist)
{
bool temp_bool = false;
- int code;
+ int code, ecode;
+ gs_param_string pagelist;
+
+ code = param_read_int(plist, "FirstPage", &dev->FirstPage);
+ if (code < 0)
+ ecode = code;
+ if (code == 0) {
+ first_last_subclass_data *psubclass_data = dev->subclass_data;
+
+ dev->DisablePageHandler = false;
+ psubclass_data->PageCount = 0;
+ if (dev->PageList) {
+ rc_decrement(dev->PageList, "flp_put_params");
+ dev->PageList = NULL;
+ }
+ if (psubclass_data->PageArray != NULL) {
+ gs_free(dev->memory->non_gc_memory, psubclass_data->PageArray, 1, psubclass_data->PageArraySize, "array of pages selected");
+ psubclass_data->PageArray = NULL;
+ psubclass_data->PageArraySize = 0;
+ }
+ }
+
+ code = param_read_int(plist, "LastPage", &dev->LastPage);
+ if (code < 0)
+ ecode = code;
+ if (code == 0) {
+ first_last_subclass_data *psubclass_data = dev->subclass_data;
+
+ dev->DisablePageHandler = false;
+ psubclass_data->PageCount = 0;
+ if (dev->PageList) {
+ rc_decrement(dev->PageList, "flp_put_params");
+ dev->PageList = NULL;
+ }
+ if (psubclass_data->PageArray != NULL) {
+ gs_free(dev->memory->non_gc_memory, psubclass_data->PageArray, 1, psubclass_data->PageArraySize, "array of pages selected");
+ psubclass_data->PageArray = NULL;
+ psubclass_data->PageArraySize = 0;
+ }
+ }
code = param_read_bool(plist, "DisablePageHandler", &temp_bool);
if (code < 0)
- return code;
- if (code == 0)
+ ecode = code;
+ if (code == 0) {
dev->DisablePageHandler = temp_bool;
+ if (dev->DisablePageHandler == false) {
+ first_last_subclass_data *psubclass_data = dev->subclass_data;
+
+ psubclass_data->PageCount = 0;
+ }
+ }
+
+ code = param_read_string(plist, "PageList", &pagelist);
+ if (code < 0)
+ ecode = code;
+
+ if (code == 0 && pagelist.size > 0) {
+ first_last_subclass_data *psubclass_data = dev->subclass_data;
+
+ if (dev->PageList)
+ rc_decrement(dev->PageList, "flp_put_params");
+
+ if (psubclass_data->PageArray != NULL) {
+ gs_free(dev->memory->non_gc_memory, psubclass_data->PageArray, 1, psubclass_data->PageArraySize, "array of pages selected");
+ psubclass_data->PageArray = NULL;
+ psubclass_data->PageArraySize = 0;
+ }
+
+ dev->PageList = (gdev_pagelist *)gs_alloc_bytes(dev->memory->non_gc_memory, sizeof(gdev_pagelist), "structure to hold page list");
+ if (!dev->PageList)
+ return gs_note_error(gs_error_VMerror);
+ dev->PageList->Pages = (void *)gs_alloc_bytes(dev->memory->non_gc_memory, pagelist.size + 1, "String to hold page list");
+ if (!dev->PageList->Pages){
+ gs_free(dev->memory->non_gc_memory, dev->PageList, 1, sizeof(gdev_pagelist), "free structure to hold page list");
+ dev->PageList = 0;
+ return gs_note_error(gs_error_VMerror);
+ }
+ memset(dev->PageList->Pages, 0x00, pagelist.size + 1);
+ memcpy(dev->PageList->Pages, pagelist.data, pagelist.size);
+ dev->PageList->PagesSize = pagelist.size + 1;
+ rc_init_free(dev->PageList, dev->memory->non_gc_memory, 1, flp_rc_free_pages_list);
+ psubclass_data->ProcessedPageList = false;
+ dev->DisablePageHandler = false;
+ psubclass_data->PageCount = 0;
+ }
code = default_subclass_put_params(dev, plist);
if (code < 0)
return code;
+ if (ecode < 0)
+ code = ecode;
+
return code;
}
diff --git a/base/gdevflp.h b/base/gdevflp.h
index 04257877..ba38f1c1 100644
--- a/base/gdevflp.h
+++ b/base/gdevflp.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gdevhit.c b/base/gdevhit.c
index 09f4b02b..769e8d3a 100644
--- a/base/gdevhit.c
+++ b/base/gdevhit.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gdevkrnlsclass.c b/base/gdevkrnlsclass.c
index 6f910b12..8625df4c 100644
--- a/base/gdevkrnlsclass.c
+++ b/base/gdevkrnlsclass.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gdevkrnlsclass.h b/base/gdevkrnlsclass.h
index 5f586f29..b73ce3c2 100644
--- a/base/gdevkrnlsclass.h
+++ b/base/gdevkrnlsclass.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gdevm1.c b/base/gdevm1.c
index 5a573a65..299cf65d 100644
--- a/base/gdevm1.c
+++ b/base/gdevm1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gdevm16.c b/base/gdevm16.c
index 607e1d5d..f20b4461 100644
--- a/base/gdevm16.c
+++ b/base/gdevm16.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gdevm2.c b/base/gdevm2.c
index 04a0e60d..3443ac2a 100644
--- a/base/gdevm2.c
+++ b/base/gdevm2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gdevm24.c b/base/gdevm24.c
index 7ee93591..5cea72f8 100644
--- a/base/gdevm24.c
+++ b/base/gdevm24.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gdevm32.c b/base/gdevm32.c
index 6cd9aa22..0e5e7f15 100644
--- a/base/gdevm32.c
+++ b/base/gdevm32.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gdevm4.c b/base/gdevm4.c
index 646f352f..dadb4755 100644
--- a/base/gdevm4.c
+++ b/base/gdevm4.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gdevm40.c b/base/gdevm40.c
index 39ffa06e..e2e9ef7d 100644
--- a/base/gdevm40.c
+++ b/base/gdevm40.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gdevm48.c b/base/gdevm48.c
index b19cba08..987a6390 100644
--- a/base/gdevm48.c
+++ b/base/gdevm48.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gdevm56.c b/base/gdevm56.c
index 9af7677d..2efbaf9b 100644
--- a/base/gdevm56.c
+++ b/base/gdevm56.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gdevm64.c b/base/gdevm64.c
index 11678f75..8c3be0d1 100644
--- a/base/gdevm64.c
+++ b/base/gdevm64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gdevm8.c b/base/gdevm8.c
index fffef9f6..55f956b3 100644
--- a/base/gdevm8.c
+++ b/base/gdevm8.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gdevmem.c b/base/gdevmem.c
index 7b158a0e..95da5d6c 100644
--- a/base/gdevmem.c
+++ b/base/gdevmem.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -83,8 +83,8 @@ const gs_const_string mem_mono_w_b_palette = {
/* ------ Generic code ------ */
/* Return the appropriate memory device for a given */
-/* number of bits per pixel (0 if none suitable).
- Greater than 64 occurs for the planar case
+/* number of bits per pixel (0 if none suitable).
+ Greater than 64 occurs for the planar case
which we will then return a mem_x_device */
static const gx_device_memory *const mem_devices[65] = {
0, &mem_mono_device, &mem_mapped2_device, 0, &mem_mapped4_device,
@@ -161,7 +161,7 @@ gs_make_mem_device(gx_device_memory * dev, const gx_device_memory * mdproto,
break;
}
/* Preload the black and white cache. */
- if (target == 0) {
+ if (target == NULL) {
if (dev->color_info.depth == 1) {
/* The default for black-and-white devices is inverted. */
dev->cached_colors.black = 1;
@@ -192,7 +192,7 @@ gs_make_mem_device(gx_device_memory * dev, const gx_device_memory * mdproto,
cv[k] = 0;
}
}
- gdev_mem_mono_set_inverted(dev, (target == 0 ||
+ gdev_mem_mono_set_inverted(dev, (target == NULL ||
(*dev_proc(dev, encode_color))((gx_device *)dev, cv) != 0));
}
check_device_separable((gx_device *)dev);
@@ -212,7 +212,7 @@ gs_make_mem_device_with_copydevice(gx_device_memory ** ppdev,
int code;
gx_device_memory *pdev;
- if (mem == 0)
+ if (mem == NULL)
return -1;
code = gs_copydevice((gx_device **)&pdev,
@@ -230,7 +230,7 @@ gs_make_mem_device_with_copydevice(gx_device_memory ** ppdev,
break;
}
/* Preload the black and white cache. */
- if (target == 0) {
+ if (target == NULL) {
if (pdev->color_info.depth == 1) {
/* The default for black-and-white devices is inverted. */
pdev->cached_colors.black = 1;
@@ -252,7 +252,7 @@ gs_make_mem_device_with_copydevice(gx_device_memory ** ppdev,
gx_color_value cv[3];
cv[0] = cv[1] = cv[2] = 0;
- gdev_mem_mono_set_inverted(pdev, (target == 0 ||
+ gdev_mem_mono_set_inverted(pdev, (target == NULL ||
(*dev_proc(pdev, encode_color))((gx_device *)pdev, cv) != 0));
}
check_device_separable((gx_device *)pdev);
@@ -270,7 +270,7 @@ gs_make_mem_mono_device_with_copydevice(gx_device_memory ** ppdev, gs_memory_t *
int code;
gx_device_memory *pdev;
- if (mem == 0)
+ if (mem == NULL)
return -1;
code = gs_copydevice((gx_device **)&pdev,
@@ -436,12 +436,19 @@ mem_open(gx_device * dev)
int
gdev_mem_open_scan_lines(gx_device_memory *mdev, int setup_height)
{
+ return gdev_mem_open_scan_lines_interleaved(mdev, setup_height, 0);
+}
+int
+gdev_mem_open_scan_lines_interleaved(gx_device_memory *mdev,
+ int setup_height,
+ int interleaved)
+{
bool line_pointers_adjacent = true;
ulong size;
if (setup_height < 0 || setup_height > mdev->height)
return_error(gs_error_rangecheck);
- if (mdev->bitmap_memory != 0) {
+ if (mdev->bitmap_memory != NULL) {
int align;
/* Allocate the data now. */
if (gdev_mem_bitmap_size(mdev, &size) < 0)
@@ -451,7 +458,7 @@ gdev_mem_open_scan_lines(gx_device_memory *mdev, int setup_height)
return_error(gs_error_limitcheck);
mdev->base = gs_alloc_bytes(mdev->bitmap_memory, (uint)size,
"mem_open");
- if (mdev->base == 0)
+ if (mdev->base == NULL)
return_error(gs_error_VMerror);
#ifdef PACIFY_VALGRIND
/* If we end up writing the bitmap to the clist, we can get valgrind errors
@@ -463,14 +470,14 @@ gdev_mem_open_scan_lines(gx_device_memory *mdev, int setup_height)
align = 1<<mdev->log2_align_mod;
mdev->base += (-(int)(intptr_t)mdev->base) & (align-1);
mdev->foreign_bits = false;
- } else if (mdev->line_pointer_memory != 0) {
+ } else if (mdev->line_pointer_memory != NULL) {
/* Allocate the line pointers now. */
mdev->line_ptrs = (byte **)
gs_alloc_byte_array(mdev->line_pointer_memory, mdev->height,
sizeof(byte *) * (mdev->is_planar ? mdev->color_info.num_components : 1),
"gdev_mem_open_scan_lines");
- if (mdev->line_ptrs == 0)
+ if (mdev->line_ptrs == NULL)
return_error(gs_error_VMerror);
mdev->foreign_line_pointers = false;
line_pointers_adjacent = false;
@@ -478,7 +485,7 @@ gdev_mem_open_scan_lines(gx_device_memory *mdev, int setup_height)
if (line_pointers_adjacent) {
int code;
- if (mdev->base == 0)
+ if (mdev->base == NULL)
return_error(gs_error_rangecheck);
code = gdev_mem_bits_size(mdev, mdev->width, mdev->height, &size);
@@ -488,7 +495,9 @@ gdev_mem_open_scan_lines(gx_device_memory *mdev, int setup_height)
mdev->line_ptrs = (byte **)(mdev->base + size);
}
mdev->raster = gx_device_raster((gx_device *)mdev, 1);
- return gdev_mem_set_line_ptrs(mdev, NULL, 0, NULL, setup_height);
+ return gdev_mem_set_line_ptrs_interleaved(mdev, NULL, 0, NULL,
+ setup_height,
+ interleaved);
}
/*
* Set up the scan line pointers of a memory device.
@@ -497,13 +506,21 @@ gdev_mem_open_scan_lines(gx_device_memory *mdev, int setup_height)
* num_planes, plane_depths, plane_depth.
*/
int
-gdev_mem_set_line_ptrs(gx_device_memory * mdev, byte * base, int raster,
+gdev_mem_set_line_ptrs(gx_device_memory *mdev, byte *base, int raster,
byte **line_ptrs, int setup_height)
{
+ return gdev_mem_set_line_ptrs_interleaved(mdev, base, raster, line_ptrs, setup_height, 0);
+}
+int
+gdev_mem_set_line_ptrs_interleaved(gx_device_memory * mdev, byte * base,
+ int raster, byte **line_ptrs,
+ int setup_height, int interleaved)
+{
int num_planes = (mdev->is_planar ? mdev->color_info.num_components : 0);
byte **pline;
byte *data;
int pi;
+ int plane_raster;
/* If we are supplied with line_ptrs, then assume that we don't have
* any already, and take them on. */
@@ -539,6 +556,10 @@ gdev_mem_set_line_ptrs(gx_device_memory * mdev, byte * base, int raster,
num_planes = 1;
}
+ if (interleaved)
+ plane_raster = raster, raster *= num_planes;
+ else
+ plane_raster = raster * mdev->height;
for (pi = 0; pi < num_planes; ++pi) {
byte **pptr = pline;
byte **pend = pptr + setup_height;
@@ -548,7 +569,7 @@ gdev_mem_set_line_ptrs(gx_device_memory * mdev, byte * base, int raster,
*pptr++ = scan_line;
scan_line += raster;
}
- data += raster * mdev->height;
+ data += plane_raster;
pline += setup_height; /* not mdev->height, see gxdevmem.h */
}
@@ -610,7 +631,7 @@ mem_get_bits_rectangle(gx_device * dev, const gs_int_rect * prect,
GB_PACKING_CHUNKY | GB_COLORS_NATIVE | GB_ALPHA_NONE;
return_error(gs_error_rangecheck);
}
- if (mdev->line_ptrs == 0x00)
+ if (mdev->line_ptrs == NULL)
return_error(gs_error_rangecheck);
if ((w <= 0) | (h <= 0)) {
if ((w | h) < 0)
@@ -678,10 +699,10 @@ mem_swap_byte_rect(byte * base, uint raster, int x, int w, int h, bool store)
bits32 *pw = (bits32 *) row;
do {
- bits32 w = *pw;
+ bits32 v = *pw;
- *pw++ = (w >> 24) + ((w >> 8) & 0xff00) +
- ((w & 0xff00) << 8) + (w << 24);
+ *pw++ = (v >> 24) + ((v >> 8) & 0xff00) +
+ ((v & 0xff00) << 8) + (v << 24);
}
while (--nx);
}
@@ -715,7 +736,7 @@ mem_word_get_bits_rectangle(gx_device * dev, const gs_int_rect * prect,
bit_x = x * dev->color_info.depth;
bit_w = w * dev->color_info.depth;
- if(mdev->line_ptrs == 0x00)
+ if(mdev->line_ptrs == NULL)
return_error(gs_error_rangecheck);
src = scan_line_base(mdev, y);
diff --git a/base/gdevmem.h b/base/gdevmem.h
index 69cb6d0f..15759322 100644
--- a/base/gdevmem.h
+++ b/base/gdevmem.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gdevmpla.c b/base/gdevmpla.c
index ae805f4e..d889efcf 100644
--- a/base/gdevmpla.c
+++ b/base/gdevmpla.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -29,6 +29,7 @@
/* procedures */
static dev_proc_open_device(mem_planar_open);
+static dev_proc_open_device(mem_planar_open_interleaved);
declare_mem_procs(mem_planar_copy_mono, mem_planar_copy_color, mem_planar_fill_rectangle);
static dev_proc_copy_color(mem_planar_copy_color_24to8);
static dev_proc_copy_color(mem_planar_copy_color_4to1);
@@ -48,7 +49,8 @@ mem_planar_dev_spec_op(gx_device *pdev, int dev_spec_op,
{
cmm_dev_profile_t *dev_profile;
- if (dev_spec_op == gxdso_supports_devn) {
+ if (dev_spec_op == gxdso_supports_devn
+ || dev_spec_op == gxdso_skip_icc_component_validation) {
dev_proc(pdev, get_profile)(pdev, &dev_profile);
if (dev_profile != NULL && dev_profile->supports_devn &&
dev_proc(pdev, fill_rectangle_hl_color) == mem_planar_fill_rectangle_hl_color)
@@ -80,6 +82,14 @@ int
gdev_mem_set_planar(gx_device_memory * mdev, int num_planes,
const gx_render_plane_t *planes /*[num_planes]*/)
{
+ return gdev_mem_set_planar_interleaved(mdev, num_planes, planes, 0);
+}
+
+int
+gdev_mem_set_planar_interleaved(gx_device_memory * mdev, int num_planes,
+ const gx_render_plane_t *planes /*[num_planes]*/,
+ int interleaved)
+{
int total_depth;
int same_depth = planes[0].depth;
gx_color_index covered = 0;
@@ -114,7 +124,10 @@ gdev_mem_set_planar(gx_device_memory * mdev, int num_planes,
memcpy(mdev->planes, planes, num_planes * sizeof(planes[0]));
mdev->plane_depth = same_depth;
/* Change the drawing procedures. */
- set_dev_proc(mdev, open_device, mem_planar_open);
+ if (interleaved)
+ set_dev_proc(mdev, open_device, mem_planar_open_interleaved);
+ else
+ set_dev_proc(mdev, open_device, mem_planar_open);
/* Regardless of how many planes we are using, always let the
* device know how to handle hl_color. Even if we spot that we
* can get away with a normal device, our callers may want to
@@ -182,6 +195,17 @@ mem_planar_open(gx_device * dev)
return gdev_mem_open_scan_lines(mdev, dev->height);
}
+static int
+mem_planar_open_interleaved(gx_device * dev)
+{
+ gx_device_memory *const mdev = (gx_device_memory *)dev;
+
+ /* Check that we aren't trying to open a chunky device as planar. */
+ if (!dev->is_planar)
+ return_error(gs_error_rangecheck);
+ return gdev_mem_open_scan_lines_interleaved(mdev, dev->height, 1);
+}
+
/*
* We execute drawing operations by patching a few parameters in the
* device structure and then calling the procedure appropriate to the
@@ -2110,6 +2134,7 @@ mem_planar_get_bits_rectangle(gx_device * dev, const gs_int_rect * prect,
/* First off, see if we can satisfy get_bits_rectangle with just returning
* pointers to the existing data. */
+ if (params->options & GB_RETURN_POINTER)
{
gs_get_bits_params_t copy_params;
byte **base = &scan_line_base(mdev, y);
@@ -2165,6 +2190,57 @@ mem_planar_get_bits_rectangle(gx_device * dev, const gs_int_rect * prect,
}
}
}
+
+ if ((params->options & GB_RETURN_POINTER) == 0) {
+ /* Can we do the fetch using a faked GB_RETURN_POINTER request
+ * and then copy the data? */
+ gs_get_bits_params_t params2 = *params;
+ gs_get_bits_params_t copy_params;
+ byte **base = &scan_line_base(mdev, y);
+ int code;
+
+ params2.options &= ~GB_RETURN_COPY;
+ params2.options |= GB_RETURN_POINTER;
+
+ copy_params.options =
+ GB_COLORS_NATIVE | GB_PACKING_PLANAR | GB_ALPHA_NONE |
+ (mdev->raster ==
+ bitmap_raster(mdev->width * mdev->color_info.depth) ?
+ GB_RASTER_STANDARD : GB_RASTER_SPECIFIED);
+ params2.raster = mdev->raster;
+ copy_params.raster = mdev->raster;
+ code = gx_get_bits_return_pointer(dev, x, h, &params2,
+ &copy_params, base);
+ if (code >= 0) {
+ /* get_bits worked. Let's copy the data out. */
+ int bpc = mdev->color_info.depth / mdev->color_info.num_components;
+ int left = x;
+ int right = x+w;
+ int i, j;
+ switch (bpc) {
+ case 1: left >>= 3; right = (right+7)>>3; break;
+ case 2: left >>= 2; right = (right+3)>>2; break;
+ case 4: left >>= 1; right = (right+1)>>1; break;
+ case 8: break;
+ case 12: left = (left&~1); left += left>>1;
+ right = right+(right>>1)+(right&1); break;
+ case 16: left *= 2; right *= 2; break;
+ default: return_error(gs_error_rangecheck);
+ }
+ right -= left;
+ for (i = 0; i < mdev->color_info.num_components; i++) {
+ byte *d = params->data[i];
+ const byte *s = params2.data[i];
+ for (j = 0; j < h; j++) {
+ memcpy(d, s, right);
+ d += params->raster;
+ s += params2.raster;
+ }
+ }
+ return code;
+ }
+ }
+
/*
* We can't return the requested plane by itself. Fall back to
* chunky format. This is somewhat painful.
diff --git a/base/gdevmpla.h b/base/gdevmpla.h
index 06d83f56..1b424098 100644
--- a/base/gdevmpla.h
+++ b/base/gdevmpla.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -44,4 +44,9 @@
int gdev_mem_set_planar(gx_device_memory * mdev, int num_planes,
const gx_render_plane_t *planes /*[num_planes]*/);
+int gdev_mem_set_planar_interleaved(
+ gx_device_memory * mdev, int num_planes,
+ const gx_render_plane_t *planes /*[num_planes]*/,
+ int interleaved);
+
#endif /* gdevmpla_INCLUDED */
diff --git a/base/gdevmplt.c b/base/gdevmplt.c
index c102639f..520b22cf 100644
--- a/base/gdevmplt.c
+++ b/base/gdevmplt.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gdevmplt.h b/base/gdevmplt.h
index d314afc7..4b1b44cd 100644
--- a/base/gdevmplt.h
+++ b/base/gdevmplt.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gdevmr1.c b/base/gdevmr1.c
index ec21e1aa..2911f4f3 100644
--- a/base/gdevmr1.c
+++ b/base/gdevmr1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gdevmr2n.c b/base/gdevmr2n.c
index db802c7b..228f29dd 100644
--- a/base/gdevmr2n.c
+++ b/base/gdevmr2n.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gdevmr8n.c b/base/gdevmr8n.c
index 89bbb61f..055e79cc 100644
--- a/base/gdevmr8n.c
+++ b/base/gdevmr8n.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gdevmrop.h b/base/gdevmrop.h
index 2c7a382b..6caebdf6 100644
--- a/base/gdevmrop.h
+++ b/base/gdevmrop.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gdevmrun.c b/base/gdevmrun.c
index 40d61741..df1667e2 100644
--- a/base/gdevmrun.c
+++ b/base/gdevmrun.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gdevmrun.h b/base/gdevmrun.h
index c808258e..b9cf0e54 100644
--- a/base/gdevmrun.h
+++ b/base/gdevmrun.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gdevmx.c b/base/gdevmx.c
index 60a0f7c7..ee8c6396 100644
--- a/base/gdevmx.c
+++ b/base/gdevmx.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gdevnfwd.c b/base/gdevnfwd.c
index 4174c957..b81ff0e1 100644
--- a/base/gdevnfwd.c
+++ b/base/gdevnfwd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -1084,6 +1084,7 @@ static dev_proc_strip_copy_rop(null_strip_copy_rop);
static dev_proc_strip_copy_rop2(null_strip_copy_rop2);
static dev_proc_strip_tile_rect_devn(null_strip_tile_rect_devn);
static dev_proc_fill_rectangle_hl_color(null_fill_rectangle_hl_color);
+static dev_proc_dev_spec_op(null_spec_op);
#define null_procs(get_initial_matrix, get_page_device) {\
gx_default_open_device,\
@@ -1151,7 +1152,7 @@ static dev_proc_fill_rectangle_hl_color(null_fill_rectangle_hl_color);
NULL, /* push_transparency_state */\
NULL, /* pop_transparency_state */\
NULL, /* put_image */\
- gx_default_dev_spec_op, /* dev_spec_op */\
+ null_spec_op, /* dev_spec_op */\
NULL, /* copy_planes */\
NULL, /* get_profile */\
NULL, /* set_graphics_type_tag */\
@@ -1222,11 +1223,19 @@ null_copy_color(gx_device * dev, const byte * data,
static int
null_put_params(gx_device * dev, gs_param_list * plist)
{
+ int code;
+ cmm_dev_profile_t *iccs = dev->icc_struct;
+
/*
* If this is not a page device, we must defeat attempts to reset
* the size; otherwise this is equivalent to gx_forward_put_params.
+ * Equally, we don't want it to unexpectectly error out on certain
+ * ICC parameters - so defeat those, too.
*/
- int code = gx_forward_put_params(dev, plist);
+ dev->icc_struct = NULL;
+ code = gx_forward_put_params(dev, plist);
+ rc_decrement(dev->icc_struct, "null_put_params");
+ dev->icc_struct = iccs;
if (code < 0 || dev_proc(dev, get_page_device)(dev) == dev)
return code;
@@ -1346,6 +1355,18 @@ static int null_fill_rectangle_hl_color(gx_device *pdev,
return 0;
}
+static int
+null_spec_op(gx_device *pdev, int dev_spec_op, void *data, int size)
+{
+ /* Defeat the ICC profile components check, which we want to do since
+ we also short-circuit ICC device parameters - see null_put_params.
+ */
+ if (dev_spec_op == gxdso_skip_icc_component_validation) {
+ return 1;
+ }
+ return gx_default_dev_spec_op(pdev, dev_spec_op, data, size);
+}
+
bool
fwd_uses_fwd_cmap_procs(gx_device * dev)
{
@@ -1385,7 +1406,7 @@ static void do_device_dump(gx_device *dev, int n)
dmlprintf(dev->memory, "NULL\n");
return;
}
- dmlprintf3(dev->memory, "%p(%ld) = '%s'\n", dev, dev->rc.ref_count, dev->dname);
+ dmlprintf3(dev->memory, PRI_INTPTR"(%ld) = '%s'\n", (intptr_t)dev, dev->rc.ref_count, dev->dname);
data.n = 0;
do {
diff --git a/base/gdevoflt.c b/base/gdevoflt.c
index a8962e7c..a481e0b6 100644
--- a/base/gdevoflt.c
+++ b/base/gdevoflt.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gdevoflt.h b/base/gdevoflt.h
index 6e26746f..d1a9581d 100644
--- a/base/gdevoflt.h
+++ b/base/gdevoflt.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gdevp14.c b/base/gdevp14.c
index 2d11caea..0ac027f2 100644
--- a/base/gdevp14.c
+++ b/base/gdevp14.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -135,13 +135,13 @@ static void pdf14_debug_mask_stack_state(pdf14_ctx *ctx);
gs_private_st_ptrs7(st_pdf14_buf, pdf14_buf, "pdf14_buf",
pdf14_buf_enum_ptrs, pdf14_buf_reloc_ptrs,
saved, data, backdrop, transfer_fn, mask_stack,
- matte, parent_color_info);
+ matte, group_color_info);
-gs_private_st_ptrs2(st_pdf14_ctx, pdf14_ctx, "pdf14_ctx",
+gs_private_st_ptrs3(st_pdf14_ctx, pdf14_ctx, "pdf14_ctx",
pdf14_ctx_enum_ptrs, pdf14_ctx_reloc_ptrs,
- stack, mask_stack);
+ stack, mask_stack, base_color);
-gs_private_st_ptrs1(st_pdf14_clr, pdf14_parent_color_t, "pdf14_clr",
+gs_private_st_ptrs1(st_pdf14_clr, pdf14_group_color_t, "pdf14_clr",
pdf14_clr_enum_ptrs, pdf14_clr_reloc_ptrs, previous);
gs_private_st_ptrs2(st_pdf14_mask, pdf14_mask_t, "pdf_mask",
@@ -341,23 +341,21 @@ static int pdf14_cmykspot_put_image(gx_device * dev, gs_gstate * pgs,
static int pdf14_custom_put_image(gx_device * dev, gs_gstate * pgs,
gx_device * target);
-/* Used to alter device color mapping procs based upon group or softmask color space */
-static int pdf14_update_device_color_procs(gx_device *dev,
+/* Alter pdf14 device color model based upon group or softmask. This occurs
+ post clist or in immediate rendering case. Data stored with buffer */
+static pdf14_group_color_t* pdf14_push_color_model(gx_device *dev,
gs_transparency_color_t group_color, int64_t icc_hashcode,
- gs_gstate *pgs, cmm_profile_t *iccprofile, bool is_mask);
+ cmm_profile_t *iccprofile, bool is_mask);
+static void pdf14_pop_color_model(gx_device* dev, pdf14_group_color_t* group_color);
-/* Used to alter device color mapping procs based upon group or softmask color space */
-/* Uses color procs stack so that it can be used with clist writer */
-static int
-pdf14_update_device_color_procs_push_c(gx_device *dev,
- gs_transparency_color_t group_color, int64_t icc_hashcode,
- gs_gstate *pgs, cmm_profile_t *iccprofile, bool is_mask);
-
-static int
-pdf14_update_device_color_procs_pop_c(gx_device *dev,gs_gstate *pgs);
+/* Alter clist writer device color model based upon group or softmask. Data
+ stored in the device color model stack */
+static int pdf14_clist_push_color_model(gx_device* dev, gx_device* cdev, gs_gstate* pgs,
+ const gs_pdf14trans_t* pdf14pct, gs_memory_t* mem, bool is_mask);
+static int pdf14_clist_pop_color_model(gx_device* dev, gs_gstate* pgs);
-static void pdf14_push_parent_color(gx_device *dev, const gs_gstate *pgs);
-static void pdf14_pop_parent_color(gx_device *dev, const gs_gstate *pgs);
+/* Used for cleaning up the stack if things go wrong */
+static void pdf14_pop_group_color(gx_device *dev, const gs_gstate *pgs);
static const pdf14_procs_t gray_pdf14_procs = {
pdf14_unpack_additive,
@@ -775,7 +773,7 @@ ENUM_PTRS_WITH(pdf14_device_enum_ptrs, pdf14_device *pdev)
return 0;
}
case 0: return ENUM_OBJ(pdev->ctx);
-case 1: return ENUM_OBJ(pdev->trans_group_parent_cmap_procs);
+case 1: return ENUM_OBJ(pdev->color_model_stack);
case 2: return ENUM_OBJ(pdev->smaskcolor);
case 3: ENUM_RETURN(gx_device_enum_ptr(pdev->target));
case 4: ENUM_RETURN(gx_device_enum_ptr(pdev->pclist_device));
@@ -792,7 +790,7 @@ static RELOC_PTRS_WITH(pdf14_device_reloc_ptrs, pdf14_device *pdev)
}
RELOC_VAR(pdev->ctx);
RELOC_VAR(pdev->smaskcolor);
- RELOC_VAR(pdev->trans_group_parent_cmap_procs);
+ RELOC_VAR(pdev->color_model_stack);
pdev->target = gx_device_reloc_ptr(pdev->target, gcst);
pdev->pclist_device = gx_device_reloc_ptr(pdev->pclist_device, gcst);
}
@@ -889,12 +887,13 @@ resolve_matte(pdf14_buf *maskbuf, byte *src_data, int src_planestride, int src_r
need to do the offset to our data in the buffer. Bug 700686: If we are in
a softmask that includes a matte entry, then we need to undo the matte
entry here at this time in the image's native color space not the parent
- color space. */
+ color space. The big_endian term here is only set to true if the data
+ has been baked as such during the put_image blending operation. */
static forceinline pdf14_buf*
template_transform_color_buffer(gs_gstate *pgs, pdf14_ctx *ctx, gx_device *dev,
pdf14_buf *src_buf, byte *src_data, cmm_profile_t *src_profile,
cmm_profile_t *des_profile, int x0, int y0, int width, int height, bool *did_alloc,
- bool has_matte, bool deep)
+ bool has_matte, bool deep, bool big_endian)
{
gsicc_rendering_param_t rendering_params;
gsicc_link_t *icc_link;
@@ -943,8 +942,9 @@ template_transform_color_buffer(gs_gstate *pgs, pdf14_ctx *ctx, gx_device *dev,
des_planestride = height * des_rowstride;
des_n_planes = src_n_planes + diff;
des_n_chan = src_n_chan + diff;
- des_data = gs_alloc_bytes(ctx->memory, des_planestride * des_n_planes,
- "pdf14_transform_color_buffer");
+ des_data = gs_alloc_bytes(ctx->memory,
+ (size_t)des_planestride * des_n_planes,
+ "pdf14_transform_color_buffer");
if (des_data == NULL)
return NULL;
@@ -970,6 +970,11 @@ template_transform_color_buffer(gs_gstate *pgs, pdf14_ctx *ctx, gx_device *dev,
gsicc_init_buffer(&des_buff_desc, des_profile->num_comps, 1<<deep, false,
false, true, des_planestride, des_rowstride, height, width);
+ if (big_endian) {
+ src_buff_desc.little_endian = false;
+ des_buff_desc.little_endian = false;
+ }
+
/* If we have a matte entry, undo the pre-blending now. Also set pdf14
context to ensure that this is not done again during the group
composition */
@@ -1040,28 +1045,28 @@ static pdf14_buf*
pdf14_transform_color_buffer_no_matte(gs_gstate *pgs, pdf14_ctx *ctx, gx_device *dev,
pdf14_buf *src_buf, byte *src_data, cmm_profile_t *src_profile,
cmm_profile_t *des_profile, int x0, int y0, int width, int height, bool *did_alloc,
- bool deep)
+ bool deep, bool big_endian)
{
if (deep)
return template_transform_color_buffer(pgs, ctx, dev, src_buf, src_data, src_profile,
- des_profile, x0, y0, width, height, did_alloc, false, true);
+ des_profile, x0, y0, width, height, did_alloc, false, true, big_endian);
else
return template_transform_color_buffer(pgs, ctx, dev, src_buf, src_data, src_profile,
- des_profile, x0, y0, width, height, did_alloc, false, false);
+ des_profile, x0, y0, width, height, did_alloc, false, false, big_endian);
}
static pdf14_buf*
pdf14_transform_color_buffer_with_matte(gs_gstate *pgs, pdf14_ctx *ctx, gx_device *dev,
pdf14_buf *src_buf, byte *src_data, cmm_profile_t *src_profile,
cmm_profile_t *des_profile, int x0, int y0, int width, int height, bool *did_alloc,
- bool deep)
+ bool deep, bool big_endian)
{
if (deep)
return template_transform_color_buffer(pgs, ctx, dev, src_buf, src_data, src_profile,
- des_profile, x0, y0, width, height, did_alloc, true, true);
+ des_profile, x0, y0, width, height, did_alloc, true, true, big_endian);
else
return template_transform_color_buffer(pgs, ctx, dev, src_buf, src_data, src_profile,
- des_profile, x0, y0, width, height, did_alloc, true, false);
+ des_profile, x0, y0, width, height, did_alloc, true, false, big_endian);
}
/**
@@ -1082,7 +1087,6 @@ pdf14_buf_new(gs_int_rect *rect, bool has_tags, bool has_alpha_g,
/* yet another plane */
pdf14_buf *result;
- pdf14_parent_color_t *new_parent_color;
int rowstride = ((rect->q.x - rect->p.x + 3) & -4)<<deep;
int height = (rect->q.y - rect->p.y);
int n_planes = n_chan + (has_shape ? 1 : 0) + (has_alpha_g ? 1 : 0) +
@@ -1120,21 +1124,9 @@ pdf14_buf_new(gs_int_rect *rect, bool has_tags, bool has_alpha_g,
result->num_spots = num_spots;
result->deep = deep;
result->page_group = false;
- new_parent_color = gs_alloc_struct(memory, pdf14_parent_color_t, &st_pdf14_clr,
- "pdf14_buf_new");
- if (new_parent_color == NULL) {
- gs_free_object(memory, result, "pdf14_buf_new");
- return NULL;
- }
+ result->group_color_info = NULL;
+ result->group_popped = false;
- result->parent_color_info = new_parent_color;
- result->parent_color_info->get_cmap_procs = NULL;
- result->parent_color_info->parent_color_mapping_procs = NULL;
- result->parent_color_info->parent_color_comp_index = NULL;
- result->parent_color_info->icc_profile = NULL;
- result->parent_color_info->previous = NULL;
- result->parent_color_info->encode = NULL;
- result->parent_color_info->decode = NULL;
if (idle || height <= 0) {
/* Empty clipping - will skip all drawings. */
result->planestride = 0;
@@ -1142,8 +1134,9 @@ pdf14_buf_new(gs_int_rect *rect, bool has_tags, bool has_alpha_g,
} else {
planestride = rowstride * height;
result->planestride = planestride;
- result->data = gs_alloc_bytes(memory, planestride * n_planes,
- "pdf14_buf_new");
+ result->data = gs_alloc_bytes(memory,
+ (size_t)planestride * n_planes,
+ "pdf14_buf_new");
if (result->data == NULL) {
gs_free_object(memory, result, "pdf14_buf_new");
return NULL;
@@ -1173,7 +1166,7 @@ pdf14_buf_new(gs_int_rect *rect, bool has_tags, bool has_alpha_g,
static void
pdf14_buf_free(pdf14_buf *buf)
{
- pdf14_parent_color_t *old_parent_color_info = buf->parent_color_info;
+ pdf14_group_color_t *group_color_info = buf->group_color_info;
gs_memory_t *memory = buf->memory;
if (buf->mask_stack && buf->mask_stack->rc_mask)
@@ -1184,13 +1177,13 @@ pdf14_buf_free(pdf14_buf *buf)
gs_free_object(memory, buf->matte, "pdf14_buf_free");
gs_free_object(memory, buf->data, "pdf14_buf_free");
- while (old_parent_color_info) {
- if (old_parent_color_info->icc_profile != NULL) {
- gsicc_adjust_profile_rc(old_parent_color_info->icc_profile, -1, "pdf14_buf_free");
+ while (group_color_info) {
+ if (group_color_info->icc_profile != NULL) {
+ gsicc_adjust_profile_rc(group_color_info->icc_profile, -1, "pdf14_buf_free");
}
- buf->parent_color_info = old_parent_color_info->previous;
- gs_free_object(memory, old_parent_color_info, "pdf14_buf_free");
- old_parent_color_info = buf->parent_color_info;
+ buf->group_color_info = group_color_info->previous;
+ gs_free_object(memory, group_color_info, "pdf14_buf_free");
+ group_color_info = buf->group_color_info;
}
gs_free_object(memory, buf->backdrop, "pdf14_buf_free");
@@ -1216,63 +1209,31 @@ pdf14_rcmask_new(gs_memory_t *memory)
result = gs_alloc_struct(memory, pdf14_rcmask_t, &st_pdf14_rcmask,
"pdf14_maskbuf_new");
- if ( result == NULL )
- return(NULL);
+ if (result == NULL)
+ return NULL;
rc_init_free(result, memory, 1, rc_pdf14_maskbuf_free);
result->mask_buf = NULL;
result->memory = memory;
- return(result);
+ return result;
}
static pdf14_ctx *
-pdf14_ctx_new(gs_int_rect *rect, int n_chan, bool additive, gx_device *dev, bool deep)
+pdf14_ctx_new(gx_device *dev, bool deep)
{
pdf14_ctx *result;
- pdf14_buf *buf;
gs_memory_t *memory = dev->memory->stable_memory;
- bool has_tags = device_encodes_tags(dev);
- pdf14_device *pdev = (pdf14_device *)dev;
- int num_spots;
-
+
result = gs_alloc_struct(memory, pdf14_ctx, &st_pdf14_ctx, "pdf14_ctx_new");
if (result == NULL)
return result;
- /* Note: buffer creation expects alpha to be in number of channels */
- /* Old code here used num_spots = pdev->devn_params.page_spot_colors,
- * but this fails for devices like psdcmykog, which does not expand
- * to take on new spot colors, over and above the 2 it has built in.
- * Accordingly, we calculate the number of spot colors to be the
- * number of channels we've been asked for, less the number of
- * 'standard' colorants. */
- num_spots = n_chan - pdev->num_std_colorants;
- buf = pdf14_buf_new(rect, has_tags, false, false, false, n_chan + 1,
- num_spots, memory, deep);
- if (buf == NULL) {
- gs_free_object(memory, result, "pdf14_ctx_new");
- return NULL;
- }
- if_debug5m('v', memory,
- "[v]base buf: %d x %d, %d color channels, %d planes, deep=%d\n",
- buf->rect.q.x, buf->rect.q.y, buf->n_chan, buf->n_planes, deep);
- if (buf->data != NULL) {
- /* Memsetting by 0, so this copes with the deep case too */
- if (buf->has_tags) {
- memset(buf->data, 0, buf->planestride * (buf->n_planes-1));
- } else {
- memset(buf->data, 0, buf->planestride * buf->n_planes);
- }
- }
- buf->saved = NULL;
- result->stack = buf;
+ result->stack = NULL;
result->mask_stack = pdf14_mask_element_new(memory);
result->mask_stack->rc_mask = pdf14_rcmask_new(memory);
- result->n_chan = n_chan;
result->memory = memory;
- result->rect = *rect;
- result->additive = additive;
result->smask_depth = 0;
result->smask_blend = false;
result->deep = deep;
+ result->base_color = NULL;
return result;
}
@@ -1281,10 +1242,14 @@ pdf14_ctx_free(pdf14_ctx *ctx)
{
pdf14_buf *buf, *next;
+ if (ctx->base_color) {
+ gsicc_adjust_profile_rc(ctx->base_color->icc_profile, -1, "pdf14_ctx_free");
+ gs_free_object(ctx->memory, ctx->base_color, "pdf14_ctx_free");
+ }
if (ctx->mask_stack) {
/* A mask was created but was not used in this band. */
rc_decrement(ctx->mask_stack->rc_mask, "pdf14_ctx_free");
- gs_free_object(ctx->memory,ctx->mask_stack,"pdf14_ctx_free");
+ gs_free_object(ctx->memory, ctx->mask_stack, "pdf14_ctx_free");
}
for (buf = ctx->stack; buf != NULL; buf = next) {
next = buf->saved;
@@ -1333,44 +1298,184 @@ pdf14_find_backdrop_buf(pdf14_ctx *ctx, bool *is_backdrop)
return NULL;
}
+static pdf14_group_color_t*
+pdf14_make_base_group_color(gx_device* dev)
+{
+ pdf14_device* pdev = (pdf14_device*)dev;
+ pdf14_group_color_t* group_color;
+ bool deep = pdev->ctx->deep;
+
+ if_debug0m('v', dev->memory, "[v]pdf14_make_base_group_color\n");
+
+ group_color = gs_alloc_struct(pdev->ctx->memory,
+ pdf14_group_color_t, &st_pdf14_clr,
+ "pdf14_make_base_group_color");
+
+ if (group_color == NULL)
+ return NULL;
+ memset(group_color, 0, sizeof(pdf14_group_color_t));
+
+ group_color->blend_procs = pdev->blend_procs;
+ group_color->polarity = pdev->color_info.polarity;
+ group_color->num_components = pdev->color_info.num_components;
+ group_color->isadditive = pdev->ctx->additive;
+ group_color->unpack_procs = pdev->pdf14_procs;
+ group_color->max_color = pdev->color_info.max_color = deep ? 65535 : 255;
+ group_color->max_gray = pdev->color_info.max_gray = deep ? 65535 : 255;
+ group_color->depth = pdev->color_info.depth;
+ group_color->decode = dev_proc(pdev, decode_color);
+ group_color->encode = dev_proc(pdev, encode_color);
+ group_color->group_color_mapping_procs = dev_proc(pdev, get_color_mapping_procs);
+ group_color->group_color_comp_index = dev_proc(pdev, get_color_comp_index);
+ memcpy(&(group_color->comp_bits), &(pdev->color_info.comp_bits),
+ GX_DEVICE_COLOR_MAX_COMPONENTS);
+ memcpy(&(group_color->comp_shift), &(pdev->color_info.comp_shift),
+ GX_DEVICE_COLOR_MAX_COMPONENTS);
+ group_color->get_cmap_procs = pdf14_get_cmap_procs;
+ group_color->icc_profile =
+ pdev->icc_struct->device_profile[GS_DEFAULT_DEVICE_PROFILE];
+ gsicc_adjust_profile_rc(group_color->icc_profile, 1, "pdf14_make_base_group_color");
+
+ return group_color;
+}
+
+/* This wil create the first buffer when we have
+ either the first drawing operation or transparency
+ group push. At that time, the color space in which
+ we are going to be doing the alpha blend will be known. */
+static int
+pdf14_initialize_ctx(gx_device* dev, int n_chan, bool additive, const gs_gstate* pgs)
+{
+ pdf14_device* pdev = (pdf14_device*)dev;
+ bool has_tags = device_encodes_tags(dev);
+ int num_spots = pdev->ctx->num_spots;
+ pdf14_buf* buf;
+ gs_memory_t* memory = dev->memory->stable_memory;
+
+ /* Check for a blank idle group as a base group */
+ if (pdev->ctx->stack != NULL && pdev->ctx->stack->group_popped &&
+ pdev->ctx->stack->idle) {
+ pdf14_buf_free(pdev->ctx->stack);
+ pdev->ctx->stack = NULL;
+ }
+
+ if (pdev->ctx->stack != NULL)
+ return 0;
+
+ if_debug2m('v', dev->memory, "[v]pdf14_initialize_ctx: width = %d, height = %d\n",
+ dev->width, dev->height);
+
+ buf = pdf14_buf_new(&(pdev->ctx->rect), has_tags, false, false, false, n_chan + 1,
+ num_spots, memory, pdev->ctx->deep);
+ if (buf == NULL) {
+ return gs_error_VMerror;
+ }
+ if_debug5m('v', memory,
+ "[v]base buf: %d x %d, %d color channels, %d planes, deep=%d\n",
+ buf->rect.q.x, buf->rect.q.y, buf->n_chan, buf->n_planes, pdev->ctx->deep);
+
+ /* This check is not really needed */
+ if (buf->data != NULL) {
+ /* Memsetting by 0, so this copes with the deep case too */
+ if (buf->has_tags) {
+ memset(buf->data, 0, (size_t)buf->planestride * (buf->n_planes - 1));
+ }
+ else {
+ memset(buf->data, 0, (size_t)buf->planestride * buf->n_planes);
+ }
+ }
+ buf->saved = NULL;
+ pdev->ctx->stack = buf;
+ pdev->ctx->n_chan = n_chan;
+ pdev->ctx->additive = additive;
+
+ /* Every buffer needs group color information including the base
+ one that is created for when we have no group */
+ buf->group_color_info = gs_alloc_struct(pdev->memory->stable_memory,
+ pdf14_group_color_t, &st_pdf14_clr, "pdf14_initialize_ctx");
+ if (buf->group_color_info == NULL)
+ return gs_error_VMerror;
+
+ if (pgs != NULL)
+ buf->group_color_info->get_cmap_procs = pgs->get_cmap_procs;
+ else
+ buf->group_color_info->get_cmap_procs = pdf14_get_cmap_procs;
+
+ buf->group_color_info->group_color_mapping_procs =
+ dev_proc(pdev, get_color_mapping_procs);
+ buf->group_color_info->group_color_comp_index =
+ dev_proc(pdev, get_color_comp_index);
+ buf->group_color_info->blend_procs = pdev->blend_procs;
+ buf->group_color_info->polarity = pdev->color_info.polarity;
+ buf->group_color_info->num_components = pdev->color_info.num_components;
+ buf->group_color_info->isadditive = pdev->ctx->additive;
+ buf->group_color_info->unpack_procs = pdev->pdf14_procs;
+ buf->group_color_info->depth = pdev->color_info.depth;
+ buf->group_color_info->max_color = pdev->color_info.max_color;
+ buf->group_color_info->max_gray = pdev->color_info.max_gray;
+ buf->group_color_info->encode = dev_proc(pdev, encode_color);
+ buf->group_color_info->decode = dev_proc(pdev, decode_color);
+ memcpy(&(buf->group_color_info->comp_bits), &(pdev->color_info.comp_bits),
+ GX_DEVICE_COLOR_MAX_COMPONENTS);
+ memcpy(&(buf->group_color_info->comp_shift), &(pdev->color_info.comp_shift),
+ GX_DEVICE_COLOR_MAX_COMPONENTS);
+ buf->group_color_info->previous = NULL; /* used during clist writing */
+ buf->group_color_info->icc_profile =
+ pdev->icc_struct->device_profile[GS_DEFAULT_DEVICE_PROFILE];
+ if (buf->group_color_info->icc_profile != NULL)
+ gsicc_adjust_profile_rc(buf->group_color_info->icc_profile, 1, "pdf14_initialize_ctx");
+
+ return 0;
+}
+
+static pdf14_group_color_t*
+pdf14_clone_group_color_info(gx_device* pdev, pdf14_group_color_t* src)
+{
+ pdf14_group_color_t* des = gs_alloc_struct(pdev->memory->stable_memory,
+ pdf14_group_color_t, &st_pdf14_clr, "pdf14_clone_group_color_info");
+ if (des == NULL)
+ return NULL;
+
+ memcpy(des, src, sizeof(pdf14_group_color_t));
+ if (des->icc_profile != NULL)
+ gsicc_adjust_profile_rc(des->icc_profile, 1, "pdf14_clone_group_color_info");
+ des->previous = NULL; /* used during clist writing for state stack */
+
+ return des;
+}
+
static int
pdf14_push_transparency_group(pdf14_ctx *ctx, gs_int_rect *rect, bool isolated,
- bool knockout, uint16_t alpha, uint16_t shape,
+ bool knockout, uint16_t alpha, uint16_t shape, uint16_t opacity,
gs_blend_mode_t blend_mode, bool idle, uint mask_id,
- int numcomps, bool cm_back_drop,
- cmm_profile_t *group_profile,
- cmm_profile_t *tos_profile, gs_gstate *pgs,
+ int numcomps, bool cm_back_drop, bool shade_group,
+ cmm_profile_t *group_profile, cmm_profile_t *tos_profile,
+ pdf14_group_color_t* group_color, gs_gstate *pgs,
gx_device *dev)
{
pdf14_buf *tos = ctx->stack;
pdf14_buf *buf, * pdf14_backdrop;
- bool has_shape, has_tags, is_backdrop;
+ bool has_shape = false;
+ bool is_backdrop;
+ int num_spots;
if_debug1m('v', ctx->memory,
"[v]pdf14_push_transparency_group, idle = %d\n", idle);
- /* We are going to use the shape in the knockout computation. If previous
- buffer has a shape or if this is a knockout then we will have a shape here */
- has_shape = tos->has_shape || tos->knockout;
- /* If previous buffer has tags, then add tags here */
- has_tags = tos->has_tags;
+ if (tos != NULL)
+ has_shape = tos->has_shape || tos->knockout;
- /* If the group is NOT isolated we add in the alpha_g plane. This enables
- recompositing to be performed ala art_pdf_recomposite_group_8 so that
- the backdrop is only included one time in the computation.
+ if (ctx->smask_depth > 0)
+ num_spots = 0;
+ else
+ num_spots = ctx->num_spots;
- For shape and alpha, backdrop removal is accomplished by maintaining
- two sets of variables to hold the accumulated values. The group shape
- and alpha, f_g and alpha_g, accumulate only the shape and alpha of the group
- elements, excluding the group backdrop.
- */
- /* Order of buffer data is color data, followed by alpha channel, followed by
- shape (if present), then alpha_g (if present), then tags (if present) */
- buf = pdf14_buf_new(rect, has_tags, !isolated, has_shape, idle, numcomps + 1,
- tos->num_spots, ctx->memory, ctx->deep);
+ buf = pdf14_buf_new(rect, ctx->has_tags, !isolated, has_shape, idle, numcomps + 1,
+ num_spots, ctx->memory, ctx->deep);
if (buf == NULL)
return_error(gs_error_VMerror);
+
if_debug4m('v', ctx->memory,
"[v]base buf: %d x %d, %d color channels, %d planes\n",
buf->rect.q.x, buf->rect.q.y, buf->n_chan, buf->n_planes);
@@ -1378,6 +1483,7 @@ pdf14_push_transparency_group(pdf14_ctx *ctx, gs_int_rect *rect, bool isolated,
buf->knockout = knockout;
buf->alpha = alpha;
buf->shape = shape;
+ buf->opacity = opacity;
buf->blend_mode = blend_mode;
buf->mask_id = mask_id;
buf->mask_stack = ctx->mask_stack; /* Save because the group rendering may
@@ -1385,8 +1491,9 @@ pdf14_push_transparency_group(pdf14_ctx *ctx, gs_int_rect *rect, bool isolated,
ctx->mask_stack = NULL; /* Clean the mask field for rendering this group.
See pdf14_pop_transparency_group how to handle it. */
buf->saved = tos;
+ buf->group_color_info = group_color;
- if (tos->saved == NULL)
+ if (tos == NULL)
buf->page_group = true;
ctx->stack = buf;
@@ -1400,9 +1507,10 @@ pdf14_push_transparency_group(pdf14_ctx *ctx, gs_int_rect *rect, bool isolated,
if (pdf14_backdrop == NULL || (is_backdrop && pdf14_backdrop->backdrop == NULL)) {
/* Note, don't clear out tags set by pdf14_buf_new == GS_UNKNOWN_TAG */
/* Memsetting by 0, so this copes with the deep case too */
- memset(buf->data, 0, buf->planestride * (buf->n_chan +
- (buf->has_shape ? 1 : 0) +
- (buf->has_alpha_g ? 1 : 0)));
+ memset(buf->data, 0, (size_t)buf->planestride *
+ (buf->n_chan +
+ (buf->has_shape ? 1 : 0) +
+ (buf->has_alpha_g ? 1 : 0)));
} else {
if (!cm_back_drop) {
pdf14_preserve_backdrop(buf, pdf14_backdrop, is_backdrop
@@ -1427,13 +1535,15 @@ pdf14_push_transparency_group(pdf14_ctx *ctx, gs_int_rect *rect, bool isolated,
need to blend with its backdrop. This could be NULL if the parent was
an isolated knockout group. */
if (buf->knockout && pdf14_backdrop != NULL) {
- buf->backdrop = gs_alloc_bytes(ctx->memory, buf->planestride * buf->n_planes,
- "pdf14_push_transparency_group");
+ buf->backdrop = gs_alloc_bytes(ctx->memory,
+ (size_t)buf->planestride * buf->n_planes,
+ "pdf14_push_transparency_group");
if (buf->backdrop == NULL) {
return gs_throw(gs_error_VMerror, "Knockout backdrop allocation failed");
}
- memcpy(buf->backdrop, buf->data, buf->planestride * buf->n_planes);
+ memcpy(buf->backdrop, buf->data,
+ (size_t)buf->planestride * buf->n_planes);
#if RAW_DUMP
/* Dump the current buffer to see what we have. */
@@ -1468,30 +1578,73 @@ pdf14_pop_transparency_group(gs_gstate *pgs, pdf14_ctx *ctx,
pdf14_buf *maskbuf;
int x0, x1, y0, y1;
int nos_num_color_comp;
- bool icc_match;
+ bool no_icc_match;
pdf14_device *pdev = (pdf14_device *)dev;
bool overprint = pdev->overprint;
gx_color_index drawn_comps = pdev->drawn_comps_stroke | pdev->drawn_comps_fill;
bool has_matte = false;
- if (nos == NULL)
- return_error(gs_error_unknownerror); /* Unmatched group pop */
-
- nos_num_color_comp = nos->parent_color_info->num_components - nos->num_spots;
- tos_num_color_comp = tos_num_color_comp - tos->num_spots;
-
#ifdef DEBUG
pdf14_debug_mask_stack_state(ctx);
#endif
if (mask_stack == NULL) {
maskbuf = NULL;
- } else {
+ }
+ else {
maskbuf = mask_stack->rc_mask->mask_buf;
}
if (maskbuf != NULL && maskbuf->matte != NULL)
has_matte = true;
+ /* Check if this is our last buffer, if yes, there is nothing to
+ compose to. Keep this buffer until we have the put image.
+ If we have another group push, this group must be destroyed.
+ This only occurs sometimes when at clist creation time
+ push_shfill_group occured and nothing was drawn in this group.
+ There is also the complication if we have a softmask. There
+ are two approaches to this problem. Apply the softmask during
+ the put image or handle it now. I choose the later as the
+ put_image code is already way to complicated. */
+ if (nos == NULL && maskbuf == NULL) {
+ tos->group_popped = true;
+ return 0;
+ }
+
+ /* Here is the case with the soft mask. Go ahead and create a new
+ target buffer (nos) with the same color information etc, but blank
+ and go ahead and do the blend with the softmask so that it gets applied. */
+ if (nos == NULL && maskbuf != NULL) {
+ nos = pdf14_buf_new(&(tos->rect), ctx->has_tags, !tos->isolated, tos->has_shape,
+ tos->idle, tos->n_chan, tos->num_spots, ctx->memory, ctx->deep);
+ if (nos == NULL)
+ return gs_error_VMerror;
+
+ if_debug4m('v', ctx->memory,
+ "[v] special buffer for softmask application: %d x %d, %d color channels, %d planes\n",
+ nos->rect.q.x, nos->rect.q.y, nos->n_chan, nos->n_planes);
+
+ nos->dirty = tos->dirty;
+ nos->isolated = tos->isolated;
+ nos->knockout = tos->knockout;
+ nos->alpha = 65535;
+ nos->shape = 65535;
+ nos->opacity = 65535;
+ nos->blend_mode = tos->blend_mode;
+ nos->mask_id = tos->mask_id;
+ nos->group_color_info = pdf14_clone_group_color_info(dev, tos->group_color_info);
+
+ if (nos->data != NULL)
+ memset(nos->data, 0,
+ (size_t)nos->planestride *
+ (nos->n_chan +
+ (nos->has_shape ? 1 : 0) +
+ (nos->has_alpha_g ? 1 : 0)));
+ }
+
+ nos_num_color_comp = nos->group_color_info->num_components - tos->num_spots;
+ tos_num_color_comp = tos_num_color_comp - tos->num_spots;
+
/* Sanitise the dirty rectangles, in case some of the drawing routines
* have made them overly large. */
rect_intersect(tos->dirty, tos->rect);
@@ -1539,32 +1692,32 @@ pdf14_pop_transparency_group(gs_gstate *pgs, pdf14_ctx *ctx,
operations called in the tile transparency code. Instead we may want to
look at pdf14_begin_transparency_group and pdf14_end_transparency group which
is where all the ICC information is handled. We will return to look at that later */
- if (nos->parent_color_info->icc_profile != NULL) {
- icc_match = (nos->parent_color_info->icc_profile->hashcode !=
+ if (nos->group_color_info->icc_profile != NULL) {
+ no_icc_match = (nos->group_color_info->icc_profile->hashcode !=
curr_icc_profile->hashcode);
} else {
/* Let the other tests make the decision if we need to transform */
- icc_match = false;
+ no_icc_match = false;
}
/* If the color spaces are different and we actually did do a swap of
the procs for color */
- if ((nos->parent_color_info->parent_color_mapping_procs != NULL &&
- nos_num_color_comp != tos_num_color_comp) || icc_match) {
+ if ((nos->group_color_info->group_color_mapping_procs != NULL &&
+ nos_num_color_comp != tos_num_color_comp) || no_icc_match) {
if (x0 < x1 && y0 < y1) {
pdf14_buf *result;
bool did_alloc; /* We don't care here */
if (has_matte) {
result = pdf14_transform_color_buffer_with_matte(pgs, ctx, dev,
- tos, tos->data, curr_icc_profile, nos->parent_color_info->icc_profile,
+ tos, tos->data, curr_icc_profile, nos->group_color_info->icc_profile,
tos->rect.p.x, tos->rect.p.y, tos->rect.q.x - tos->rect.p.x,
- tos->rect.q.y - tos->rect.p.y, &did_alloc, tos->deep);
+ tos->rect.q.y - tos->rect.p.y, &did_alloc, tos->deep, false);
has_matte = false;
} else {
result = pdf14_transform_color_buffer_no_matte(pgs, ctx, dev,
- tos, tos->data, curr_icc_profile, nos->parent_color_info->icc_profile,
+ tos, tos->data, curr_icc_profile, nos->group_color_info->icc_profile,
tos->rect.p.x, tos->rect.p.y, tos->rect.q.x - tos->rect.p.x,
- tos->rect.q.y - tos->rect.p.y, &did_alloc, tos->deep);
+ tos->rect.q.y - tos->rect.p.y, &did_alloc, tos->deep, false);
}
if (result == NULL)
return_error(gs_error_unknownerror); /* transform failed */
@@ -1580,8 +1733,8 @@ pdf14_pop_transparency_group(gs_gstate *pgs, pdf14_ctx *ctx,
#endif
/* compose. never do overprint in this case */
pdf14_compose_group(tos, nos, maskbuf, x0, x1, y0, y1, nos->n_chan,
- nos->parent_color_info->isadditive,
- nos->parent_color_info->parent_blending_procs,
+ nos->group_color_info->isadditive,
+ nos->group_color_info->blend_procs,
has_matte, false, drawn_comps, ctx->memory, dev);
}
} else {
@@ -1619,7 +1772,8 @@ pdf14_push_transparency_mask(pdf14_ctx *ctx, gs_int_rect *rect, uint16_t bg_alph
gs_transparency_mask_subtype_t subtype,
int numcomps, int Background_components,
const float Background[], int Matte_components,
- const float Matte[], const float GrayBackground)
+ const float Matte[], const float GrayBackground,
+ pdf14_group_color_t* group_color)
{
pdf14_buf *buf;
int i;
@@ -1629,13 +1783,17 @@ pdf14_push_transparency_mask(pdf14_ctx *ctx, gs_int_rect *rect, uint16_t bg_alph
idle, replacing);
ctx->smask_depth += 1;
+ if (ctx->stack == NULL) {
+ return_error(gs_error_VMerror);
+ }
+
/* An optimization to consider is that if the SubType is Alpha
then we really should only be allocating the alpha band and
only draw with that channel. Current architecture makes that
a bit tricky. We need to create this based upon the size of
the color space + an alpha channel. NOT the device size
or the previous ctx size */
- /* A mask doesnt worry about tags */
+ /* A mask doesn't worry about tags */
buf = pdf14_buf_new(rect, false, false, false, idle, numcomps + 1, 0,
ctx->memory, ctx->deep);
if (buf == NULL)
@@ -1649,6 +1807,8 @@ pdf14_push_transparency_mask(pdf14_ctx *ctx, gs_int_rect *rect, uint16_t bg_alph
buf->blend_mode = BLEND_MODE_Normal;
buf->transfer_fn = transfer_fn;
buf->matte_num_comps = Matte_components;
+ buf->group_color_info = group_color;
+
if (Matte_components) {
buf->matte = (uint16_t *)gs_alloc_bytes(ctx->memory, Matte_components * sizeof(uint16_t),
"pdf14_push_transparency_mask");
@@ -1683,7 +1843,7 @@ pdf14_push_transparency_mask(pdf14_ctx *ctx, gs_int_rect *rect, uint16_t bg_alph
/* Soft Mask related information so we know how to
compute luminosity when we pop the soft mask */
buf->SMask_SubType = subtype;
- if (buf->data != NULL){
+ if (buf->data != NULL) {
/* We need to initialize it to the BC if it existed */
/* According to the spec, the CS has to be the same */
/* If the back ground component is black, then don't bother
@@ -1706,11 +1866,11 @@ pdf14_push_transparency_mask(pdf14_ctx *ctx, gs_int_rect *rect, uint16_t bg_alph
need to set the alpha for this mask as if we had drawn in the
entire soft mask buffer */
memset(buf->data + buf->planestride, 255,
- buf->planestride *(buf->n_chan - 1));
+ (size_t)buf->planestride * (buf->n_chan - 1));
}
} else {
/* Compose mask with opaque background */
- memset(buf->data, 0, buf->planestride * buf->n_chan);
+ memset(buf->data, 0, (size_t)buf->planestride * buf->n_chan);
}
}
return 0;
@@ -1738,10 +1898,11 @@ static void pdf14_free_mask_stack(pdf14_ctx *ctx, gs_memory_t *memory)
static int
pdf14_pop_transparency_mask(pdf14_ctx *ctx, gs_gstate *pgs, gx_device *dev)
{
- pdf14_buf *tos = ctx->stack;
+ pdf14_buf* tos = ctx->stack;
+ pdf14_buf* nos = tos->saved;
byte *new_data_buf;
int icc_match;
- cmm_profile_t *des_profile = tos->parent_color_info->icc_profile; /* If set, this should be a gray profile */
+ cmm_profile_t *des_profile = nos->group_color_info->icc_profile; /* If set, this should be a gray profile */
cmm_profile_t *src_profile;
gsicc_rendering_param_t rendering_params;
gsicc_link_t *icc_link;
@@ -1755,7 +1916,7 @@ pdf14_pop_transparency_mask(pdf14_ctx *ctx, gs_gstate *pgs, gx_device *dev)
/* icc_match == -1 means old non-icc code.
icc_match == 0 means use icc code
icc_match == 1 mean no conversion needed */
- if ( des_profile != NULL && src_profile != NULL ) {
+ if (des_profile != NULL && src_profile != NULL ) {
icc_match = (des_profile->hashcode == src_profile->hashcode);
} else {
icc_match = -1;
@@ -1837,7 +1998,7 @@ pdf14_pop_transparency_mask(pdf14_ctx *ctx, gs_gstate *pgs, gx_device *dev)
global_index++;
#endif
} else {
- if ( icc_match == 1 || tos->n_chan == 2) {
+ if (icc_match == 1 || tos->n_chan == 2) {
#if RAW_DUMP
/* Dump the current buffer to see what we have. */
dump_raw_buffer(ctx->memory,
@@ -1938,11 +2099,13 @@ pdf14_mask_element_new(gs_memory_t *memory)
result = gs_alloc_struct(memory, pdf14_mask_t, &st_pdf14_mask,
"pdf14_mask_element_new");
+ if (result == NULL)
+ return NULL;
/* Get the reference counted mask */
result->rc_mask = NULL;
result->previous = NULL;
result->memory = memory;
- return(result);
+ return result;
}
static int
@@ -1960,7 +2123,7 @@ pdf14_push_transparency_state(gx_device *dev, gs_gstate *pgs)
/* We need to push the current mask buffer */
/* Allocate a new element for the stack.
Don't do anything if there is no mask present.*/
- if ( ctx->mask_stack != NULL ) {
+ if (ctx->mask_stack != NULL) {
new_mask = pdf14_mask_element_new(ctx->memory);
/* Duplicate and make the link */
new_mask->rc_mask = ctx->mask_stack->rc_mask;
@@ -1971,7 +2134,7 @@ pdf14_push_transparency_state(gx_device *dev, gs_gstate *pgs)
#ifdef DEBUG
pdf14_debug_mask_stack_state(pdev->ctx);
#endif
- return(0);
+ return 0;
}
static int
@@ -2013,25 +2176,25 @@ static int
pdf14_open(gx_device *dev)
{
pdf14_device *pdev = (pdf14_device *)dev;
- gs_int_rect rect;
- if_debug2m('v', dev->memory, "[v]pdf14_open: width = %d, height = %d\n",
- dev->width, dev->height);
- rect.p.x = 0;
- rect.p.y = 0;
- rect.q.x = dev->width;
- rect.q.y = dev->height;
/* If we are reenabling the device dont create a new ctx. Bug 697456 */
if (pdev->ctx == NULL) {
bool has_tags = device_encodes_tags(dev);
int bits_per_comp = ((dev->color_info.depth - has_tags*8) /
dev->color_info.num_components);
- pdev->ctx = pdf14_ctx_new(&rect, dev->color_info.num_components,
- pdev->color_info.polarity != GX_CINFO_POLARITY_SUBTRACTIVE, dev,
- bits_per_comp > 8);
+ pdev->ctx = pdf14_ctx_new(dev, bits_per_comp > 8);
+ if (pdev->ctx == NULL)
+ return_error(gs_error_VMerror);
+
+ pdev->ctx->rect.p.x = 0;
+ pdev->ctx->rect.p.y = 0;
+ pdev->ctx->rect.q.x = dev->width;
+ pdev->ctx->rect.q.y = dev->height;
+ pdev->ctx->has_tags = has_tags;
+ pdev->ctx->num_spots = pdev->color_info.num_components - pdev->num_std_colorants;
+ pdev->ctx->additive = (pdev->color_info.polarity == GX_CINFO_POLARITY_ADDITIVE);
+ pdev->ctx->n_chan = pdev->color_info.num_components;
}
- if (pdev->ctx == NULL)
- return_error(gs_error_VMerror);
pdev->free_devicen = true;
pdev->text_group = PDF14_TEXTGROUP_NO_BT;
return 0;
@@ -2134,8 +2297,12 @@ pdf14_get_buffer_information(const gx_device * dev,
transbuff->planestride = planestride;
transbuff->rowstride = rowstride;
- transbuff->transbytes = gs_alloc_bytes(mem, planestride*(buf->n_chan + buf->has_tags ? 1 : 0),
- "pdf14_get_buffer_information");
+ transbuff->transbytes =
+ gs_alloc_bytes(mem,
+ (size_t)planestride *
+ (buf->n_chan +
+ buf->has_tags ? 1 : 0),
+ "pdf14_get_buffer_information");
if (transbuff->transbytes == NULL)
return gs_error_VMerror;
@@ -2224,12 +2391,65 @@ pdf14_get_buffer_information(const gx_device * dev,
global_index++;
#endif
}
- return(0);
+ return 0;
}
typedef void(*blend_image_row_proc_t) (const byte *gs_restrict buf_ptr,
int planestride, int width, int num_comp, uint16_t bg, byte *gs_restrict linebuf);
+
+static int
+pdf14_put_image_color_convert(const pdf14_device* dev, gs_gstate* pgs, cmm_profile_t* src_profile,
+ cmm_dev_profile_t* dev_target_profile, pdf14_buf** buf,
+ byte** buf_ptr, bool was_blended, int x, int y, int width, int height)
+{
+ pdf14_buf* cm_result = NULL;
+ cmm_profile_t* des_profile;
+ gsicc_rendering_param_t render_cond;
+ bool did_alloc;
+ bool big_endian;
+
+ gsicc_extract_profile(GS_UNKNOWN_TAG, dev_target_profile, &des_profile,
+ &render_cond);
+
+#if RAW_DUMP
+ dump_raw_buffer(dev->ctx->memory,
+ height, width, (*buf)->n_planes, (*buf)->planestride,
+ (*buf)->rowstride, "pdf14_put_image_color_convert_pre", *buf_ptr, (*buf)->deep);
+ global_index++;
+#endif
+
+ /* If we are doing a 16 bit buffer it will be big endian if we have already done the
+ blend, otherwise it will be native endian */
+ if (was_blended && (*buf)->deep) {
+ big_endian = true;
+ } else {
+ big_endian = false;
+ }
+
+ cm_result = pdf14_transform_color_buffer_no_matte(pgs, dev->ctx, (gx_device*) dev, *buf,
+ *buf_ptr, src_profile, des_profile, x, y, width,
+ height, &did_alloc, (*buf)->deep, big_endian);
+
+ if (cm_result == NULL)
+ return_error(gs_error_VMerror);
+
+ /* Update */
+ *buf = cm_result;
+
+ /* Make sure our buf_ptr is pointing to the proper location */
+ if (did_alloc)
+ *buf_ptr = cm_result->data; /* Note the lack of offset */
+
+#if RAW_DUMP
+ dump_raw_buffer(dev->ctx->memory,
+ height, width, (*buf)->n_planes, (*buf)->planestride,
+ (*buf)->rowstride, "pdf14_put_image_color_convert_post", *buf_ptr, (*buf)->deep);
+ global_index++;
+#endif
+ return 0;
+}
+
/**
* pdf14_put_image: Put rendered image to target device.
* @pdev: The PDF 1.4 rendering device.
@@ -2249,27 +2469,41 @@ pdf14_put_image(gx_device * dev, gs_gstate * pgs, gx_device * target)
gs_image1_t image;
gx_image_enum_common_t *info;
pdf14_buf *buf = pdev->ctx->stack;
- gs_int_rect rect = buf->rect;
+ gs_int_rect rect;
int y;
- int num_comp = buf->n_chan - 1;
+ int num_comp;
byte *linebuf, *linebuf_unaligned;
gs_color_space *pcs;
int x1, y1, width, height;
- byte *buf_ptr, *buf16_ptr = NULL;
- bool data_blended = false;
+ byte *buf_ptr;
int num_rows_left;
- gsicc_rendering_param_t render_cond;
- cmm_dev_profile_t *dev_profile;
+ cmm_profile_t* src_profile = NULL;
+ cmm_profile_t* des_profile = NULL;
+ cmm_dev_profile_t *pdf14dev_profile;
cmm_dev_profile_t *dev_target_profile;
- uint16_t bg = pdev->ctx->additive ? 65535 : 0;
+ uint16_t bg;
bool has_tags = device_encodes_tags(dev);
- int bits_per_comp = ((dev->color_info.depth - has_tags*8) /
- dev->color_info.num_components);
bool deep = pdev->ctx->deep;
- bool expand = (!deep && bits_per_comp > 8);
- int planestride = buf->planestride;
- int rowstride = buf->rowstride;
+ int planestride;
+ int rowstride;
blend_image_row_proc_t blend_row;
+ bool color_mismatch = false;
+ bool supports_alpha = false;
+ int i;
+ int alpha_offset, tag_offset;
+ const byte* buf_ptrs[GS_CLIENT_COLOR_MAX_COMPONENTS];
+
+ /* Nothing was ever drawn. */
+ if (buf == NULL)
+ return 0;
+
+ bg = buf->group_color_info->isadditive ? 65535 : 0;
+ src_profile = buf->group_color_info->icc_profile;
+
+ num_comp = buf->n_chan - 1;
+ rect = buf->rect;
+ planestride = buf->planestride;
+ rowstride = buf->rowstride;
/* Make sure that this is the only item on the stack. Fuzzing revealed a
potential problem. Bug 694190 */
@@ -2287,7 +2521,7 @@ pdf14_put_image(gx_device * dev, gs_gstate * pgs, gx_device * target)
#endif
if (width <= 0 || height <= 0 || buf->data == NULL)
return 0;
- buf_ptr = buf->data + rect.p.y * rowstride + (rect.p.x<<deep);
+ buf_ptr = buf->data + (rect.p.y - buf->rect.p.y) * buf->rowstride + ((rect.p.x - buf->rect.p.x) << deep);
/* Check that target is OK. From fuzzing results the target could have been
destroyed, for e.g if it were a pattern accumulator that was closed
@@ -2299,148 +2533,158 @@ pdf14_put_image(gx_device * dev, gs_gstate * pgs, gx_device * target)
if (dev_target_profile == NULL)
return gs_throw_code(gs_error_Fatal);
- /* See if the target device can handle the image data directly. If it cannot, then we will need to
- use the begin_typed_image interface, which cannot pass along tag nor
- alpha data to the target device. */
- {
- pdf14_buf *cm_result = NULL;
- int alpha_offset, tag_offset;
- const byte *buf_ptrs[GS_CLIENT_COLOR_MAX_COMPONENTS];
- int i;
+ if (src_profile == NULL) {
+ code = dev_proc(dev, get_profile)(dev, &pdf14dev_profile);
+ if (code < 0) {
+ return code;
+ }
+ src_profile = pdf14dev_profile->device_profile[GS_DEFAULT_DEVICE_PROFILE];
+ }
- /* If we are using a blending color space, take care of that first */
- if (pdev->using_blend_cs) {
- cmm_profile_t *src_profile;
- cmm_profile_t *des_profile;
- bool did_alloc;
+ /* Check if we have a color conversion issue */
+ if (!(src_profile->hash_is_valid)) {
+ gsicc_get_icc_buff_hash(src_profile->buffer,
+ &(src_profile->hashcode),
+ src_profile->buffer_size);
+ src_profile->hash_is_valid = true;
+ }
- code = dev_proc(dev, get_profile)(dev, &dev_profile);
- if (code < 0) {
- return code;
- }
- gsicc_extract_profile(GS_UNKNOWN_TAG, dev_profile, &src_profile,
- &render_cond);
- gsicc_extract_profile(GS_UNKNOWN_TAG, dev_target_profile, &des_profile,
- &render_cond);
+ des_profile = dev_target_profile->device_profile[GS_DEFAULT_DEVICE_PROFILE];
+ if (!(des_profile->hash_is_valid)) {
+ gsicc_get_icc_buff_hash(des_profile->buffer,
+ &(des_profile->hashcode),
+ des_profile->buffer_size);
+ des_profile->hash_is_valid = true;
+ }
+
+ if (pdev->using_blend_cs ||
+ des_profile->hashcode != src_profile->hashcode)
+ color_mismatch = true;
+
+ /* Check if target supports alpha */
+ supports_alpha = dev_proc(target, dev_spec_op)(target, gxdso_supports_alpha, NULL, 0);
+ code = 0;
#if RAW_DUMP
- dump_raw_buffer(pdev->ctx->memory,
- height, width, buf->n_planes, planestride,
- rowstride, "pre_blend_cs", buf_ptr, deep);
- global_index++;
+ dump_raw_buffer(pdev->ctx->memory, height, width, buf->n_planes,
+ pdev->ctx->stack->planestride, pdev->ctx->stack->rowstride,
+ "pre_final_blend", buf_ptr, deep);
#endif
- cm_result = pdf14_transform_color_buffer_no_matte(pgs, pdev->ctx, dev, buf,
- buf_ptr, src_profile, des_profile, rect.p.x, rect.p.y, width,
- height, &did_alloc, buf->deep);
+ /* Note. The logic below will need a little rework if we ever
+ have a device that has tags and alpha support */
+ if (supports_alpha) {
+ if (!color_mismatch) {
+ alpha_offset = num_comp;
+ tag_offset = buf->has_tags ? buf->n_chan : 0;
- if (cm_result == NULL)
- return_error(gs_error_VMerror);
+ for (i = 0; i < buf->n_planes; i++)
+ buf_ptrs[i] = buf_ptr + i * planestride;
+ code = dev_proc(target, put_image) (target, target, buf_ptrs, num_comp,
+ rect.p.x, rect.p.y, width, height,
+ rowstride, alpha_offset,
+ tag_offset);
+ /* Right now code has number of rows written */
+ } else {
+ /* In this case, just color convert and maintain alpha. This is a case
+ where we either either blend in the right color space and have no
+ alpha for the output device or hand back the wrong color space with
+ alpha data. We choose the later. */
+ code = pdf14_put_image_color_convert(pdev, pgs, src_profile,
+ dev_target_profile, &buf, &buf_ptr, false, rect.p.x, rect.p.y,
+ width, height);
+ if (code < 0)
+ return code;
- /* Based upon our transform, do a bit of updating */
- buf = cm_result;
+ /* reset */
+ rowstride = buf->rowstride;
+ planestride = buf->planestride;
num_comp = buf->n_chan - 1;
+ alpha_offset = num_comp;
+ tag_offset = buf->has_tags ? buf->n_chan : 0;
- /* Make sure our buf_ptr is pointing to the proper location */
- if (did_alloc)
- buf_ptr = cm_result->data; /* Note the lack of offset */
+ /* And then out */
+ for (i = 0; i < buf->n_planes; i++)
+ buf_ptrs[i] = buf_ptr + i * planestride;
+ code = dev_proc(target, put_image) (target, target, buf_ptrs, num_comp,
+ rect.p.x, rect.p.y, width, height, rowstride, alpha_offset,
+ tag_offset);
+ /* Right now code has number of rows written */
+ }
+ } else if (has_tags) {
+ /* We are going out to a device that supports tags */
+ if (deep) {
+ gx_blend_image_buffer16(buf_ptr, width, height, rowstride,
+ buf->planestride, num_comp, bg);
+ } else {
+ gx_blend_image_buffer(buf_ptr, width, height, rowstride,
+ buf->planestride, num_comp, bg >> 8);
+ }
+
+#if RAW_DUMP
+ dump_raw_buffer(pdev->ctx->memory, height, width, buf->n_planes,
+ pdev->ctx->stack->planestride, pdev->ctx->stack->rowstride,
+ "post_final_blend", buf_ptr, deep);
+#endif
+
+ /* Take care of color issues */
+ if (color_mismatch) {
+ /* In this case, just color convert and maintain alpha. This is a case
+ where we either either blend in the right color space and have no
+ alpha for the output device or hand back the wrong color space with
+ alpha data. We choose the later. */
+ code = pdf14_put_image_color_convert(pdev, pgs, src_profile, dev_target_profile,
+ &buf, &buf_ptr, true, rect.p.x, rect.p.y, width, height);
+ if (code < 0)
+ return code;
#if RAW_DUMP
- dump_raw_buffer(pdev->ctx->memory,
- height, width, buf->n_planes, planestride,
- rowstride, "post_blend_cs", buf_ptr, deep);
+ dump_raw_buffer(pdev->ctx->memory, height, width, buf->n_planes,
+ pdev->ctx->stack->planestride, pdev->ctx->stack->rowstride,
+ "final_color_manage", buf_ptr, deep);
global_index++;
#endif
- /* May need to adjust background value due to color space change */
- if (des_profile->num_comps == 4)
- bg = 0;
- else
- bg = 65535;
}
- alpha_offset = num_comp;
+
+ /* reset */
+ rowstride = buf->rowstride;
+ planestride = buf->planestride;
+ num_comp = buf->n_chan - 1;
+ alpha_offset = 0; /* It is there but this indicates we have done the blend */
tag_offset = buf->has_tags ? buf->n_chan : 0;
- /* See if the target device can handle the data with alpha component */
+ /* And then out */
for (i = 0; i < buf->n_planes; i++)
buf_ptrs[i] = buf_ptr + i * planestride;
code = dev_proc(target, put_image) (target, target, buf_ptrs, num_comp,
- rect.p.x, rect.p.y, width, height,
- rowstride, alpha_offset,
- tag_offset);
- if (code == 0) {
- /* Device could not handle the alpha data. Go ahead and preblend
- now. Note that if we do this, and we end up in the default below,
- we only need to repack in chunky not blend */
-#if RAW_DUMP
- dump_raw_buffer(pdev->ctx->memory,
- height, width, buf->n_planes,
- pdev->ctx->stack->planestride, pdev->ctx->stack->rowstride,
- "pre_final_blend",buf_ptr,deep);
- global_index++;
-#endif
- if (expand) {
- buf16_ptr = gs_alloc_bytes(pdev->memory,
- planestride * num_comp * 2, "pdf14_put_image");
- gx_blend_image_buffer8to16(buf_ptr, (unsigned short*) buf16_ptr,
- width, height, rowstride, planestride, num_comp, bg>>8);
- planestride = planestride * 2;
- rowstride = rowstride * 2;
- for (i = 0; i < num_comp; i++)
- buf_ptrs[i] = buf16_ptr + i * planestride;
- } else {
- if (deep) {
- gx_blend_image_buffer16(buf_ptr, width, height, rowstride,
- buf->planestride, num_comp, bg);
- } else {
- gx_blend_image_buffer(buf_ptr, width, height, rowstride,
- buf->planestride, num_comp, bg>>8);
- }
-#if RAW_DUMP
- dump_raw_buffer_be(pdev->ctx->memory,
- height, width, buf->n_planes,
- pdev->ctx->stack->planestride, pdev->ctx->stack->rowstride,
- "post_final_blend", buf_ptr, deep);
- global_index++;
- clist_band_count++;
-#endif
- }
- data_blended = true;
+ rect.p.x, rect.p.y, width, height, rowstride, alpha_offset,
+ tag_offset);
+ /* Right now code has number of rows written */
+
+ }
- /* Try again now with just the tags */
- alpha_offset = 0;
+ /* If code > 0 then put image worked. Let it finish and then exit */
+ if (code > 0) {
+ /* We processed some or all of the rows. Continue until we are done */
+ num_rows_left = height - code;
+ while (num_rows_left > 0) {
code = dev_proc(target, put_image) (target, target, buf_ptrs, num_comp,
- rect.p.x, rect.p.y, width, height,
- rowstride, alpha_offset,
- tag_offset);
- }
- if (code > 0) {
- /* We processed some or all of the rows. Continue until we are done */
- num_rows_left = height - code;
- while (num_rows_left > 0) {
- code = dev_proc(target, put_image) (target, target, buf_ptrs, num_comp,
- rect.p.x, rect.p.y + code, width,
- num_rows_left, rowstride,
- alpha_offset, tag_offset);
- num_rows_left = num_rows_left - code;
- }
- if (buf16_ptr != NULL)
- gs_free_object(pdev->memory, buf16_ptr, "pdf14_put_image");
- return 0;
+ rect.p.x, rect.p.y + code, width,
+ num_rows_left, rowstride,
+ alpha_offset, tag_offset);
+ num_rows_left = num_rows_left - code;
}
+ return 0;
}
- /*
+ /* Target device did not support alpha or tags.
* Set color space in preparation for sending an image.
+ * color conversion will occur after blending with through
+ * the begin typed image work flow.
*/
- if (buf16_ptr != NULL) {
- /* If we ever hit this, then we've laboriously blended the
- * entire image for nothing. Check this doesn't happen in
- * normal use. */
- gs_free_object(pdev->memory, buf16_ptr, "pdf14_put_image");
- }
+
planestride = buf->planestride;
rowstride = buf->rowstride;
-
code = gs_cspace_build_ICC(&pcs, NULL, pgs->memory);
if (code < 0)
return code;
@@ -2451,13 +2695,8 @@ pdf14_put_image(gx_device * dev, gs_gstate * pgs, gx_device * target)
for the pdf14 device to RGB and the target will be CIELAB. In addition,
the case when we have a blend color space that is different than the
target device color space */
- code = dev_proc(dev, get_profile)(dev, &dev_profile);
- if (code < 0) {
- rc_decrement_only_cs(pcs, "pdf14_put_image");
- return code;
- }
- gsicc_extract_profile(GS_UNKNOWN_TAG, dev_profile,
- &(pcs->cmm_icc_profile_data), &render_cond);
+ pcs->cmm_icc_profile_data = src_profile;
+
/* pcs takes a reference to the profile data it just retrieved. */
gsicc_adjust_profile_rc(pcs->cmm_icc_profile_data, 1, "pdf14_put_image");
gsicc_set_icc_range(&(pcs->cmm_icc_profile_data));
@@ -2467,6 +2706,7 @@ pdf14_put_image(gx_device * dev, gs_gstate * pgs, gx_device * target)
image.Width = width;
image.Height = height;
image.BitsPerComponent = deep ? 16 : 8;
+ image.ColorSpace = pcs;
ctm_only_writable(pgs).xx = (float)width;
ctm_only_writable(pgs).xy = 0;
ctm_only_writable(pgs).yx = 0;
@@ -2495,9 +2735,7 @@ pdf14_put_image(gx_device * dev, gs_gstate * pgs, gx_device * target)
pdev->ctx->stack->planestride, pdev->ctx->stack->rowstride,
"PDF14_PUTIMAGE_SMALL", buf_ptr, deep);
global_index++;
- if (!data_blended) {
- clist_band_count++;
- }
+ clist_band_count++;
#endif
/* Allocate on 32-byte border for AVX CMYK case. Four byte overflow for RGB case */
/* 28 byte overflow for AVX CMYK case. */
@@ -2519,28 +2757,9 @@ pdf14_put_image(gx_device * dev, gs_gstate * pgs, gx_device * target)
bg >>= 8;
for (y = 0; y < height; y++) {
gx_image_plane_t planes;
- int rows_used,k,x;
-
- if (data_blended) {
- if (deep) {
- uint16_t *lb = (uint16_t *)(void *)linebuf;
- for (x = 0; x < width; x++) {
- for (k = 0; k < num_comp; k++) {
- *lb++ = *(uint16_t *)(void *)&buf_ptr[x + buf->planestride * k];
- }
- }
- } else {
- byte *lb = linebuf;
- for (x = 0; x < width; x++) {
- for (k = 0; k < num_comp; k++) {
- *lb++ = buf_ptr[x + buf->planestride * k];
- }
- }
- }
- } else {
- blend_row(buf_ptr, buf->planestride, width, num_comp, bg, linebuf);
- }
+ int rows_used;
+ blend_row(buf_ptr, buf->planestride, width, num_comp, bg, linebuf);
planes.data = linebuf;
planes.data_x = 0;
planes.raster = width * num_comp;
@@ -2555,6 +2774,451 @@ pdf14_put_image(gx_device * dev, gs_gstate * pgs, gx_device * target)
return code;
}
+/* This is for the case where we have mixture of spots and additive color.
+ For example, RGB + spots or Gray + spots */
+static void
+gx_blend_image_mixed_buffer(byte* buf_ptr, int width, int height, int rowstride,
+ int planestride, int num_comp, int spot_start)
+{
+ int x, y;
+ int position;
+ byte comp, a;
+ int tmp, comp_num;
+
+ for (y = 0; y < height; y++) {
+ position = y * rowstride;
+ for (x = 0; x < width; x++) {
+ a = buf_ptr[position + planestride * num_comp];
+ if ((a + 1) & 0xfe) {
+ a ^= 0xff;
+ for (comp_num = 0; comp_num < spot_start; comp_num++) {
+ comp = buf_ptr[position + planestride * comp_num];
+ tmp = ((0xff - comp) * a) + 0x80;
+ comp += (tmp + (tmp >> 8)) >> 8;
+ buf_ptr[position + planestride * comp_num] = comp;
+ }
+ for (comp_num = spot_start; comp_num < num_comp; comp_num++) {
+ comp = buf_ptr[position + planestride * comp_num];
+ tmp = ((-comp) * a) + 0x80;
+ comp += (tmp + (tmp >> 8)) >> 8;
+ buf_ptr[position + planestride * comp_num] = comp;
+ }
+ } else if (a == 0) {
+ for (comp_num = 0; comp_num < spot_start; comp_num++) {
+ buf_ptr[position + planestride * comp_num] = 0xff;
+ }
+ for (comp_num = spot_start; comp_num < num_comp; comp_num++) {
+ buf_ptr[position + planestride * comp_num] = 0;
+ }
+ }
+ position += 1;
+ }
+ }
+}
+
+static void
+gx_blend_image_mixed_buffer16(byte* buf_ptr_, int width, int height, int rowstride,
+ int planestride, int num_comp, int spot_start)
+{
+ uint16_t* buf_ptr = (uint16_t*)(void*)buf_ptr_;
+ int x, y;
+ int position;
+ int comp, a;
+ int tmp, comp_num;
+
+ /* planestride and rowstride are in bytes, and we want them in shorts */
+ planestride >>= 1;
+ rowstride >>= 1;
+
+ /* Note that the input here is native endian, and the output must be in big endian! */
+ for (y = 0; y < height; y++) {
+ position = y * rowstride;
+ for (x = 0; x < width; x++) {
+ /* composite RGBA (or CMYKA, etc.) pixel with over solid background */
+ a = buf_ptr[position + planestride * num_comp];
+ if (a == 0) {
+ for (comp_num = 0; comp_num < spot_start; comp_num++) {
+ buf_ptr[position + planestride * comp_num] = 0xffff;
+ }
+ for (comp_num = spot_start; comp_num < num_comp; comp_num++) {
+ buf_ptr[position + planestride * comp_num] = 0;
+ }
+ } else if (a == 0xffff) {
+#if ARCH_IS_BIG_ENDIAN
+#else
+ /* Convert from native -> big endian */
+ for (comp_num = 0; comp_num < num_comp; comp_num++) {
+ comp = buf_ptr[position + planestride * comp_num];
+ ((byte*)&buf_ptr[position + planestride * comp_num])[0] = comp >> 8;
+ ((byte*)&buf_ptr[position + planestride * comp_num])[1] = comp;
+ }
+#endif
+ } else {
+ a ^= 0xffff;
+ a += a >> 15; /* a is now 0 to 0x10000 */
+ a >>= 1; /* We can only use 15 bits as bg-comp has a sign bit we can't lose */
+ for (comp_num = 0; comp_num < spot_start; comp_num++) {
+ comp = buf_ptr[position + planestride * comp_num];
+ tmp = ((0xffff - comp) * a) + 0x4000;
+ comp += (tmp >> 15); /* Errors in bit 16 upwards will be ignored */
+ /* Store as big endian */
+ ((byte*)&buf_ptr[position + planestride * comp_num])[0] = comp >> 8;
+ ((byte*)&buf_ptr[position + planestride * comp_num])[1] = comp;
+ }
+ for (comp_num = spot_start; comp_num < num_comp; comp_num++) {
+ comp = buf_ptr[position + planestride * comp_num];
+ tmp = ((0 - comp) * a) + 0x4000;
+ comp += (tmp >> 15); /* Errors in bit 16 upwards will be ignored */
+ /* Store as big endian */
+ ((byte*)&buf_ptr[position + planestride * comp_num])[0] = comp >> 8;
+ ((byte*)&buf_ptr[position + planestride * comp_num])[1] = comp;
+ }
+ }
+ position += 1;
+ }
+ }
+}
+
+static int
+pdf14_put_blended_image_cmykspot(gx_device* dev, gx_device* target,
+ gs_gstate* pgs, pdf14_buf* buf, int planestride_in,
+ int rowstride_in, int x0, int y0, int width, int height,
+ int num_comp, uint16_t bg, bool has_tags, gs_int_rect rect_in,
+ gs_separations* pseparations, bool deep)
+{
+ const pdf14_device* pdev = (pdf14_device*)dev;
+ int code = 0;
+ int x, y, tmp, comp_num, output_comp_num;
+ gx_color_index color;
+ gx_color_value cv[GX_DEVICE_COLOR_MAX_COMPONENTS];
+ gx_color_value comp;
+ int input_map[GX_DEVICE_COLOR_MAX_COMPONENTS];
+ int output_map[GX_DEVICE_COLOR_MAX_COMPONENTS];
+ int num_known_comp = 0;
+ int output_num_comp = target->color_info.num_components;
+ int num_sep = pseparations->num_separations++;
+ int num_rows_left;
+ int i;
+ gx_drawing_color pdcolor;
+ gs_int_rect rect = rect_in;
+ gs_fixed_rect rect_fixed;
+ int planestride = planestride_in;
+ int rowstride = rowstride_in;
+ byte* buf_ptr = NULL;
+ cmm_profile_t* src_profile = buf->group_color_info->icc_profile;
+ cmm_profile_t* des_profile = NULL;
+ cmm_dev_profile_t* dev_target_profile;
+ cmm_dev_profile_t* pdf14dev_profile;
+ bool color_mismatch = false;
+ bool supports_alpha = false;
+ const byte* buf_ptrs[GS_CLIENT_COLOR_MAX_COMPONENTS];
+ int alpha_offset = num_comp;
+ int tag_offset = has_tags ? num_comp + 1 : 0;
+
+ /*
+ * The process color model for the PDF 1.4 compositor device is CMYK plus
+ * spot colors. The target device may have only some of these colorants due
+ * to the SeparationOrder device parameter. Thus we need to determine the
+ * mapping between the PDF 1.4 compositor and the target device. Note:
+ * There should not be a spot colorant in the PDF 1.4 device that is not
+ * present in the target device.
+ */
+ /* Check if target processes CMYK colorants. */
+ for (comp_num = 0; comp_num < 4; comp_num++) {
+ const char* pcomp_name = (const char*)DeviceCMYKComponents[comp_num];
+
+ output_comp_num = dev_proc(target, get_color_comp_index)
+ (target, pcomp_name, strlen(pcomp_name), NO_COMP_NAME_TYPE);
+ if (output_comp_num >= 0 &&
+ output_comp_num < GX_DEVICE_COLOR_MAX_COMPONENTS) {
+ output_map[num_known_comp] = output_comp_num;
+ input_map[num_known_comp++] = comp_num;
+ }
+ }
+ /* Check if target processes our spot colorants. */
+ for (comp_num = 0; comp_num < num_sep; comp_num++) {
+ output_comp_num = dev_proc(target, get_color_comp_index)
+ (target, (const char*)(pseparations->names[comp_num].data),
+ pseparations->names[comp_num].size, NO_COMP_NAME_TYPE);
+ if (output_comp_num >= 0 &&
+ output_comp_num < GX_DEVICE_COLOR_MAX_COMPONENTS) {
+ output_map[num_known_comp] = output_comp_num;
+ input_map[num_known_comp++] = comp_num + 4;
+ }
+ }
+
+ /* Check if group color space is CMYK based */
+ code = dev_proc(target, get_profile)(target, &dev_target_profile);
+ if (code < 0)
+ return code;
+ if (dev_target_profile == NULL)
+ return gs_throw_code(gs_error_Fatal);
+
+ if (src_profile == NULL) {
+ code = dev_proc(dev, get_profile)(dev, &pdf14dev_profile);
+ if (code < 0) {
+ return code;
+ }
+ src_profile = pdf14dev_profile->device_profile[GS_DEFAULT_DEVICE_PROFILE];
+ }
+
+ /* Check if we have a color conversion issue */
+ if (!(src_profile->hash_is_valid)) {
+ gsicc_get_icc_buff_hash(src_profile->buffer,
+ &(src_profile->hashcode),
+ src_profile->buffer_size);
+ src_profile->hash_is_valid = true;
+ }
+
+ des_profile = dev_target_profile->device_profile[GS_DEFAULT_DEVICE_PROFILE];
+ if (!(des_profile->hash_is_valid)) {
+ gsicc_get_icc_buff_hash(des_profile->buffer,
+ &(des_profile->hashcode),
+ des_profile->buffer_size);
+ des_profile->hash_is_valid = true;
+ }
+
+ if (pdev->using_blend_cs ||
+ des_profile->hashcode != src_profile->hashcode)
+ color_mismatch = true;
+
+ /* Check if target supports alpha */
+ supports_alpha = dev_proc(target, dev_spec_op)(target, gxdso_supports_alpha, NULL, 0);
+ code = 0;
+
+ buf_ptr = buf->data + (rect.p.y - buf->rect.p.y) * buf->rowstride + ((rect.p.x - buf->rect.p.x) << deep);
+
+ /* Note. The logic below will need a little rework if we ever
+ have a device that has tags and alpha support */
+ if (supports_alpha) {
+ if (!color_mismatch) {
+ for (i = 0; i < buf->n_planes; i++)
+ buf_ptrs[i] = buf_ptr + i * planestride;
+ code = dev_proc(target, put_image) (target, target, buf_ptrs, num_comp,
+ rect.p.x, rect.p.y, width, height,
+ rowstride, alpha_offset, tag_offset);
+ /* Right now code has number of rows written */
+ } else {
+ /* In this case, just color convert and maintain alpha.
+ This is a case where we either either blend in the
+ right color space and have no alpha for the output
+ device or hand back the wrong color space with
+ alpha data. We choose the later. */
+ code = pdf14_put_image_color_convert(pdev, pgs, src_profile,
+ dev_target_profile, &buf, &buf_ptr, false, rect.p.x,
+ rect.p.y, width, height);
+ if (code < 0)
+ return code;
+
+ /* reset */
+ rowstride = buf->rowstride;
+ planestride = buf->planestride;
+ num_comp = buf->n_chan - 1;
+ alpha_offset = num_comp;
+ tag_offset = buf->has_tags ? buf->n_chan : 0;
+
+ /* And then out */
+ for (i = 0; i < buf->n_planes; i++)
+ buf_ptrs[i] = buf_ptr + i * planestride;
+ code = dev_proc(target, put_image) (target, target, buf_ptrs, num_comp,
+ rect.p.x, rect.p.y, width, height, rowstride, alpha_offset,
+ tag_offset);
+ /* Right now code has number of rows written */
+ }
+ } else {
+ /* Device could not handle the alpha data (we actually don't have
+ a device that does spot colorants and has an alpha channel so
+ the above code is untested. Go ahead and
+ preblend now and then color convert if needed */
+#if RAW_DUMP
+ /* Dump before and after the blend to make sure we are doing that ok */
+ dump_raw_buffer(target->memory, height, width, num_comp + 1, planestride, rowstride,
+ "pre_final_blend", buf_ptr, deep);
+ global_index++;
+#endif
+ if (color_mismatch && (src_profile->data_cs == gsRGB || src_profile->data_cs == gsGRAY)) {
+ if (deep) {
+ gx_blend_image_mixed_buffer16(buf_ptr, width, height, rowstride,
+ planestride, num_comp, src_profile->num_comps);
+ } else {
+ gx_blend_image_mixed_buffer(buf_ptr, width, height, rowstride,
+ planestride, num_comp, src_profile->num_comps);
+ }
+ } else {
+ if (deep) {
+ gx_blend_image_buffer16(buf_ptr, width, height, rowstride,
+ planestride, num_comp, bg);
+ } else {
+ gx_blend_image_buffer(buf_ptr, width, height, rowstride,
+ planestride, num_comp, bg >> 8);
+ }
+ }
+
+ if (color_mismatch) {
+ code = pdf14_put_image_color_convert(pdev, pgs, src_profile, dev_target_profile,
+ &buf, &buf_ptr, true, rect.p.x, rect.p.y, width, height);
+ if (code < 0)
+ return code;
+
+ /* reset */
+ rowstride = buf->rowstride;
+ planestride = buf->planestride;
+ num_comp = buf->n_chan - 1;
+ tag_offset = buf->has_tags ? buf->n_chan : 0;
+ }
+
+
+#if RAW_DUMP
+ /* Dump before and after the blend to make sure we are doing that ok */
+ dump_raw_buffer_be(target->memory, height, width, num_comp, planestride, rowstride,
+ "post_final_blend", buf_ptr, deep);
+ global_index++;
+ /* clist_band_count++; */
+#endif
+ /* Try put_image again now */
+ alpha_offset = 0;
+ for (i = 0; i < buf->n_planes; i++)
+ buf_ptrs[i] = buf_ptr + i * planestride;
+ code = dev_proc(target, put_image) (target, target, buf_ptrs, num_comp,
+ rect.p.x, rect.p.y, width, height,
+ rowstride, alpha_offset, tag_offset);
+ }
+ if (code > 0) {
+ /* We processed some or all of the rows. Continue until we are done */
+ num_rows_left = height - code;
+ while (num_rows_left > 0) {
+ code = dev_proc(target, put_image) (target, target, buf_ptrs, num_comp,
+ rect.p.x, rect.p.y + code, width,
+ num_rows_left, rowstride,
+ alpha_offset, tag_offset);
+ if (code < 0) {
+ return code;
+ }
+ num_rows_left = num_rows_left - code;
+ }
+ return 0;
+ }
+
+ /* No put_image working at all. Resort to fill_rect */
+
+ planestride = planestride_in;
+ rowstride = rowstride_in;
+
+ /* Clear all output colorants first */
+ for (comp_num = 0; comp_num < output_num_comp; comp_num++)
+ cv[comp_num] = 0;
+
+ /* Send pixel data to the target device. */
+ if (deep) {
+ /* NOTE: buf_ptr points to big endian data */
+ for (y = 0; y < height; y++) {
+ for (x = 0; x < width; x++) {
+
+ /* composite CMYKA, etc. pixel with over solid background */
+#define GET16_BE2NATIVE(v) \
+((((byte *)&(v))[0]<<8) | (((byte *)&(v))[1]))
+ uint16_t a = GET16_BE2NATIVE(buf_ptr[x + planestride * num_comp]);
+
+ if (a == 0) {
+ for (comp_num = 0; comp_num < num_known_comp; comp_num++) {
+ cv[output_map[comp_num]] = bg;
+ }
+ } else if (a == 0xffff) {
+ for (comp_num = 0; comp_num < num_known_comp; comp_num++) {
+ comp = GET16_BE2NATIVE(buf_ptr[x + planestride * input_map[comp_num]]);
+ cv[output_map[comp_num]] = comp;
+ }
+ } else {
+ /* a ^= 0xff; */ /* No inversion here! Bug 689895 */
+ for (comp_num = 0; comp_num < num_known_comp; comp_num++) {
+ comp = GET16_BE2NATIVE(buf_ptr[x + planestride * input_map[comp_num]]);
+ tmp = ((comp - bg) * a) + 0x8000;
+ comp += (tmp + (tmp >> 16)) >> 16;
+ cv[output_map[comp_num]] = comp;
+ }
+ }
+
+ /* If we have spot colors we need to encode and fill as a high level
+ color if the device supports it which should always be the case
+ if we are in this procedure */
+ if (dev_proc(target, dev_spec_op)(target, gxdso_supports_devn, NULL, 0)) {
+ for (i = 0; i < output_num_comp; i++) {
+ pdcolor.colors.devn.values[i] = cv[i];
+ }
+ pdcolor.type = gx_dc_type_devn;
+ rect_fixed.p.x = int2fixed(x + x0);
+ rect_fixed.p.y = int2fixed(y + y0);
+ rect_fixed.q.x = int2fixed(x + x0 + 1);
+ rect_fixed.q.y = int2fixed(y + y0 + 1);
+ code = dev_proc(target, fill_rectangle_hl_color)(target, &rect_fixed,
+ NULL, &pdcolor, NULL);
+ } else {
+ /* encode as a color index */
+ color = dev_proc(target, encode_color)(target, cv);
+ code = dev_proc(target, fill_rectangle)(target, x + x0, y + y0, 1, 1, color);
+ }
+ if (code < 0)
+ return code;
+ }
+
+ buf_ptr += rowstride;
+ }
+ } else {
+ bg >>= 8;
+ for (y = 0; y < height; y++) {
+ for (x = 0; x < width; x++) {
+
+ /* composite CMYKA, etc. pixel with over solid background */
+ byte a = buf_ptr[x + planestride * num_comp];
+
+ if ((a + 1) & 0xfe) {
+ /* a ^= 0xff; */ /* No inversion here! Bug 689895 */
+ for (comp_num = 0; comp_num < num_known_comp; comp_num++) {
+ comp = buf_ptr[x + planestride * input_map[comp_num]];
+ tmp = ((comp - bg) * a) + 0x80;
+ comp += tmp + (tmp >> 8);
+ cv[output_map[comp_num]] = comp;
+ }
+ } else if (a == 0) {
+ for (comp_num = 0; comp_num < num_known_comp; comp_num++) {
+ cv[output_map[comp_num]] = bg;
+ }
+ } else {
+ for (comp_num = 0; comp_num < num_known_comp; comp_num++) {
+ comp = buf_ptr[x + planestride * input_map[comp_num]];
+ cv[output_map[comp_num]] = (comp << 8) + comp;
+ }
+ }
+
+ /* If we have spot colors we need to encode and fill as a high level
+ color if the device supports it which should always be the case
+ if we are in this procedure */
+ if (dev_proc(target, dev_spec_op)(target, gxdso_supports_devn, NULL, 0)) {
+ for (i = 0; i < output_num_comp; i++) {
+ pdcolor.colors.devn.values[i] = cv[i];
+ }
+ pdcolor.type = gx_dc_type_devn;
+ rect_fixed.p.x = int2fixed(x + x0);
+ rect_fixed.p.y = int2fixed(y + y0);
+ rect_fixed.q.x = int2fixed(x + x0 + 1);
+ rect_fixed.q.y = int2fixed(y + y0 + 1);
+ code = dev_proc(target, fill_rectangle_hl_color)(target, &rect_fixed,
+ NULL, &pdcolor, NULL);
+ } else {
+ /* encode as a color index */
+ color = dev_proc(target, encode_color)(target, cv);
+ code = dev_proc(target, fill_rectangle)(target, x + x0, y + y0, 1, 1, color);
+ }
+ if (code < 0)
+ return code;
+ }
+
+ buf_ptr += rowstride;
+ }
+ }
+ return code;
+}
+
/**
* pdf14_cmykspot_put_image: Put rendered image to target device.
* @pdev: The PDF 1.4 rendering device.
@@ -2567,20 +3231,29 @@ pdf14_put_image(gx_device * dev, gs_gstate * pgs, gx_device * target)
* Return code: negative on error.
**/
static int
-pdf14_cmykspot_put_image(gx_device * dev, gs_gstate * pgs, gx_device * target)
+pdf14_cmykspot_put_image(gx_device *dev, gs_gstate *pgs, gx_device *target)
{
- pdf14_device * pdev = (pdf14_device *)dev;
+ pdf14_device *pdev = (pdf14_device *)dev;
pdf14_buf *buf = pdev->ctx->stack;
- gs_int_rect rect = buf->rect;
+ gs_int_rect rect;
int x1, y1, width, height;
- gs_devn_params * pdevn_params = &pdev->devn_params;
- gs_separations * pseparations = &pdevn_params->separations;
- int planestride = buf->planestride;
- int rowstride = buf->rowstride;
+ gs_devn_params *pdevn_params = &pdev->devn_params;
+ gs_separations *pseparations = &pdevn_params->separations;
+ int planestride;
+ int rowstride;
bool deep = pdev->ctx->deep;
- const uint16_t bg = pdev->ctx->additive ? 65535 : 0;
- int num_comp = buf->n_chan - 1;
- byte *buf_ptr;
+ uint16_t bg;
+ int num_comp;
+
+ /* Nothing was ever drawn. */
+ if (buf == NULL)
+ return 0;
+
+ bg = buf->group_color_info->isadditive ? 65535 : 0;
+ num_comp = buf->n_chan - 1;
+ rect = buf->rect;
+ planestride = buf->planestride;
+ rowstride = buf->rowstride;
/* Make sure that this is the only item on the stack. Fuzzing revealed a
potential problem. Bug 694190 */
@@ -2595,7 +3268,7 @@ pdf14_cmykspot_put_image(gx_device * dev, gs_gstate * pgs, gx_device * target)
height = y1 - rect.p.y;
if (width <= 0 || height <= 0 || buf->data == NULL)
return 0;
- buf_ptr = buf->data + rect.p.y * buf->rowstride + (rect.p.x<<deep);
+
#if RAW_DUMP
/* Dump the current buffer to see what we have. */
dump_raw_buffer(pdev->ctx->memory,
@@ -2609,7 +3282,9 @@ pdf14_cmykspot_put_image(gx_device * dev, gs_gstate * pgs, gx_device * target)
global_index++;
clist_band_count++;
#endif
- return gx_put_blended_image_cmykspot(target, buf_ptr, planestride, rowstride,
+
+ return pdf14_put_blended_image_cmykspot(dev, target, pgs,
+ buf, planestride, rowstride,
rect.p.x, rect.p.y, width, height, num_comp, bg,
buf->has_tags, rect, pseparations, deep);
}
@@ -2631,15 +3306,27 @@ pdf14_custom_put_image(gx_device * dev, gs_gstate * pgs, gx_device * target)
pdf14_device * pdev = (pdf14_device *)dev;
pdf14_buf *buf = pdev->ctx->stack;
bool deep = pdev->ctx->deep;
- gs_int_rect rect = buf->rect;
- int x0 = rect.p.x, y0 = rect.p.y;
- int planestride = buf->planestride;
- int rowstride = buf->rowstride;
- int num_comp = buf->n_chan - 1;
- const uint16_t bg = pdev->ctx->additive ? 0xffff : 0;
+ gs_int_rect rect;
+ int x0, y0;
+ int planestride;
+ int rowstride;
+ int num_comp;
+ uint16_t bg;
int x1, y1, width, height;
byte *buf_ptr;
+ /* Nothing was ever drawn. */
+ if (buf == NULL)
+ return 0;
+
+ bg = pdev->ctx->additive ? 0xffff : 0;
+ num_comp = buf->n_chan - 1;
+ rect = buf->rect;
+ x0 = rect.p.x;
+ y0 = rect.p.y;
+ planestride = buf->planestride;
+ rowstride = buf->rowstride;
+
/* Make sure that this is the only item on the stack. Fuzzing revealed a
potential problem. Bug 694190 */
if (buf->saved != NULL) {
@@ -2653,7 +3340,7 @@ pdf14_custom_put_image(gx_device * dev, gs_gstate * pgs, gx_device * target)
height = y1 - rect.p.y;
if (width <= 0 || height <= 0 || buf->data == NULL)
return 0;
- buf_ptr = buf->data + rect.p.y * buf->rowstride + (rect.p.x<<deep);
+ buf_ptr = buf->data + (rect.p.y - buf->rect.p.y) * buf->rowstride + ((rect.p.x - buf->rect.p.x)<<deep);
return gx_put_blended_image_custom(target, buf_ptr,
planestride, rowstride,
@@ -2664,16 +3351,16 @@ pdf14_custom_put_image(gx_device * dev, gs_gstate * pgs, gx_device * target)
* of one or more groups, we have to cycle through any ICC profile changes since the push
* putting everything back how it was, and cleaning up the reference counts.
*/
-static void pdf14_cleanup_parent_color_profiles (pdf14_device *pdev)
+static void pdf14_cleanup_group_color_profiles (pdf14_device *pdev)
{
- if (pdev->ctx) {
+ if (pdev->ctx && pdev->ctx->stack) {
pdf14_buf *buf, *next;
- for (buf = pdev->ctx->stack; buf != NULL; buf = next) {
- pdf14_parent_color_t *old_parent_color_info = buf->parent_color_info;
+ for (buf = pdev->ctx->stack->saved; buf != NULL; buf = next) {
+ pdf14_group_color_t *group_color_info = buf->group_color_info;
next = buf->saved;
- while (old_parent_color_info) {
- if (old_parent_color_info->icc_profile != NULL) {
+ while (group_color_info) {
+ if (group_color_info->icc_profile != NULL) {
cmm_profile_t *group_profile;
gsicc_rendering_param_t render_cond;
cmm_dev_profile_t *dev_profile;
@@ -2683,13 +3370,15 @@ static void pdf14_cleanup_parent_color_profiles (pdf14_device *pdev)
gsicc_extract_profile(GS_UNKNOWN_TAG, dev_profile, &group_profile,
&render_cond);
- gsicc_adjust_profile_rc(pdev->icc_struct->device_profile[0], -1, "pdf14_end_transparency_group");
- pdev->icc_struct->device_profile[0] = old_parent_color_info->icc_profile;
- old_parent_color_info->icc_profile = NULL;
+ gsicc_adjust_profile_rc(pdev->icc_struct->device_profile[GS_DEFAULT_DEVICE_PROFILE],
+ -1, "pdf14_end_transparency_group");
+ pdev->icc_struct->device_profile[GS_DEFAULT_DEVICE_PROFILE] =
+ group_color_info->icc_profile;
+ group_color_info->icc_profile = NULL;
}
}
- old_parent_color_info = old_parent_color_info->previous;
+ group_color_info = group_color_info->previous;
}
}
}
@@ -2700,7 +3389,7 @@ pdf14_close(gx_device *dev)
{
pdf14_device *pdev = (pdf14_device *)dev;
- pdf14_cleanup_parent_color_profiles (pdev);
+ pdf14_cleanup_group_color_profiles(pdev);
if (pdev->ctx) {
pdf14_ctx_free(pdev->ctx);
@@ -2719,7 +3408,7 @@ pdf14_discard_trans_layer(gx_device *dev, gs_gstate * pgs)
/* The things that need to be cleaned up */
pdf14_ctx *ctx = pdev->ctx;
pdf14_smaskcolor_t *smaskcolor = pdev->smaskcolor;
- pdf14_parent_color_t *group_procs = pdev->trans_group_parent_cmap_procs;
+ pdf14_group_color_t *group_color = pdev->color_model_stack;
/* Free up the smask color */
if (smaskcolor != NULL) {
@@ -2729,17 +3418,17 @@ pdf14_discard_trans_layer(gx_device *dev, gs_gstate * pgs)
}
/* Free up the nested color procs and decrement the profiles */
- if (group_procs != NULL) {
- while (group_procs->previous != NULL)
- pdf14_pop_parent_color(dev, pgs);
- gs_free_object(dev->memory->stable_memory, group_procs, "pdf14_discard_trans_layer");
- pdev->trans_group_parent_cmap_procs = NULL;
+ if (group_color != NULL) {
+ while (group_color->previous != NULL)
+ pdf14_pop_group_color(dev, pgs);
+ gs_free_object(dev->memory->stable_memory, group_color, "pdf14_discard_trans_layer");
+ pdev->color_model_stack = NULL;
}
/* Start the context clean up */
if (ctx != NULL) {
pdf14_buf *buf, *next;
- pdf14_parent_color_t *procs, *prev_procs;
+ pdf14_group_color_t *procs, *prev_procs;
if (ctx->mask_stack != NULL) {
pdf14_free_mask_stack(ctx, ctx->memory);
@@ -2757,14 +3446,14 @@ pdf14_discard_trans_layer(gx_device *dev, gs_gstate * pgs)
the ctx to the tos mask_stack. We are done with this now so it is safe
to free this one object */
gs_free_object(ctx->memory, buf->mask_stack, "pdf14_discard_trans_layer");
- for (procs = buf->parent_color_info; procs != NULL; procs = prev_procs) {
+ for (procs = buf->group_color_info; procs != NULL; procs = prev_procs) {
prev_procs = procs->previous;
gs_free_object(ctx->memory, procs, "pdf14_discard_trans_layer");
}
gs_free_object(ctx->memory, buf, "pdf14_discard_trans_layer");
}
/* Finally the context itself */
- gs_free_object (ctx->memory, ctx, "pdf14_discard_trans_layer");
+ gs_free_object(ctx->memory, ctx, "pdf14_discard_trans_layer");
pdev->ctx = NULL;
}
return 0;
@@ -2840,12 +3529,14 @@ gs_pdf14_device_copy_params(gx_device *dev, const gx_device *target)
if (pdev->using_blend_cs) {
/* Swap the device profile and the blend profile. */
- gsicc_adjust_profile_rc(profile_targ->device_profile[0], 1, "gs_pdf14_device_copy_params");
+ gsicc_adjust_profile_rc(profile_targ->device_profile[GS_DEFAULT_DEVICE_PROFILE],
+ 1, "gs_pdf14_device_copy_params");
gsicc_adjust_profile_rc(profile_targ->blend_profile, 1, "gs_pdf14_device_copy_params");
- gsicc_adjust_profile_rc(profile_dev14->device_profile[0], -1, "gs_pdf14_device_copy_params");
+ gsicc_adjust_profile_rc(profile_dev14->device_profile[GS_DEFAULT_DEVICE_PROFILE],
+ -1, "gs_pdf14_device_copy_params");
gsicc_adjust_profile_rc(profile_dev14->blend_profile, -1, "gs_pdf14_device_copy_params");
- profile_dev14->blend_profile = profile_targ->device_profile[0];
- profile_dev14->device_profile[0] = profile_targ->blend_profile;
+ profile_dev14->blend_profile = profile_targ->device_profile[GS_DEFAULT_DEVICE_PROFILE];
+ profile_dev14->device_profile[GS_DEFAULT_DEVICE_PROFILE] = profile_targ->blend_profile;
}
profile_dev14->sim_overprint = profile_targ->sim_overprint;
}
@@ -2920,12 +3611,31 @@ pdf14_set_marking_params(gx_device *dev, const gs_gstate *pgs)
{
pdf14_device * pdev = (pdf14_device *)dev;
- pdev->opacity = pgs->opacity.alpha;
- pdev->shape = pgs->shape.alpha;
- pdev->alpha = pgs->opacity.alpha * pgs->shape.alpha;
+ if (pgs->alphaisshape) {
+ pdev->opacity = 1.0;
+ if (pgs->is_fill_color) {
+ pdev->shape = pgs->fillconstantalpha;
+ } else {
+ pdev->shape = pgs->strokeconstantalpha;
+ }
+ } else {
+ pdev->shape = 1.0;
+ if (pgs->is_fill_color) {
+ pdev->opacity = pgs->fillconstantalpha;
+ } else {
+ pdev->opacity = pgs->strokeconstantalpha;
+ }
+ }
+ pdev->alpha = pdev->opacity * pdev->shape;
pdev->blend_mode = pgs->blend_mode;
- pdev->overprint = pgs->overprint;
- pdev->stroke_overprint = pgs->stroke_overprint;
+ if (pdev->icc_struct->sim_overprint) {
+ pdev->overprint = pgs->overprint;
+ pdev->stroke_overprint = pgs->stroke_overprint;
+ } else {
+ pdev->overprint = false;
+ pdev->stroke_overprint = false;
+ }
+
pdev->fillconstantalpha = pgs->fillconstantalpha;
pdev->strokeconstantalpha = pgs->strokeconstantalpha;
@@ -2957,10 +3667,9 @@ update_lop_for_pdf14(gs_gstate *pgs, const gx_drawing_color *pdcolor)
}
}
/* The only idempotent blend modes are Normal, Darken and Lighten */
- if ((pgs->alpha != 0xFFFF) ||
- (pgs->blend_mode != BLEND_MODE_Normal && pgs->blend_mode != BLEND_MODE_Darken && pgs->blend_mode != BLEND_MODE_Lighten) ||
- (pgs->opacity.alpha != 1.0) ||
- (pgs->shape.alpha != 1.0) ||
+ if ((pgs->blend_mode != BLEND_MODE_Normal && pgs->blend_mode != BLEND_MODE_Darken && pgs->blend_mode != BLEND_MODE_Lighten) ||
+ (pgs->fillconstantalpha != 1.0) ||
+ (pgs->strokeconstantalpha != 1.0) ||
(hastrans))
{
/*
@@ -2981,6 +3690,8 @@ push_shfill_group(pdf14_clist_device *pdev,
gs_rect cb;
gs_gstate fudged_pgs = *pgs;
+ params.shade_group = true;
+
/* gs_begin_transparency_group takes a bbox that it then
* transforms by ctm. Our bbox has already been transformed,
* so clear out the ctm. */
@@ -2997,6 +3708,9 @@ push_shfill_group(pdf14_clist_device *pdev,
params.Isolated = false;
params.Knockout = true;
+ params.page_group = false;
+ params.group_opacity = fudged_pgs.fillconstantalpha;
+ params.group_shape = 1.0;
code = gs_begin_transparency_group(&fudged_pgs, &params, &cb, PDF14_BEGIN_TRANS_GROUP);
/* We have the group handle the blendmode and the opacity,
@@ -3007,7 +3721,8 @@ push_shfill_group(pdf14_clist_device *pdev,
* the fill operation as part of doing the stroking, we don't
* push another one. */
gs_setblendmode(pgs, BLEND_MODE_Normal);
- gs_setopacityalpha(pgs, 1.0);
+ gs_setfillconstantalpha(pgs, 1.0);
+ gs_setstrokeconstantalpha(pgs, 1.0);
if (pdev) {
code = pdf14_clist_update_params(pdev, pgs, false, NULL);
if (code < 0)
@@ -3034,6 +3749,11 @@ pdf14_fill_path(gx_device *dev, const gs_gstate *pgs,
gs_pattern2_instance_t *pinst = NULL;
int push_group = 0;
+ code = pdf14_initialize_ctx(dev, dev->color_info.num_components,
+ dev->color_info.polarity != GX_CINFO_POLARITY_SUBTRACTIVE, pgs);
+ if (code < 0)
+ return code;
+
if (pdcolor == NULL)
return_error(gs_error_unknownerror); /* color must be defined */
if (gx_dc_is_pattern1_color(pdcolor)){
@@ -3094,7 +3814,7 @@ pdf14_fill_path(gx_device *dev, const gs_gstate *pgs,
/* Non-idempotent blends require a transparency
* group to be pushed because shadings might
* paint several pixels twice. */
- push_group = gs_currentopacityalpha(pgs) != 1.0 ||
+ push_group = pgs->fillconstantalpha != 1.0 ||
!blend_is_idempotent(gs_currentblendmode(pgs));
pinst =
(gs_pattern2_instance_t *)pdcolor->ccolor.pattern;
@@ -3122,6 +3842,7 @@ pdf14_fill_path(gx_device *dev, const gs_gstate *pgs,
if (box.q.y > path_box.q.y)
box.q.y = path_box.q.y;
}
+ /* Group alpha set from fill value. push_shfill_group does reset to 1.0 */
code = push_shfill_group(NULL, &new_pgs, &box);
} else
update_lop_for_pdf14(&new_pgs, pdcolor);
@@ -3160,11 +3881,17 @@ pdf14_stroke_path(gx_device *dev, const gs_gstate *pgs,
if (pdcolor == NULL)
return_error(gs_error_unknownerror); /* color must be defined */
+
+ code = pdf14_initialize_ctx(dev, dev->color_info.num_components,
+ dev->color_info.polarity != GX_CINFO_POLARITY_SUBTRACTIVE, pgs);
+ if (code < 0)
+ return code;
+
if (gx_dc_is_pattern2_color(pdcolor)) {
/* Non-idempotent blends require a transparency
* group to be pushed because shadings might
* paint several pixels twice. */
- push_group = gs_currentopacityalpha(pgs) != 1.0 ||
+ push_group = pgs->strokeconstantalpha != 1.0 ||
!blend_is_idempotent(gs_currentblendmode(pgs));
}
if (push_group) {
@@ -3213,6 +3940,8 @@ pdf14_stroke_path(gx_device *dev, const gs_gstate *pgs,
if (box.q.y > path_box.q.y)
box.q.y = path_box.q.y;
}
+ /* Group alpha set from fill value. push_shfill_group does reset to 1.0 */
+ new_pgs.fillconstantalpha = new_pgs.strokeconstantalpha;
code = push_shfill_group(NULL, &new_pgs, &box);
} else
update_lop_for_pdf14(&new_pgs, pdcolor);
@@ -3243,12 +3972,13 @@ pdf14_fill_stroke_path(gx_device *dev, const gs_gstate *cpgs, gx_path *ppath,
gs_transparency_group_params_t params = { 0 };
gs_fixed_rect clip_bbox;
gs_rect bbox, group_stroke_box;
- float opacity;
- gs_blend_mode_t blend_mode;
gs_fixed_rect path_bbox;
int expansion_code;
gs_fixed_point expansion;
pdf14_device *p14dev = (pdf14_device *)dev;
+ float stroke_alpha = cpgs->strokeconstantalpha;
+ float fill_alpha = cpgs->fillconstantalpha;
+ gs_blend_mode_t blend_mode = cpgs->blend_mode;
/* Break const just once, neatly */
const_breaker.cpgs = cpgs;
@@ -3258,8 +3988,10 @@ pdf14_fill_stroke_path(gx_device *dev, const gs_gstate *cpgs, gx_path *ppath,
(pgs->ctm.xx == 0.0 && pgs->ctm.xy == 0.0 && pgs->ctm.yx == 0.0 && pgs->ctm.yy == 0.0))
return 0;
- opacity = pgs->opacity.alpha;
- blend_mode = pgs->blend_mode;
+ code = pdf14_initialize_ctx(dev, dev->color_info.num_components,
+ dev->color_info.polarity != GX_CINFO_POLARITY_SUBTRACTIVE, cpgs);
+ if (code < 0)
+ return code;
code = gx_curr_fixed_bbox(pgs, &clip_bbox, NO_PATH);
if (code < 0 && code != gs_error_unknownerror)
@@ -3297,15 +4029,18 @@ pdf14_fill_stroke_path(gx_device *dev, const gs_gstate *cpgs, gx_path *ppath,
return code;
/* See if overprint is enabled for both stroke and fill AND if ca == CA */
- if (pgs->fillconstantalpha == pgs->strokeconstantalpha &&
+ if (fill_alpha == stroke_alpha &&
p14dev->overprint && p14dev->stroke_overprint &&
dev->color_info.polarity == GX_CINFO_POLARITY_SUBTRACTIVE) {
/* Push a non-isolated non-knockout group with alpha = 1.0 and
compatible overprint mode. Group will be composited with
original alpha and blend mode */
params.Isolated = false;
- params.group_color = UNKNOWN;
+ params.group_color_type = UNKNOWN;
params.Knockout = false;
+ params.page_group = false;
+ params.group_opacity = 1.0;
+ params.group_shape = fill_alpha;
/* non-isolated non-knockout group pushed with original alpha and blend mode */
code = pdf14_begin_transparency_group(dev, &params,
@@ -3313,64 +4048,61 @@ pdf14_fill_stroke_path(gx_device *dev, const gs_gstate *cpgs, gx_path *ppath,
if (code < 0)
return code;
- /* Change alpha to 1.0 and blend mode to compatible overprint for actual drawing */
- (void)gs_setopacityalpha(pgs, 1.0); /* Can never fail */
+ /* Change fill alpha to 1.0 and blend mode to compatible overprint for actual drawing */
+ (void)gs_setfillconstantalpha(pgs, 1.0);
(void)gs_setblendmode(pgs, BLEND_MODE_CompatibleOverprint); /* Can never fail */
- if (pgs->fillconstantalpha > 0) {
- p14dev->op_state = PDF14_OP_STATE_FILL;
- code = pdf14_fill_path(dev, pgs, ppath, fill_params, pdcolor_fill, pcpath);
- if (code < 0)
- goto cleanup;
- }
+ p14dev->op_state = PDF14_OP_STATE_FILL;
+ code = pdf14_fill_path(dev, pgs, ppath, fill_params, pdcolor_fill, pcpath);
+ if (code < 0)
+ goto cleanup;
- if (pgs->strokeconstantalpha > 0) {
- gs_swapcolors_quick(pgs); /* flips stroke_color_index (to stroke) */
- p14dev->op_state = PDF14_OP_STATE_STROKE;
- code = pdf14_stroke_path(dev, pgs, ppath, stroke_params, pdcolor_stroke, pcpath);
- gs_swapcolors_quick(pgs); /* this flips pgs->stroke_color_index back as well */
- if (code < 0)
- goto cleanup; /* bail out (with colors swapped back to fill) */
- }
+ (void)gs_setstrokeconstantalpha(pgs, 1.0);
+ gs_swapcolors_quick(pgs); /* flips stroke_color_index (to stroke) */
+ p14dev->op_state = PDF14_OP_STATE_STROKE;
+ code = pdf14_stroke_path(dev, pgs, ppath, stroke_params, pdcolor_stroke, pcpath);
+ gs_swapcolors_quick(pgs); /* this flips pgs->stroke_color_index back as well */
+ if (code < 0)
+ goto cleanup; /* bail out (with colors swapped back to fill) */
} else {
/* Push a non-isolated knockout group. Do not change the alpha or
blend modes. Note: we need to draw those that have alpha = 0 */
params.Isolated = false;
- params.group_color = UNKNOWN;
+ params.group_color_type = UNKNOWN;
params.Knockout = true;
+ params.page_group = false;
+ params.group_shape = 1.0;
+ params.group_opacity = 1.0;
/* non-isolated knockout group is pushed with alpha = 1.0 and Normal blend mode */
- (void)gs_setopacityalpha(pgs, 1.0); /* Can never fail */
(void)gs_setblendmode(pgs, BLEND_MODE_Normal); /* Can never fail */
+ code = pdf14_begin_transparency_group(dev, &params, &group_stroke_box,
+ pgs, dev->memory);
- code = pdf14_begin_transparency_group(dev, &params,
- &group_stroke_box, pgs, dev->memory);
/* restore blend mode for actual drawing in the group */
(void)gs_setblendmode(pgs, blend_mode); /* Can never fail */
- if (code < 0) {
- /* Make sure we put everything back even if we exit with an error. */
- (void)gs_setopacityalpha(pgs, opacity);
- return code;
- }
-
- (void)gs_setopacityalpha(pgs, pgs->fillconstantalpha); /* Can never fail */
p14dev->op_state = PDF14_OP_STATE_FILL;
/* If we are in an overprint situation, set the blend mode to compatible
overprint */
- if (pgs->overprint && dev->color_info.polarity == GX_CINFO_POLARITY_SUBTRACTIVE)
- gs_setblendmode(pgs, BLEND_MODE_CompatibleOverprint); /* Can never fail */
+ if (p14dev->icc_struct->sim_overprint && pgs->overprint &&
+ dev->color_info.polarity == GX_CINFO_POLARITY_SUBTRACTIVE)
+ (void)gs_setblendmode(pgs, BLEND_MODE_CompatibleOverprint); /* Can never fail */
code = pdf14_fill_path(dev, pgs, ppath, fill_params, pdcolor_fill, pcpath);
- if (pgs->overprint && dev->color_info.polarity == GX_CINFO_POLARITY_SUBTRACTIVE)
- gs_setblendmode(pgs, blend_mode); /* Can never fail */
+ if (p14dev->icc_struct->sim_overprint && pgs->overprint &&
+ dev->color_info.polarity == GX_CINFO_POLARITY_SUBTRACTIVE)
+ (void)gs_setblendmode(pgs, blend_mode); /* Can never fail */
if (code < 0)
goto cleanup;
- gs_setopacityalpha(pgs, pgs->strokeconstantalpha); /* Can never fail */
+ /* Note that the stroke can end up doing fill methods */
+ (void)gs_setfillconstantalpha(pgs, stroke_alpha);
+
gs_swapcolors_quick(pgs);
p14dev->op_state = PDF14_OP_STATE_STROKE;
- if (pgs->stroke_overprint && dev->color_info.polarity == GX_CINFO_POLARITY_SUBTRACTIVE)
+ if (p14dev->icc_struct->sim_overprint && pgs->stroke_overprint &&
+ dev->color_info.polarity == GX_CINFO_POLARITY_SUBTRACTIVE)
(void)gs_setblendmode(pgs, BLEND_MODE_CompatibleOverprint); /* Can never fail */
code = pdf14_stroke_path(dev, pgs, ppath, stroke_params, pdcolor_stroke, pcpath);
/* Don't need to restore blendmode here, as it will be restored below. */
@@ -3380,23 +4112,17 @@ pdf14_fill_stroke_path(gx_device *dev, const gs_gstate *cpgs, gx_path *ppath,
}
cleanup:
- /* Now during the pop do the compositing with alpha of 1.0 and normal blend */
- (void)gs_setopacityalpha(pgs, 1.0); /* Can never fail */
- (void)gs_setblendmode(pgs, BLEND_MODE_Normal); /* Can never fail */
+ /* Restore the state */
+ (void)gs_setblendmode(pgs, blend_mode); /* Can never fail */
+ (void)gs_setstrokeconstantalpha(pgs, stroke_alpha);
+ (void)gs_setfillconstantalpha(pgs, fill_alpha);
- /* Restore where we were. If an error occured while in the group push
- return that error code but try to do the cleanup */
code2 = pdf14_end_transparency_group(dev, pgs);
if (code2 < 0) {
/* At this point things have gone very wrong. We should just shut down */
code = gs_abort_pdf14trans_device(pgs);
return code2;
}
-
- /* Restore if there were any changes */
- (void)gs_setopacityalpha(pgs, opacity); /* Can never fail */
- (void)gs_setblendmode(pgs, blend_mode); /* Can never fail */
-
return code;
}
@@ -3805,6 +4531,12 @@ pdf14_copy_alpha_color(gx_device * dev, const byte * data, int data_x,
int depth, bool devn)
{
bool deep = device_is_deep(dev);
+ int code;
+
+ code = pdf14_initialize_ctx(dev, dev->color_info.num_components,
+ dev->color_info.polarity != GX_CINFO_POLARITY_SUBTRACTIVE, NULL);
+ if (code < 0)
+ return code;
if (deep)
return do_pdf14_copy_alpha_color_16(dev, data, data_x, aa_raster,
@@ -3835,6 +4567,12 @@ pdf14_fill_mask(gx_device * orig_dev,
if (pdcolor == NULL)
return_error(gs_error_unknownerror); /* color must be defined */
+
+ code = pdf14_initialize_ctx(orig_dev, orig_dev->color_info.num_components,
+ orig_dev->color_info.polarity != GX_CINFO_POLARITY_SUBTRACTIVE, NULL);
+ if (code < 0)
+ return code;
+
/* If we are doing a fill with a pattern that has a transparency then
go ahead and do a push and a pop of the transparency group */
if (gx_dc_is_pattern1_color(pdcolor)) {
@@ -3868,9 +4606,15 @@ pdf14_fill_mask(gx_device * orig_dev,
group_rect.q.x = x + w;
group_rect.q.y = y + h;
if (!(w <= 0 || h <= 0)) {
+
+ pdf14_group_color_t *group_color_info = pdf14_clone_group_color_info((gx_device *) p14dev, p14dev->ctx->stack->group_color_info);
+ if (group_color_info == NULL)
+ return gs_error_VMerror;
+
code = pdf14_push_transparency_group(p14dev->ctx, &group_rect,
- 1, 0, 65535, 65535, ptile->blending_mode, 0, 0,
- ptile->ttrans->n_chan-1, false, NULL, NULL, NULL, NULL);
+ 1, 0, 65535, 65535, 65535, ptile->blending_mode, 0, 0,
+ ptile->ttrans->n_chan-1, false, false, NULL, NULL,
+ group_color_info, NULL, NULL);
if (code < 0)
return code;
/* Set up the output buffer information now that we have
@@ -3906,7 +4650,7 @@ pdf14_fill_mask(gx_device * orig_dev,
code = pdf14_pop_transparency_group(NULL, p14dev->ctx,
p14dev->blend_procs,
p14dev->color_info.num_components,
- dev_profile->device_profile[0],
+ dev_profile->device_profile[GS_DEFAULT_DEVICE_PROFILE],
orig_dev);
gs_free_object(p14dev->memory, ptile->ttrans->fill_trans_buffer,
"pdf14_fill_mask");
@@ -3915,6 +4659,8 @@ pdf14_fill_mask(gx_device * orig_dev,
return code;
}
+
+
/* Used for filling rects when we are doing a fill with a pattern that
has transparency */
static int
@@ -3938,6 +4684,7 @@ pdf14_tile_pattern_fill(gx_device * pdev, const gs_gstate * pgs,
gx_clip_path cpath_intersection;
gx_path path_ttrans;
gs_blend_mode_t blend_mode;
+ pdf14_group_color_t *group_color_info;
if (ppath == NULL)
return_error(gs_error_unknownerror); /* should not happen */
@@ -3996,7 +4743,7 @@ pdf14_tile_pattern_fill(gx_device * pdev, const gs_gstate * pgs,
}
/* Now let us push a transparency group into which we are
* going to tile the pattern. */
- if (ppath != NULL && code >= 0) {
+ if (ppath != NULL) {
pdf14_device save_pdf14_dev; /* save area for p14dev */
gx_cpath_outer_box(&cpath_intersection, &outer_box);
@@ -4020,11 +4767,15 @@ pdf14_tile_pattern_fill(gx_device * pdev, const gs_gstate * pgs,
}
blend_mode = ptile->blending_mode;
memcpy(&save_pdf14_dev, p14dev, sizeof(pdf14_device));
+
+ group_color_info = pdf14_clone_group_color_info(pdev, p14dev->ctx->stack->group_color_info);
+ if (group_color_info == NULL)
+ return gs_error_VMerror;
+
code = pdf14_push_transparency_group(p14dev->ctx, &rect, 1, 0, (uint16_t)floor(65535 * p14dev->alpha + 0.5),
- (uint16_t)floor(65535 * p14dev->shape + 0.5),
- blend_mode, 0, 0, n_chan_tile-1,
- false, NULL, NULL, pgs_noconst,
- pdev);
+ (uint16_t)floor(65535 * p14dev->shape + 0.5), (uint16_t)floor(65535 * p14dev->opacity + 0.5),
+ blend_mode, 0, 0, n_chan_tile - 1, false, false,
+ NULL, NULL, group_color_info, pgs_noconst, pdev);
if (code < 0)
return code;
@@ -4120,7 +4871,7 @@ pdf14_tile_pattern_fill(gx_device * pdev, const gs_gstate * pgs,
code = pdf14_pop_transparency_group(pgs_noconst, p14dev->ctx,
p14dev->blend_procs,
p14dev->color_info.num_components,
- p14dev->icc_struct->device_profile[0],
+ p14dev->icc_struct->device_profile[GS_DEFAULT_DEVICE_PROFILE],
pdev);
memcpy(p14dev, &save_pdf14_dev, sizeof(pdf14_device));
p14dev->pclist_device = NULL;
@@ -4181,7 +4932,8 @@ pdf14_pattern_trans_render(gx_image_enum * penum, const byte * buffer, int data_
"[v*] Popping trans group pattern fill, uid = %ld id = %ld \n",
ptile->uid.id, ptile->id);
code = pdf14_pop_transparency_group(NULL, p14dev->ctx, p14dev->blend_procs,
- p14dev->color_info.num_components, dev_profile->device_profile[0],
+ p14dev->color_info.num_components,
+ dev_profile->device_profile[GS_DEFAULT_DEVICE_PROFILE],
(gx_device *) p14dev);
}
pdcolor->colors.pattern.p_tile->trans_group_popped = true;
@@ -4263,18 +5015,22 @@ pdf14_patt_trans_image_fill(gx_device * dev, const gs_gstate * pgs,
if_debug2m('v', p14dev->ctx->memory,
"[v*] Pushing trans group patt_trans_image_fill, uid = %ld id = %ld \n",
ptile->uid.id, ptile->id);
+
code = pdf14_push_transparency_group(p14dev->ctx, &group_rect, 1, 0, 65535, 65535,
- pgs->blend_mode, 0, 0,
- ptile->ttrans->n_chan-1, false, NULL,
- NULL, (gs_gstate *)pgs, dev);
+ 65535, pgs->blend_mode, 0, 0,
+ ptile->ttrans->n_chan-1, false, false,
+ NULL, NULL, NULL, (gs_gstate *)pgs, dev);
+
/* Set up the output buffer information now that we have
pushed the group */
fill_trans_buffer = new_pattern_trans_buff(pgs->memory);
pdf14_get_buffer_information(dev, fill_trans_buffer, NULL, false);
+
/* Store this in the appropriate place in pdcolor. This
is released later in pdf14_pattern_trans_render when
we are all done with the mask fill */
ptile->ttrans->fill_trans_buffer = fill_trans_buffer;
+
/* Change the renderer to handle this case so we can catch the
end. We will then pop the group and reset the pdcolor proc.
Keep the base renderer also. */
@@ -4297,6 +5053,11 @@ pdf14_begin_typed_image(gx_device * dev, const gs_gstate * pgs,
const gs_image_t *pim = (const gs_image_t *)pic;
int code;
+ code = pdf14_initialize_ctx(dev, dev->color_info.num_components,
+ dev->color_info.polarity != GX_CINFO_POLARITY_SUBTRACTIVE, pgs);
+ if (code < 0)
+ return code;
+
/* If we are filling an image mask with a pattern that has a transparency
then we need to do some special handling */
if (pim->ImageMask) {
@@ -4335,10 +5096,8 @@ pdf14_set_params(gs_gstate * pgs,
pgs->blend_mode = pparams->blend_mode;
if (pparams->changed & PDF14_SET_TEXT_KNOCKOUT)
pgs->text_knockout = pparams->text_knockout;
- if (pparams->changed & PDF14_SET_SHAPE_ALPHA)
- pgs->shape.alpha = pparams->shape.alpha;
- if (pparams->changed & PDF14_SET_OPACITY_ALPHA)
- pgs->opacity.alpha = pparams->opacity.alpha;
+ if (pparams->changed & PDF14_SET_AIS)
+ pgs->alphaisshape = pparams->ais;
if (pparams->changed & PDF14_SET_OVERPRINT)
pgs->overprint = pparams->overprint;
if (pparams->changed & PDF14_SET_STROKEOVERPRINT)
@@ -4349,6 +5108,10 @@ pdf14_set_params(gs_gstate * pgs,
pgs->strokeconstantalpha = pparams->strokeconstantalpha;
if (pparams->changed & PDF_SET_FILLSTROKE_STATE) {
gs_swapcolors_quick(pgs);
+ if (pparams->op_fs_state == PDF14_OP_STATE_STROKE)
+ pgs->is_fill_color = false;
+ else
+ pgs->is_fill_color = true;
}
pdf14_set_marking_params(dev, pgs);
}
@@ -4675,7 +5438,7 @@ pdf14_ok_to_optimize(gx_device *dev)
if (dev->color_info.separable_and_linear != GX_CINFO_SEP_LIN_STANDARD)
return false;
- dev_icc_cs = dev_profile->device_profile[0]->data_cs;
+ dev_icc_cs = dev_profile->device_profile[GS_DEFAULT_DEVICE_PROFILE]->data_cs;
/* If the outputprofile is not "standard" then colors converted to device color */
/* during clist writing won't match the colors written for the pdf14 clist dev */
if (!(dev_icc_cs == gsGRAY || dev_icc_cs == gsRGB || dev_icc_cs == gsCMYK))
@@ -4883,7 +5646,7 @@ gx_update_pdf14_compositor(gx_device * pdev, gs_gstate * pgs,
* doing a page which uses PDF 1.4 transparency. This routine is only active
* when the PDF 1.4 compositor is 'disabled'. It checks for reenabling the
* PDF 1.4 compositor. Otherwise it simply passes create compositor requests
- * to the targer.
+ * to the target.
*/
static int
pdf14_forward_create_compositor(gx_device * dev, gx_device * * pcdev,
@@ -4969,32 +5732,41 @@ pdf14_create_compositor(gx_device * dev, gx_device * * pcdev,
static int
pdf14_push_text_group(gx_device *dev, gs_gstate *pgs,
gs_blend_mode_t blend_mode, float opacity,
- bool is_clist)
+ float shape, bool is_clist)
{
int code;
gs_transparency_group_params_t params = { 0 };
gs_rect bbox = { 0 }; /* Bounding box is set by parent */
pdf14_clist_device * pdev = (pdf14_clist_device *)dev;
+ float alpha = pgs->fillconstantalpha;
/* Push a non-isolated knock-out group making sure the opacity and blend
mode are correct */
params.Isolated = false;
params.Knockout = true;
+ params.page_group = false;
params.text_group = PDF14_TEXTGROUP_BT_PUSHED;
- gs_setopacityalpha(pgs, 1.0);
+ params.group_opacity = 1.0;
+ params.group_shape = 1.0;
+
+ gs_setfillconstantalpha(pgs, 1.0);
gs_setblendmode(pgs, BLEND_MODE_Normal);
+
if (is_clist) {
code = pdf14_clist_update_params(pdev, pgs, false, NULL);
if (code < 0)
return code;
}
+
code = gs_begin_transparency_group(pgs, &params, &bbox, PDF14_BEGIN_TRANS_GROUP);
+ gs_setfillconstantalpha(pgs, alpha);
+ gs_setblendmode(pgs, blend_mode);
if (code < 0)
return code;
- gs_setopacityalpha(pgs, opacity);
- gs_setblendmode(pgs, blend_mode);
- if (is_clist)
+
+ if (is_clist) {
code = pdf14_clist_update_params(pdev, pgs, false, NULL);
+ }
return code;
}
@@ -5008,10 +5780,19 @@ pdf14_text_begin(gx_device * dev, gs_gstate * pgs,
int code;
gs_text_enum_t *penum;
gs_blend_mode_t blend_mode = gs_currentblendmode(pgs);
- float opacity = gs_currentopacityalpha(pgs);
+ float opacity = pgs->fillconstantalpha;
+ float shape = 1.0;
bool blend_issue = !(blend_mode == BLEND_MODE_Normal || blend_mode == BLEND_MODE_Compatible || blend_mode == BLEND_MODE_CompatibleOverprint);
pdf14_device *pdev = (pdf14_device*)dev;
bool draw = !(text->operation & TEXT_DO_NONE);
+ uint text_mode = gs_currenttextrenderingmode(pgs);
+ bool text_stroke = (text_mode == 1 || text_mode == 2 || text_mode == 5 || text_mode == 6);
+ bool text_fill = (text_mode == 0 || text_mode == 2 || text_mode == 4 || text_mode == 6);
+
+ code = pdf14_initialize_ctx(dev, dev->color_info.num_components,
+ dev->color_info.polarity != GX_CINFO_POLARITY_SUBTRACTIVE, (const gs_gstate*) pgs);
+ if (code < 0)
+ return code;
if_debug0m('v', memory, "[v]pdf14_text_begin\n");
pdf14_set_marking_params(dev, pgs);
@@ -5044,11 +5825,13 @@ pdf14_text_begin(gx_device * dev, gs_gstate * pgs,
pdev->text_group = PDF14_TEXTGROUP_BT_NOT_PUSHED;
}
- if (gs_currenttextknockout(pgs) && (blend_issue || opacity != 1.0) &&
- gs_currenttextrenderingmode(pgs) != 3 && /* don't bother with invisible text */
- pdev->text_group == PDF14_TEXTGROUP_BT_NOT_PUSHED)
+ if (gs_currenttextknockout(pgs) && (blend_issue ||
+ (pgs->fillconstantalpha != 1.0 && text_fill) ||
+ (pgs->strokeconstantalpha != 1.0 && text_stroke)) &&
+ text_mode != 3 && /* don't bother with invisible text */
+ pdev->text_group == PDF14_TEXTGROUP_BT_NOT_PUSHED)
if (draw) {
- code = pdf14_push_text_group(dev, pgs, blend_mode, opacity,
+ code = pdf14_push_text_group(dev, pgs, blend_mode, opacity, shape,
false);
}
*ppenum = (gs_text_enum_t *)penum;
@@ -5061,7 +5844,7 @@ pdf14_finish_copydevice(gx_device *new_dev, const gx_device *from_dev)
pdf14_device *pdev = (pdf14_device*)new_dev;
pdev->ctx = NULL;
- pdev->trans_group_parent_cmap_procs = NULL;
+ pdev->color_model_stack = NULL;
pdev->smaskcolor = NULL;
/* Only allow copying the prototype. */
@@ -5188,7 +5971,7 @@ pdf14_copy_planes(gx_device * dev, const byte * data, int data_x, int raster,
fake_tos.n_chan = dev->color_info.num_components;
fake_tos.n_planes = dev->color_info.num_components;
fake_tos.num_spots = 0;
- fake_tos.parent_color_info = NULL;
+ fake_tos.group_color_info = NULL;
fake_tos.planestride = raster * plane_height;
fake_tos.rect.p.x = x;
fake_tos.rect.p.y = y;
@@ -5210,11 +5993,18 @@ pdf14_fill_rectangle_hl_color(gx_device *dev, const gs_fixed_rect *rect,
const gx_clip_path *pcpath)
{
pdf14_device *pdev = (pdf14_device *)dev;
- pdf14_buf *buf = pdev->ctx->stack;
+ pdf14_buf* buf;
+ int code;
int x = fixed2int(rect->p.x);
int y = fixed2int(rect->p.y);
int w = fixed2int(rect->q.x) - x;
- int h = fixed2int(rect->q.y) -y;
+ int h = fixed2int(rect->q.y) - y;
+
+ code = pdf14_initialize_ctx(dev, dev->color_info.num_components,
+ dev->color_info.polarity != GX_CINFO_POLARITY_SUBTRACTIVE, pgs);
+ if (code < 0)
+ return code;
+ buf = pdev->ctx->stack;
fit_fill_xywh(dev, x, y, w, h);
if (w <= 0 || h <= 0)
@@ -5231,7 +6021,15 @@ pdf14_fill_rectangle(gx_device * dev,
int x, int y, int w, int h, gx_color_index color)
{
pdf14_device *pdev = (pdf14_device *)dev;
- pdf14_buf *buf = pdev->ctx->stack;
+ pdf14_buf *buf;
+ int code;
+
+ code = pdf14_initialize_ctx(dev, dev->color_info.num_components,
+ dev->color_info.polarity != GX_CINFO_POLARITY_SUBTRACTIVE, NULL);
+ if (code < 0)
+ return code;
+
+ buf = pdev->ctx->stack;
fit_fill_xywh(dev, x, y, w, h);
if (w <= 0 || h <= 0)
@@ -5278,59 +6076,64 @@ compute_group_device_int_rect(pdf14_device *pdev, gs_int_rect *rect,
}
static int
-pdf14_begin_transparency_group(gx_device *dev,
- const gs_transparency_group_params_t *ptgp,
- const gs_rect *pbbox,
- gs_gstate *pgs, gs_memory_t *mem)
+pdf14_begin_transparency_group(gx_device* dev,
+ const gs_transparency_group_params_t* ptgp,
+ const gs_rect* pbbox,
+ gs_gstate* pgs, gs_memory_t* mem)
{
- pdf14_device *pdev = (pdf14_device *)dev;
- double alpha = pgs->opacity.alpha * pgs->shape.alpha;
+ pdf14_device* pdev = (pdf14_device*)dev;
+ float alpha = ptgp->group_opacity * ptgp->group_shape;
gs_int_rect rect;
int code;
bool isolated = ptgp->Isolated;
- gs_transparency_color_t group_color;
- cmm_profile_t *group_profile;
- cmm_profile_t *tos_profile;
+ gs_transparency_color_t group_color_type;
+ cmm_profile_t* group_profile;
+ cmm_profile_t* tos_profile;
gsicc_rendering_param_t render_cond;
- cmm_dev_profile_t *dev_profile;
+ cmm_dev_profile_t* dev_profile;
bool cm_back_drop = false;
bool new_icc = false;
+ pdf14_group_color_t* group_color_info;
- code = dev_proc(dev, get_profile)(dev, &dev_profile);
+ code = dev_proc(dev, get_profile)(dev, &dev_profile);
if (code < 0)
return code;
gsicc_extract_profile(GS_UNKNOWN_TAG, dev_profile, &tos_profile, &render_cond);
if (ptgp->text_group == PDF14_TEXTGROUP_BT_PUSHED) {
- rect = pdev->ctx->rect; /* Use parent group for text_group. */
pdev->text_group = PDF14_TEXTGROUP_BT_PUSHED; /* For immediate mode and clist reading */
- } else
+ }
+
+ if (ptgp->text_group == PDF14_TEXTGROUP_BT_PUSHED)
+ rect = pdev->ctx->rect; /* Use parent group for text_group. */
+ else
code = compute_group_device_int_rect(pdev, &rect, pbbox, pgs);
if (code < 0)
return code;
- if_debug4m('v', pdev->memory,
- "[v]pdf14_begin_transparency_group, I = %d, K = %d, alpha = %g, bm = %d\n",
- ptgp->Isolated, ptgp->Knockout, alpha, pgs->blend_mode);
+ if_debug5m('v', pdev->memory,
+ "[v]pdf14_begin_transparency_group, I = %d, K = %d, alpha = %g, bm = %d page_group = %d\n",
+ ptgp->Isolated, ptgp->Knockout, (double)alpha, pgs->blend_mode, ptgp->page_group);
/* If the group color is unknown then use the current device profile. */
- if (ptgp->group_color == UNKNOWN){
- group_color = ICC;
+ if (ptgp->group_color_type == UNKNOWN) {
+ group_color_type = ICC;
group_profile = tos_profile;
- } else {
- group_color = ptgp->group_color;
+ }
+ else {
+ group_color_type = ptgp->group_color_type;
group_profile = ptgp->iccprofile;
}
/* We have to handle case where the profile is in the clist */
if (group_profile == NULL && pdev->pclist_device != NULL) {
/* Get the serialized data from the clist. */
- gx_device_clist_reader *pcrdev = (gx_device_clist_reader *)(pdev->pclist_device);
- group_profile = gsicc_read_serial_icc((gx_device *) pcrdev, ptgp->icc_hashcode);
+ gx_device_clist_reader* pcrdev = (gx_device_clist_reader*)(pdev->pclist_device);
+ group_profile = gsicc_read_serial_icc((gx_device*)pcrdev, ptgp->icc_hashcode);
if (group_profile == NULL)
return gs_throw(gs_error_unknownerror, "ICC data not found in clist");
/* Keep a pointer to the clist device */
- group_profile->dev = (gx_device *) pcrdev;
+ group_profile->dev = (gx_device*)pcrdev;
new_icc = true;
}
if (group_profile != NULL) {
@@ -5338,8 +6141,8 @@ pdf14_begin_transparency_group(gx_device *dev,
we will need to CM the backdrop. */
if (!(group_profile->hash_is_valid)) {
gsicc_get_icc_buff_hash(group_profile->buffer,
- &(group_profile->hashcode),
- group_profile->buffer_size);
+ &(group_profile->hashcode),
+ group_profile->buffer_size);
group_profile->hash_is_valid = true;
}
if (group_profile->hashcode != tos_profile->hashcode) {
@@ -5347,92 +6150,120 @@ pdf14_begin_transparency_group(gx_device *dev,
}
}
- code = pdf14_update_device_color_procs(dev, group_color, ptgp->icc_hashcode,
- pgs, group_profile, false);
+ /* Always create the base color group information as it is only through
+ groups that we can have a color space change. This will survive
+ the life of the context. */
+ if (pdev->ctx->base_color == NULL) {
+ pdev->ctx->base_color = pdf14_make_base_group_color(dev);
+ }
+
+ /* If this is not the page group and we don't yet have a group, we need
+ to create a buffer for the whole page so that we can handle stuff drawn
+ outside this current group (e.g. two non inclusive groups drawn independently) */
+ if (pdev->ctx->stack == NULL && !ptgp->page_group) {
+ code = pdf14_initialize_ctx(dev, dev->color_info.num_components,
+ dev->color_info.polarity != GX_CINFO_POLARITY_SUBTRACTIVE, NULL);
+ if (code < 0)
+ return code;
+ pdev->ctx->stack->isolated = true;
+ }
+
+ group_color_info = pdf14_push_color_model(dev, group_color_type, ptgp->icc_hashcode,
+ group_profile, false);
+ if (group_color_info == NULL)
+ return gs_error_VMerror;
if_debug0m('v', dev->memory, "[v]Transparency group color space update\n");
- if (code < 0)
- return code;
+
code = pdf14_push_transparency_group(pdev->ctx, &rect, isolated, ptgp->Knockout,
- (uint16_t)floor (65535 * alpha + 0.5),
- (uint16_t)floor (65535 * pgs->shape.alpha + 0.5),
- pgs->blend_mode, ptgp->idle,
+ (uint16_t)floor (65535 * alpha + 0.5),
+ (uint16_t)floor(65535 * ptgp->group_shape + 0.5),
+ (uint16_t)floor(65535 * ptgp->group_opacity + 0.5),
+ pgs->blend_mode, ptgp->idle,
ptgp->mask_id, pdev->color_info.num_components,
- cm_back_drop, group_profile, tos_profile,
- pgs, dev);
+ cm_back_drop, ptgp->shade_group,
+ group_profile, tos_profile, group_color_info, pgs, dev);
if (new_icc)
gsicc_adjust_profile_rc(group_profile, -1, "pdf14_begin_transparency_group");
return code;
}
+static void
+pdf14_pop_color_model(gx_device* dev, pdf14_group_color_t* group_color)
+{
+ pdf14_device* pdev = (pdf14_device*)dev;
+
+ if (group_color != NULL &&
+ !(group_color->group_color_mapping_procs == NULL &&
+ group_color->group_color_comp_index == NULL)) {
+ set_dev_proc(pdev, get_color_mapping_procs, group_color->group_color_mapping_procs);
+ set_dev_proc(pdev, get_color_comp_index, group_color->group_color_comp_index);
+ pdev->color_info.polarity = group_color->polarity;
+ pdev->color_info.num_components = group_color->num_components;
+ pdev->blend_procs = group_color->blend_procs;
+ pdev->ctx->additive = group_color->isadditive;
+ pdev->pdf14_procs = group_color->unpack_procs;
+ pdev->color_info.depth = group_color->depth;
+ pdev->color_info.max_color = group_color->max_color;
+ pdev->color_info.max_gray = group_color->max_gray;
+ memcpy(&(pdev->color_info.comp_bits), &(group_color->comp_bits),
+ GX_DEVICE_COLOR_MAX_COMPONENTS);
+ memcpy(&(pdev->color_info.comp_shift), &(group_color->comp_shift),
+ GX_DEVICE_COLOR_MAX_COMPONENTS);
+ if (group_color->icc_profile != NULL) {
+ /* make sure to decrement the device profile. If it was allocated
+ with the push then it will be freed. */
+ gsicc_adjust_profile_rc(pdev->icc_struct->device_profile[GS_DEFAULT_DEVICE_PROFILE],
+ -1, "pdf14_pop_color_model");
+ pdev->icc_struct->device_profile[GS_DEFAULT_DEVICE_PROFILE] =
+ group_color->icc_profile;
+ }
+ }
+}
+
static int
-pdf14_end_transparency_group(gx_device *dev,
- gs_gstate *pgs)
+pdf14_end_transparency_group(gx_device* dev, gs_gstate* pgs)
{
- pdf14_device *pdev = (pdf14_device *)dev;
+ pdf14_device* pdev = (pdf14_device*)dev;
int code;
- pdf14_parent_color_t *parent_color;
- cmm_profile_t *group_profile;
+ cmm_profile_t* group_profile;
gsicc_rendering_param_t render_cond;
- cmm_dev_profile_t *dev_profile;
+ cmm_dev_profile_t* dev_profile;
- code = dev_proc(dev, get_profile)(dev, &dev_profile);
+ code = dev_proc(dev, get_profile)(dev, &dev_profile);
if (code < 0)
return code;
+
gsicc_extract_profile(GS_UNKNOWN_TAG, dev_profile, &group_profile,
- &render_cond);
+ &render_cond);
if_debug0m('v', dev->memory, "[v]pdf14_end_transparency_group\n");
+
code = pdf14_pop_transparency_group(pgs, pdev->ctx, pdev->blend_procs,
- pdev->color_info.num_components, group_profile,
- (gx_device *) pdev);
+ pdev->color_info.num_components, group_profile, (gx_device*)pdev);
#ifdef DEBUG
pdf14_debug_mask_stack_state(pdev->ctx);
#endif
- /* May need to reset some color stuff related
- * to a mismatch between the parents color space
- * and the group blending space */
- parent_color = pdev->ctx->stack->parent_color_info;
- if (!(parent_color->parent_color_mapping_procs == NULL &&
- parent_color->parent_color_comp_index == NULL)) {
- pgs->get_cmap_procs = parent_color->get_cmap_procs;
- gx_set_cmap_procs(pgs, dev);
- set_dev_proc(pdev, get_color_mapping_procs, parent_color->parent_color_mapping_procs);
- set_dev_proc(pdev, get_color_comp_index, parent_color->parent_color_comp_index);
- pdev->color_info.polarity = parent_color->polarity;
- pdev->color_info.num_components = parent_color->num_components;
- pdev->blend_procs = parent_color->parent_blending_procs;
- pdev->ctx->additive = parent_color->isadditive;
- pdev->pdf14_procs = parent_color->unpack_procs;
- pdev->color_info.depth = parent_color->depth;
- pdev->color_info.max_color = parent_color->max_color;
- pdev->color_info.max_gray = parent_color->max_gray;
- memcpy(&(pdev->color_info.comp_bits),&(parent_color->comp_bits),
- GX_DEVICE_COLOR_MAX_COMPONENTS);
- memcpy(&(pdev->color_info.comp_shift),&(parent_color->comp_shift),
- GX_DEVICE_COLOR_MAX_COMPONENTS);
- parent_color->get_cmap_procs = NULL;
- parent_color->parent_color_comp_index = NULL;
- parent_color->parent_color_mapping_procs = NULL;
- if (parent_color->icc_profile != NULL) {
- /* make sure to decrement the device profile. If it was allocated
- with the push then it will be freed. */
- gsicc_adjust_profile_rc(dev->icc_struct->device_profile[0], -1, "pdf14_end_transparency_group");
- dev->icc_struct->device_profile[0] = parent_color->icc_profile;
- parent_color->icc_profile = NULL;
- }
+ /* If this group is the base group, then restore the color model
+ of the device at this time. Note that during the actual device pop
+ we will need to use the profile of the buffer not the pdf14 device
+ as the source color space */
+ if (pdev->ctx->stack->group_popped) {
+ pdf14_pop_color_model(dev, pdev->ctx->base_color);
+ } else {
+ pdf14_pop_color_model(dev, pdev->ctx->stack->group_color_info);
}
+
return code;
}
-static int
-pdf14_update_device_color_procs(gx_device *dev,
- gs_transparency_color_t group_color,
- int64_t icc_hashcode, gs_gstate *pgs,
- cmm_profile_t *iccprofile, bool is_mask)
+static pdf14_group_color_t*
+pdf14_push_color_model(gx_device *dev, gs_transparency_color_t group_color_type,
+ int64_t icc_hashcode, cmm_profile_t *iccprofile,
+ bool is_mask)
{
pdf14_device *pdevproto = NULL;
pdf14_device *pdev = (pdf14_device *)dev;
const pdf14_procs_t *new_14procs = NULL;
- pdf14_parent_color_t *parent_color_info;
+ pdf14_group_color_t *group_color;
gx_color_polarity_t new_polarity;
uchar new_num_comps;
bool new_additive;
@@ -5441,37 +6272,19 @@ pdf14_update_device_color_procs(gx_device *dev,
byte comp_shift[GX_DEVICE_COLOR_MAX_COMPONENTS];
int k;
bool has_tags = device_encodes_tags(dev);
- gsicc_rendering_param_t render_cond;
- cmm_dev_profile_t *dev_profile;
bool deep = pdev->ctx->deep;
- if (pdev->ctx->stack != NULL){
- parent_color_info = pdev->ctx->stack->parent_color_info;
- } else {
- /* This should not occur */
- return_error(gs_error_undefined);
- }
- if_debug0m('v', dev->memory, "[v]pdf14_update_device_color_procs\n");
+ if_debug0m('v', dev->memory, "[v]pdf14_push_color_model\n");
- memset(comp_bits, 0, GX_DEVICE_COLOR_MAX_COMPONENTS);
- memset(comp_shift, 0, GX_DEVICE_COLOR_MAX_COMPONENTS);
+ group_color = gs_alloc_struct(dev->memory->stable_memory,
+ pdf14_group_color_t, &st_pdf14_clr,
+ "pdf14_push_color_model");
+ if (group_color == NULL)
+ return NULL;
- /* Update the device procs at this stage. Many of the procs are based upon
- the color space of the device. We want to remain in the color space
- defined by the color space of the soft mask or transparency group as
- opposed to the device color space. Later, when we pop the softmask we will
- collapse it to a single band and then compose with it to the device color
- space (or the parent layer space). In the case where we pop an isolated
- transparency group, we will do the blending in the proper color space and
- then transform the data when we pop the group. Remember that only isolated
- groups can have color spaces that are different than their parent.
- Separation devices that have to maintain separate spot color planes need
- special handling here */
- parent_color_info->get_cmap_procs = NULL;
- parent_color_info->parent_color_mapping_procs = NULL;
- parent_color_info->parent_color_comp_index = NULL;
-
- switch (group_color) {
+ memset(group_color, 0, sizeof(pdf14_group_color_t));
+
+ switch (group_color_type) {
case GRAY_SCALE:
new_polarity = GX_CINFO_POLARITY_ADDITIVE;
new_num_comps = 1;
@@ -5520,16 +6333,19 @@ pdf14_update_device_color_procs(gx_device *dev,
iccprofile = gsicc_read_serial_icc((gx_device *) pcrdev,
icc_hashcode);
if (iccprofile == NULL)
- return gs_throw(gs_error_unknownerror, "ICC data not found in clist");
+ return NULL;
/* Keep a pointer to the clist device */
iccprofile->dev = (gx_device *) pcrdev;
} else {
/* Go ahead and rc increment right now. This way when
we pop, we will make sure to decrement and avoid a
- leak for the above profile that we just created */
+ leak for the above profile that we just created. This
+ goes with the assignment to the device's profile.
+ Note that we still do the increment for the group_color
+ assignment below. */
if (iccprofile == NULL)
- return gs_throw(gs_error_unknownerror, "ICC data unknown");
- gsicc_adjust_profile_rc(iccprofile, 1, "pdf14_update_device_color_procs");
+ return NULL;
+ gsicc_adjust_profile_rc(iccprofile, 1, "pdf14_push_color_model");
}
new_num_comps = iccprofile->num_comps;
if (new_num_comps == 4) {
@@ -5579,48 +6395,25 @@ pdf14_update_device_color_procs(gx_device *dev,
}
break;
default:
- return_error(gs_error_rangecheck);
+ return NULL;
break;
}
break;
default:
- return_error(gs_error_rangecheck);
+ return NULL;
break;
}
- /* Save the old information */
- parent_color_info->get_cmap_procs = pgs->get_cmap_procs;
- parent_color_info->parent_color_mapping_procs =
- dev_proc(pdev, get_color_mapping_procs);
- parent_color_info->parent_color_comp_index =
- dev_proc(pdev, get_color_comp_index);
- parent_color_info->parent_blending_procs = pdev->blend_procs;
- parent_color_info->polarity = pdev->color_info.polarity;
- parent_color_info->num_components = pdev->color_info.num_components;
- parent_color_info->isadditive = pdev->ctx->additive;
- parent_color_info->unpack_procs = pdev->pdf14_procs;
- parent_color_info->depth = pdev->color_info.depth;
- parent_color_info->max_color = pdev->color_info.max_color;
- parent_color_info->max_gray = pdev->color_info.max_gray;
- parent_color_info->encode = dev_proc(pdev, encode_color);
- parent_color_info->decode = dev_proc(pdev, decode_color);
- memcpy(&(parent_color_info->comp_bits), &(pdev->color_info.comp_bits),
- GX_DEVICE_COLOR_MAX_COMPONENTS);
- memcpy(&(parent_color_info->comp_shift), &(pdev->color_info.comp_shift),
- GX_DEVICE_COLOR_MAX_COMPONENTS);
-
- /* Don't increment the space since we are going to remove it from the
- ICC manager anyway. */
- if (group_color == ICC && iccprofile != NULL) {
- dev_proc(dev, get_profile)(dev, &dev_profile);
- gsicc_extract_profile(GS_UNKNOWN_TAG, dev_profile,
- &(parent_color_info->icc_profile), &render_cond);
- }
- /* Set new information */
+
+ if (group_color_type == ICC && iccprofile != NULL) {
+ group_color->icc_profile = iccprofile;
+ gsicc_adjust_profile_rc(iccprofile, 1, "pdf14_push_color_model");
+ }
+
/* If we are a sep device and this is not a softmask, ensure we maintain the
spot colorants and know how to index into them */
if (pdev->sep_device && !is_mask) {
- int num_spots = parent_color_info->num_components -
- parent_color_info->icc_profile->num_comps;
+ int num_spots = dev->color_info.num_components -
+ dev->icc_struct->device_profile[GS_DEFAULT_DEVICE_PROFILE]->num_comps;
if (num_spots > 0) {
new_num_comps += num_spots;
@@ -5630,16 +6423,19 @@ pdf14_update_device_color_procs(gx_device *dev,
}
}
}
+
+ /* Set device values now and store settings in group_color. Then they
+ are available when we pop the previous group */
if_debug2m('v', pdev->memory,
- "[v]pdf14_update_device_color_procs,num_components_old = %d num_components_new = %d\n",
+ "[v]pdf14_push_color_model, num_components_old = %d num_components_new = %d\n",
pdev->color_info.num_components,new_num_comps);
set_dev_proc(pdev, get_color_mapping_procs, pdevproto->static_procs->get_color_mapping_procs);
set_dev_proc(pdev, get_color_comp_index, pdevproto->static_procs->get_color_comp_index);
- pdev->blend_procs = pdevproto->blend_procs;
- pdev->color_info.polarity = new_polarity;
- pdev->color_info.num_components = new_num_comps;
- pdev->ctx->additive = new_additive;
- pdev->pdf14_procs = new_14procs;
+ group_color->blend_procs = pdev->blend_procs = pdevproto->blend_procs;
+ group_color->polarity = pdev->color_info.polarity = new_polarity;
+ group_color->num_components = pdev->color_info.num_components = new_num_comps;
+ group_color->isadditive = pdev->ctx->additive = new_additive;
+ group_color->unpack_procs = pdev->pdf14_procs = new_14procs;
pdev->color_info.depth = new_num_comps * (8<<deep);
memset(&(pdev->color_info.comp_bits), 0, GX_DEVICE_COLOR_MAX_COMPONENTS);
memset(&(pdev->color_info.comp_shift), 0, GX_DEVICE_COLOR_MAX_COMPONENTS);
@@ -5649,34 +6445,43 @@ pdf14_update_device_color_procs(gx_device *dev,
pdev->color_info.comp_shift[pdev->color_info.num_components] = pdev->color_info.depth;
pdev->color_info.depth += 8;
}
- pdev->color_info.max_color = deep ? 65535 : 255;
- pdev->color_info.max_gray = deep ? 65535 : 255;
+ group_color->max_color = pdev->color_info.max_color = deep ? 65535 : 255;
+ group_color->max_gray = pdev->color_info.max_gray = deep ? 65535 : 255;
+ group_color->depth = pdev->color_info.depth;
+ group_color->decode = dev_proc(pdev, decode_color);
+ group_color->encode = dev_proc(pdev, encode_color);
+ group_color->group_color_mapping_procs = dev_proc(pdev, get_color_mapping_procs);
+ group_color->group_color_comp_index = dev_proc(pdev, get_color_comp_index);
+ memcpy(&(group_color->comp_bits), &(pdev->color_info.comp_bits),
+ GX_DEVICE_COLOR_MAX_COMPONENTS);
+ memcpy(&(group_color->comp_shift), &(pdev->color_info.comp_shift),
+ GX_DEVICE_COLOR_MAX_COMPONENTS);
+ group_color->get_cmap_procs = pdf14_get_cmap_procs;
+
/* If the CS was ICC based, we need to update the device ICC profile
in the ICC manager, since that is the profile that is used for the
PDF14 device */
- if (group_color == ICC && iccprofile != NULL) {
+ if (group_color_type == ICC && iccprofile != NULL) {
/* iccprofile was incremented above if we had not just created it.
When we do the pop we will decrement and if we just created it, it
will be destroyed */
- dev->icc_struct->device_profile[0] = iccprofile;
+ dev->icc_struct->device_profile[GS_DEFAULT_DEVICE_PROFILE] = iccprofile;
}
- return 1; /* Lets us detect that we did do an update */
+ return group_color;
}
-/* A new version that works with the color_procs stack
- for transparency groups */
static int
-pdf14_update_device_color_procs_push_c(gx_device *dev,
- gs_transparency_color_t group_color,
- int64_t icc_hashcode,
- gs_gstate *pgs,
- cmm_profile_t *icc_profile,
- bool is_mask)
-{
- pdf14_device *pdevproto;
- pdf14_device *pdev = (pdf14_device *)dev;
- gx_device_clist_writer * cldev = (gx_device_clist_writer *)pdev->pclist_device;
- const pdf14_procs_t *new_14procs;
+pdf14_clist_push_color_model(gx_device *dev, gx_device* cdev, gs_gstate *pgs,
+ const gs_pdf14trans_t *pdf14pct, gs_memory_t* mem,
+ bool is_mask)
+{
+ pdf14_device* pdev = (pdf14_device*)dev;
+ pdf14_group_color_t* new_group_color;
+ gsicc_rendering_param_t render_cond;
+ cmm_dev_profile_t* dev_profile;
+ pdf14_device* pdevproto;
+ gx_device_clist_writer* cldev = (gx_device_clist_writer*)pdev->pclist_device;
+ const pdf14_procs_t* new_14procs;
bool update_color_info;
gx_color_polarity_t new_polarity;
int new_num_comps;
@@ -5686,146 +6491,192 @@ pdf14_update_device_color_procs_push_c(gx_device *dev,
byte comp_shift[GX_DEVICE_COLOR_MAX_COMPONENTS];
int k;
bool has_tags = device_encodes_tags(dev);
- cmm_profile_t *icc_profile_dev = NULL;
- gsicc_rendering_param_t render_cond;
- cmm_dev_profile_t *dev_profile;
bool deep = device_is_deep(dev);
+ gs_transparency_color_t group_color_type = pdf14pct->params.group_color_type;
+ cmm_profile_t *new_profile = pdf14pct->params.iccprofile;
+ cmm_profile_t *old_profile = NULL;
+
+ dev_proc(dev, get_profile)(dev, &dev_profile);
+ gsicc_extract_profile(GS_UNKNOWN_TAG, dev_profile, &old_profile,
+ &render_cond);
+ if_debug0m('v', dev->memory, "[v]pdf14_clist_push_color_model\n");
+
+ /* Allocate a new one */
+ new_group_color = gs_alloc_struct(dev->memory->stable_memory, pdf14_group_color_t,
+ &st_pdf14_clr, "pdf14_clist_push_color_model");
+
+ /* Link to old one */
+ new_group_color->previous = pdev->color_model_stack;
+
+ /* Reassign new one to dev */
+ pdev->color_model_stack = new_group_color;
+
+ /* Initialize with values */
+ new_group_color->get_cmap_procs = pgs->get_cmap_procs;
+ new_group_color->group_color_mapping_procs =
+ dev_proc(pdev, get_color_mapping_procs);
+ new_group_color->group_color_comp_index =
+ dev_proc(pdev, get_color_comp_index);
+ new_group_color->blend_procs = pdev->blend_procs;
+ new_group_color->polarity = pdev->color_info.polarity;
+ new_group_color->num_components = pdev->color_info.num_components;
+ new_group_color->unpack_procs = pdev->pdf14_procs;
+ new_group_color->depth = pdev->color_info.depth;
+ new_group_color->max_color = pdev->color_info.max_color;
+ new_group_color->max_gray = pdev->color_info.max_gray;
+ new_group_color->decode = dev_proc(pdev, decode_color);
+ new_group_color->encode = dev_proc(pdev, encode_color);
+ memcpy(&(new_group_color->comp_bits), &(pdev->color_info.comp_bits),
+ GX_DEVICE_COLOR_MAX_COMPONENTS);
+ memcpy(&(new_group_color->comp_shift), &(pdev->color_info.comp_shift),
+ GX_DEVICE_COLOR_MAX_COMPONENTS);
+
+ if (new_profile == NULL)
+ new_group_color->icc_profile = NULL;
+
+ /* isadditive is only used in ctx */
+ if (pdev->ctx) {
+ new_group_color->isadditive = pdev->ctx->additive;
+ }
memset(comp_bits, 0, GX_DEVICE_COLOR_MAX_COMPONENTS);
memset(comp_shift, 0, GX_DEVICE_COLOR_MAX_COMPONENTS);
- if (group_color == ICC && icc_profile == NULL)
+ if (group_color_type == ICC && new_profile == NULL)
return gs_throw(gs_error_undefinedresult, "Missing ICC data");
- if_debug0m('v', cldev->memory, "[v]pdf14_update_device_color_procs_push_c\n");
- /* Check if we need to alter the device procs at this stage. Many of the procs
- are based upon the color space of the device. We want to remain in the
- color space defined by the color space of the soft mask or transparency
- group as opposed to the device color space. Later, when we pop the softmask
- we will collapse it to a single band and then compose with it to the device
- color space (or the parent layer space). In the case where we pop an
- isolated transparency group, we will do the blending in the proper color
- space and then transform the data when we pop the group. Remember that only
- isolated groups can have color spaces that are different than their parent. */
+ if_debug0m('v', cldev->memory, "[v]pdf14_clist_push_color_model\n");
+ /* Check if we need to alter the device procs at this stage. Many of the procs
+ are based upon the color space of the device. We want to remain in the
+ color space defined by the color space of the soft mask or transparency
+ group as opposed to the device color space. Later, when we pop the softmask
+ we will collapse it to a single band and then compose with it to the device
+ color space (or the parent layer space). In the case where we pop an
+ isolated transparency group, we will do the blending in the proper color
+ space and then transform the data when we pop the group. Remember that only
+ isolated groups can have color spaces that are different than their parent. */
update_color_info = false;
- switch (group_color) {
- case GRAY_SCALE:
- if (pdev->color_info.num_components != 1){
- update_color_info = true;
+ switch (group_color_type) {
+ case GRAY_SCALE:
+ if (pdev->color_info.num_components != 1) {
+ update_color_info = true;
+ new_polarity = GX_CINFO_POLARITY_ADDITIVE;
+ new_num_comps = 1;
+ pdevproto = (pdf14_device*)&gs_pdf14_Gray_device;
+ new_additive = true;
+ new_14procs = &gray_pdf14_procs;
+ new_depth = 8 << deep;
+ comp_bits[0] = 8 << deep;
+ comp_shift[0] = 0;
+ }
+ break;
+ case DEVICE_RGB:
+ case CIE_XYZ:
+ if (pdev->color_info.num_components != 3) {
+ update_color_info = true;
+ new_polarity = GX_CINFO_POLARITY_ADDITIVE;
+ new_num_comps = 3;
+ pdevproto = (pdf14_device*)&gs_pdf14_RGB_device;
+ new_additive = true;
+ new_14procs = &rgb_pdf14_procs;
+ new_depth = 24 << deep;
+ for (k = 0; k < 3; k++) {
+ comp_bits[k] = 8 << deep;
+ comp_shift[k] = (2 - k) * (8 << deep);
+ }
+ }
+ break;
+ case DEVICE_CMYK:
+ if (pdev->color_info.num_components != 4) {
+ update_color_info = true;
+ new_polarity = GX_CINFO_POLARITY_SUBTRACTIVE;
+ new_num_comps = 4;
+ pdevproto = (pdf14_device*)&gs_pdf14_CMYK_device;
+ new_additive = false;
+ /* This is needed due to the mismatched compressed encode decode
+ between the device procs and the pdf14 procs */
+ if (dev->color_info.num_components > 4) {
+ new_14procs = &cmykspot_pdf14_procs;
+ }
+ else {
+ new_14procs = &cmyk_pdf14_procs;
+ }
+ new_depth = 32 << deep;
+ for (k = 0; k < 4; k++) {
+ comp_bits[k] = 8 << deep;
+ comp_shift[k] = (3 - k) * (8 << deep);
+ }
+ }
+ break;
+ case ICC:
+ /* Check if the profile is different. */
+ if (old_profile->hashcode != new_profile->hashcode) {
+ update_color_info = true;
+ new_num_comps = new_profile->num_comps;
+ new_depth = new_profile->num_comps * (8 << deep);
+ switch (new_num_comps) {
+ case 1:
+ if (pdev->sep_device && !is_mask) {
+ pdevproto = (pdf14_device*)&gs_pdf14_Grayspot_device;
+ new_14procs = &grayspot_pdf14_procs;
+ }
+ else {
+ pdevproto = (pdf14_device*)&gs_pdf14_Gray_device;
+ new_14procs = &gray_pdf14_procs;
+ }
new_polarity = GX_CINFO_POLARITY_ADDITIVE;
- new_num_comps = 1;
- pdevproto = (pdf14_device *)&gs_pdf14_Gray_device;
new_additive = true;
- new_14procs = &gray_pdf14_procs;
- new_depth = 8<<deep;
- comp_bits[0] = 8<<deep;
+ comp_bits[0] = 8 << deep;
comp_shift[0] = 0;
- }
- break;
- case DEVICE_RGB:
- case CIE_XYZ:
- if (pdev->color_info.num_components != 3){
- update_color_info = true;
+ break;
+ case 3:
+ if (pdev->sep_device) {
+ pdevproto = (pdf14_device*)&gs_pdf14_RGBspot_device;
+ new_14procs = &rgbspot_pdf14_procs;
+ }
+ else {
+ pdevproto = (pdf14_device*)&gs_pdf14_RGB_device;
+ new_14procs = &rgb_pdf14_procs;
+ }
new_polarity = GX_CINFO_POLARITY_ADDITIVE;
- new_num_comps = 3;
- pdevproto = (pdf14_device *)&gs_pdf14_RGB_device;
new_additive = true;
- new_14procs = &rgb_pdf14_procs;
- new_depth = 24<<deep;
for (k = 0; k < 3; k++) {
- comp_bits[k] = 8<<deep;
- comp_shift[k] = (2-k)*(8<<deep);
+ comp_bits[k] = 8 << deep;
+ comp_shift[k] = (2 - k) * (8 << deep);
}
- }
- break;
- case DEVICE_CMYK:
- if (pdev->color_info.num_components != 4){
- update_color_info = true;
- new_polarity = GX_CINFO_POLARITY_SUBTRACTIVE;
- new_num_comps = 4;
- pdevproto = (pdf14_device *)&gs_pdf14_CMYK_device;
- new_additive = false;
- /* This is needed due to the mismatched compressed encode decode
- between the device procs and the pdf14 procs */
- if (dev->color_info.num_components > 4){
+ break;
+ case 4:
+ if (pdev->sep_device) {
+ pdevproto = (pdf14_device*)&gs_pdf14_CMYKspot_device;
new_14procs = &cmykspot_pdf14_procs;
- } else {
+ }
+ else {
+ pdevproto = (pdf14_device*)&gs_pdf14_CMYK_device;
new_14procs = &cmyk_pdf14_procs;
}
- new_depth = 32<<deep;
+ new_polarity = GX_CINFO_POLARITY_SUBTRACTIVE;
+ new_additive = false;
for (k = 0; k < 4; k++) {
- comp_bits[k] = 8<<deep;
- comp_shift[k] = (3-k)*(8<<deep);
- }
- }
- break;
- case ICC:
- /* Check if the profile is different. */
- dev_proc(dev, get_profile)(dev, &dev_profile);
- gsicc_extract_profile(GS_UNKNOWN_TAG, dev_profile,
- &icc_profile_dev, &render_cond);
- if (icc_profile_dev->hashcode != icc_profile->hashcode) {
- update_color_info = true;
- new_num_comps = icc_profile->num_comps;
- new_depth = icc_profile->num_comps * (8<<deep);
- switch (new_num_comps) {
- case 1:
- if (pdev->sep_device && !is_mask) {
- pdevproto = (pdf14_device *)&gs_pdf14_Grayspot_device;
- new_14procs = &grayspot_pdf14_procs;
- } else {
- pdevproto = (pdf14_device *)&gs_pdf14_Gray_device;
- new_14procs = &gray_pdf14_procs;
- }
- new_polarity = GX_CINFO_POLARITY_ADDITIVE;
- new_additive = true;
- comp_bits[0] = 8<<deep;
- comp_shift[0] = 0;
- break;
- case 3:
- if (pdev->sep_device) {
- pdevproto = (pdf14_device *)&gs_pdf14_RGBspot_device;
- new_14procs = &rgbspot_pdf14_procs;
- } else {
- pdevproto = (pdf14_device *)&gs_pdf14_RGB_device;
- new_14procs = &rgb_pdf14_procs;
- }
- new_polarity = GX_CINFO_POLARITY_ADDITIVE;
- new_additive = true;
- for (k = 0; k < 3; k++) {
- comp_bits[k] = 8<<deep;
- comp_shift[k] = (2-k)*(8<<deep);
- }
- break;
- case 4:
- if (pdev->sep_device) {
- pdevproto = (pdf14_device *)&gs_pdf14_CMYKspot_device;
- new_14procs = &cmykspot_pdf14_procs;
- } else {
- pdevproto = (pdf14_device *)&gs_pdf14_CMYK_device;
- new_14procs = &cmyk_pdf14_procs;
- }
- new_polarity = GX_CINFO_POLARITY_SUBTRACTIVE;
- new_additive = false;
- for (k = 0; k < 4; k++) {
- comp_bits[k] = 8<<deep;
- comp_shift[k] = (3-k)*(8<<deep);
- }
- break;
- default:
- return gs_throw(gs_error_undefinedresult,
- "ICC Number of colorants illegal");
+ comp_bits[k] = 8 << deep;
+ comp_shift[k] = (3 - k) * (8 << deep);
}
+ break;
+ default:
+ return gs_throw(gs_error_undefinedresult,
+ "ICC Number of colorants illegal");
}
- break;
- case UNKNOWN:
- return 0;
- break;
- default:
- return_error(gs_error_rangecheck);
- break;
+ }
+ break;
+ case UNKNOWN:
+ return 0;
+ break;
+ default:
+ return_error(gs_error_rangecheck);
+ break;
}
if (!update_color_info) {
+ /* Profile not updated */
+ new_group_color->icc_profile = NULL;
if_debug0m('v', pdev->memory, "[v]procs not updated\n");
return 0;
}
@@ -5833,26 +6684,26 @@ pdf14_update_device_color_procs_push_c(gx_device *dev,
if (pdev->sep_device && !is_mask) {
int num_spots;
- if (icc_profile_dev == NULL)
+ if (old_profile == NULL)
return_error(gs_error_undefined);
- num_spots = pdev->color_info.num_components - icc_profile_dev->num_comps;
+ num_spots = pdev->color_info.num_components - old_profile->num_comps;
if (num_spots > 0) {
new_num_comps += num_spots;
for (k = 0; k < new_num_comps; k++) {
- comp_bits[k] = 8<<deep;
- comp_shift[k] = (new_num_comps - k - 1) * (8<<deep);
+ comp_bits[k] = 8 << deep;
+ comp_shift[k] = (new_num_comps - k - 1) * (8 << deep);
}
- new_depth = (8<<deep) * new_num_comps;
+ new_depth = (8 << deep) * new_num_comps;
}
}
if (has_tags) {
new_depth += 8;
}
if_debug2m('v', pdev->memory,
- "[v]pdf14_update_device_color_procs_push_c,num_components_old = %d num_components_new = %d\n",
- pdev->color_info.num_components,new_num_comps);
+ "[v]pdf14_clist_push_color_model, num_components_old = %d num_components_new = %d\n",
+ pdev->color_info.num_components, new_num_comps);
/* Set new information in the device */
set_dev_proc(pdev, get_color_mapping_procs, pdevproto->static_procs->get_color_mapping_procs);
set_dev_proc(pdev, get_color_comp_index, pdevproto->static_procs->get_color_comp_index);
@@ -5863,8 +6714,8 @@ pdf14_update_device_color_procs_push_c(gx_device *dev,
pdev->color_info.max_gray = deep ? 65535 : 255;
pdev->pdf14_procs = new_14procs;
pdev->color_info.depth = new_depth;
- memset(&(pdev->color_info.comp_bits),0,GX_DEVICE_COLOR_MAX_COMPONENTS);
- memset(&(pdev->color_info.comp_shift),0,GX_DEVICE_COLOR_MAX_COMPONENTS);
+ memset(&(pdev->color_info.comp_bits), 0, GX_DEVICE_COLOR_MAX_COMPONENTS);
+ memset(&(pdev->color_info.comp_shift), 0, GX_DEVICE_COLOR_MAX_COMPONENTS);
memcpy(&(pdev->color_info.comp_bits), comp_bits, new_num_comps);
memcpy(&(pdev->color_info.comp_shift), comp_shift, new_num_comps);
pdev->color_info.comp_shift[new_num_comps] = new_depth - 8; /* in case we has_tags is set */
@@ -5882,55 +6733,56 @@ pdf14_update_device_color_procs_push_c(gx_device *dev,
cldev->clist_color_info.max_color = pdev->color_info.max_color;
cldev->clist_color_info.max_gray = pdev->color_info.max_gray;
/* For the ICC profiles, we want to update the ICC profile for the
- device in the ICC manager. We already stored in in pdf14_parent_color_t.
+ device. We store the original in group_color.
That will be stored in the clist and restored during the reading phase. */
- if (group_color == ICC) {
- gsicc_adjust_profile_rc(icc_profile, 1, "pdf14_update_device_color_procs_push_c");
- gsicc_adjust_profile_rc(dev->icc_struct->device_profile[0], -1, "pdf14_update_device_color_procs_push_c");
- dev->icc_struct->device_profile[0] = icc_profile;
+ if (group_color_type == ICC) {
+ gsicc_adjust_profile_rc(new_profile, 1, "pdf14_clist_push_color_model");
+ new_group_color->icc_profile =
+ dev->icc_struct->device_profile[GS_DEFAULT_DEVICE_PROFILE];
+ dev->icc_struct->device_profile[GS_DEFAULT_DEVICE_PROFILE] = new_profile;
}
if (pdev->ctx) {
pdev->ctx->additive = new_additive;
}
- return(1); /* Lets us detect that we did do an update */
+ return 1; /* Lets us detect that we did do an update */
}
static int
-pdf14_update_device_color_procs_pop_c(gx_device *dev,gs_gstate *pgs)
+pdf14_clist_pop_color_model(gx_device *dev, gs_gstate *pgs)
{
pdf14_device *pdev = (pdf14_device *)dev;
- pdf14_parent_color_t *parent_color = pdev->trans_group_parent_cmap_procs;
+ pdf14_group_color_t *group_color = pdev->color_model_stack;
gx_device_clist_writer * cldev = (gx_device_clist_writer *)pdev->pclist_device;
- if (parent_color == NULL)
+ if (group_color == NULL)
return_error(gs_error_unknownerror); /* Unmatched group pop */
- if_debug0m('v', pdev->memory, "[v]pdf14_update_device_color_procs_pop_c\n");
+ if_debug0m('v', pdev->memory, "[v]pdf14_clist_pop_color_model\n");
/* The color procs are always pushed. Simply restore them. */
- if (parent_color->parent_color_mapping_procs == NULL &&
- parent_color->parent_color_comp_index == NULL) {
- if_debug0m('v', dev->memory, "[v]pdf14_update_device_color_procs_pop_c ERROR \n");
+ if (group_color->group_color_mapping_procs == NULL &&
+ group_color->group_color_comp_index == NULL) {
+ if_debug0m('v', dev->memory, "[v]pdf14_clist_pop_color_model ERROR \n");
} else {
if_debug2m('v', pdev->memory,
- "[v]pdf14_update_device_color_procs_pop_c,num_components_old = %d num_components_new = %d\n",
- pdev->color_info.num_components,parent_color->num_components);
- pgs->get_cmap_procs = parent_color->get_cmap_procs;
+ "[v]pdf14_clist_pop_color_model, num_components_old = %d num_components_new = %d\n",
+ pdev->color_info.num_components,group_color->num_components);
+ pgs->get_cmap_procs = group_color->get_cmap_procs;
gx_set_cmap_procs(pgs, dev);
- set_dev_proc(pdev, get_color_mapping_procs, parent_color->parent_color_mapping_procs);
- set_dev_proc(pdev, get_color_comp_index, parent_color->parent_color_comp_index);
- pdev->color_info.polarity = parent_color->polarity;
- pdev->color_info.depth = parent_color->depth;
- pdev->color_info.num_components = parent_color->num_components;
- pdev->blend_procs = parent_color->parent_blending_procs;
- pdev->pdf14_procs = parent_color->unpack_procs;
- pdev->color_info.max_color = parent_color->max_color;
- pdev->color_info.max_gray = parent_color->max_gray;
- set_dev_proc(pdev, encode_color, parent_color->encode);
- set_dev_proc(pdev, decode_color, parent_color->decode);
- memcpy(&(pdev->color_info.comp_bits),&(parent_color->comp_bits),
+ set_dev_proc(pdev, get_color_mapping_procs, group_color->group_color_mapping_procs);
+ set_dev_proc(pdev, get_color_comp_index, group_color->group_color_comp_index);
+ pdev->color_info.polarity = group_color->polarity;
+ pdev->color_info.depth = group_color->depth;
+ pdev->color_info.num_components = group_color->num_components;
+ pdev->blend_procs = group_color->blend_procs;
+ pdev->pdf14_procs = group_color->unpack_procs;
+ pdev->color_info.max_color = group_color->max_color;
+ pdev->color_info.max_gray = group_color->max_gray;
+ set_dev_proc(pdev, encode_color, group_color->encode);
+ set_dev_proc(pdev, decode_color, group_color->decode);
+ memcpy(&(pdev->color_info.comp_bits),&(group_color->comp_bits),
GX_DEVICE_COLOR_MAX_COMPONENTS);
- memcpy(&(pdev->color_info.comp_shift),&(parent_color->comp_shift),
+ memcpy(&(pdev->color_info.comp_shift),&(group_color->comp_shift),
GX_DEVICE_COLOR_MAX_COMPONENTS);
/* clist writer fill rect has no access to gs_gstate */
/* and it forwards the target device. this information */
@@ -5940,95 +6792,43 @@ pdf14_update_device_color_procs_pop_c(gx_device *dev,gs_gstate *pgs)
cldev->clist_color_info.num_components = pdev->color_info.num_components;
cldev->clist_color_info.max_color = pdev->color_info.max_color;
cldev->clist_color_info.max_gray = pdev->color_info.max_gray;
- memcpy(&(cldev->clist_color_info.comp_bits),&(parent_color->comp_bits),
+ memcpy(&(cldev->clist_color_info.comp_bits),&(group_color->comp_bits),
GX_DEVICE_COLOR_MAX_COMPONENTS);
- memcpy(&(cldev->clist_color_info.comp_shift),&(parent_color->comp_shift),
+ memcpy(&(cldev->clist_color_info.comp_shift),&(group_color->comp_shift),
GX_DEVICE_COLOR_MAX_COMPONENTS);
if (pdev->ctx){
- pdev->ctx->additive = parent_color->isadditive;
+ pdev->ctx->additive = group_color->isadditive;
}
/* The device profile must be restored. */
- gsicc_adjust_profile_rc(dev->icc_struct->device_profile[0], -1, "pdf14_update_device_color_procs_pop_c");
- dev->icc_struct->device_profile[0] = parent_color->icc_profile;
- parent_color->icc_profile = NULL;
+ if (group_color->icc_profile != NULL) {
+ gsicc_adjust_profile_rc(dev->icc_struct->device_profile[GS_DEFAULT_DEVICE_PROFILE],
+ -1, "pdf14_clist_pop_color_model");
+ dev->icc_struct->device_profile[GS_DEFAULT_DEVICE_PROFILE] = group_color->icc_profile;
+ }
if_debug0m('v', dev->memory, "[v]procs updated\n");
}
- pdf14_pop_parent_color(dev, pgs);
+ pdf14_pop_group_color(dev, pgs);
return 0;
}
-/* When a transparency group is pushed, the parent colorprocs are initialized.
- Since the color mapping procs are all based upon the device, we must have
- a nested list based upon the transparency group color space. This nesting
- must be outside the nested ctx structures to allow the nesting for the clist
- writer */
-static void
-pdf14_push_parent_color(gx_device *dev, const gs_gstate *pgs)
-{
- pdf14_device *pdev = (pdf14_device *)dev;
- pdf14_parent_color_t *new_parent_color;
- cmm_profile_t *icc_profile;
- gsicc_rendering_param_t render_cond;
- cmm_dev_profile_t *dev_profile;
-
- dev_proc(dev, get_profile)(dev, &dev_profile);
- gsicc_extract_profile(GS_UNKNOWN_TAG, dev_profile, &icc_profile,
- &render_cond);
- if_debug0m('v', dev->memory, "[v]pdf14_push_parent_color\n");
- /* Allocate a new one */
- new_parent_color = gs_alloc_struct(dev->memory->stable_memory, pdf14_parent_color_t,
- &st_pdf14_clr,"pdf14_clr_new");
- /* Link to old one */
- new_parent_color->previous = pdev->trans_group_parent_cmap_procs;
- /* Reassign new one to dev */
- pdev->trans_group_parent_cmap_procs = new_parent_color;
- /* Initialize with values */
- new_parent_color->get_cmap_procs = pgs->get_cmap_procs;
- new_parent_color->parent_color_mapping_procs =
- dev_proc(pdev, get_color_mapping_procs);
- new_parent_color->parent_color_comp_index =
- dev_proc(pdev, get_color_comp_index);
- new_parent_color->parent_blending_procs = pdev->blend_procs;
- new_parent_color->polarity = pdev->color_info.polarity;
- new_parent_color->num_components = pdev->color_info.num_components;
- new_parent_color->unpack_procs = pdev->pdf14_procs;
- new_parent_color->depth = pdev->color_info.depth;
- new_parent_color->max_color = pdev->color_info.max_color;
- new_parent_color->max_gray = pdev->color_info.max_gray;
- new_parent_color->decode = dev_proc(pdev, decode_color);
- new_parent_color->encode = dev_proc(pdev, encode_color);
- memcpy(&(new_parent_color->comp_bits), &(pdev->color_info.comp_bits),
- GX_DEVICE_COLOR_MAX_COMPONENTS);
- memcpy(&(new_parent_color->comp_shift), &(pdev->color_info.comp_shift),
- GX_DEVICE_COLOR_MAX_COMPONENTS);
- /* The ICC manager has the ICC profile for the device */
- new_parent_color->icc_profile = icc_profile;
- gsicc_adjust_profile_rc(icc_profile, 1, "pdf14_push_parent_color");
- /* isadditive is only used in ctx */
- if (pdev->ctx) {
- new_parent_color->isadditive = pdev->ctx->additive;
- }
-}
-
/* When a transparency group is popped, the parent colorprocs must be restored.
Since the color mapping procs are all based upon the device, we must have a
nested list based upon the transparency group color space. This nesting
must be outside the nested ctx structures to allow the nesting for the
clist writer */
static void
-pdf14_pop_parent_color(gx_device *dev, const gs_gstate *pgs)
+pdf14_pop_group_color(gx_device *dev, const gs_gstate *pgs)
{
pdf14_device *pdev = (pdf14_device *)dev;
- pdf14_parent_color_t *old_parent_color_info = pdev->trans_group_parent_cmap_procs;
+ pdf14_group_color_t *group_color = pdev->color_model_stack;
+
+ if_debug0m('v', dev->memory, "[v]pdf14_pop_group_color\n");
- if_debug0m('v', dev->memory, "[v]pdf14_pop_parent_color\n");
- /* We need to compliment pdf14_push_parent color */
- if (old_parent_color_info->icc_profile != NULL)
- gsicc_adjust_profile_rc(old_parent_color_info->icc_profile, -1, "pdf14_pop_parent_color");
/* Update the link */
- pdev->trans_group_parent_cmap_procs = old_parent_color_info->previous;
+ pdev->color_model_stack = group_color->previous;
+
/* Free the old one */
- gs_free_object(dev->memory->stable_memory, old_parent_color_info, "pdf14_clr_free");
+ gs_free_object(dev->memory->stable_memory, group_color, "pdf14_clr_free");
}
static int
@@ -6043,8 +6843,14 @@ pdf14_begin_transparency_mask(gx_device *dev,
gs_int_rect rect;
int code;
int group_color_numcomps;
- gs_transparency_color_t group_color;
+ gs_transparency_color_t group_color_type;
bool deep = device_is_deep(dev);
+ pdf14_group_color_t* group_color_info;
+
+ code = pdf14_initialize_ctx(dev, dev->color_info.num_components,
+ dev->color_info.polarity != GX_CINFO_POLARITY_SUBTRACTIVE, (const gs_gstate*)pgs);
+ if (code < 0)
+ return code;
if (ptmp->subtype == TRANSPARENCY_MASK_None) {
pdf14_ctx *ctx = pdev->ctx;
@@ -6073,7 +6879,7 @@ pdf14_begin_transparency_mask(gx_device *dev,
memcpy(transfer_fn, ptmp->transfer_fn, (256+deep)<<deep);
/* If the group color is unknown, then we must use the previous group color
space or the device process color space */
- if (ptmp->group_color == UNKNOWN){
+ if (ptmp->group_color_type == UNKNOWN){
if (pdev->ctx->stack){
/* Use previous group color space */
group_color_numcomps = pdev->ctx->stack->n_chan-1; /* Remove alpha */
@@ -6083,30 +6889,30 @@ pdf14_begin_transparency_mask(gx_device *dev,
}
switch (group_color_numcomps) {
case 1:
- group_color = GRAY_SCALE;
+ group_color_type = GRAY_SCALE;
break;
case 3:
- group_color = DEVICE_RGB;
+ group_color_type = DEVICE_RGB;
break;
case 4:
- group_color = DEVICE_CMYK;
+ group_color_type = DEVICE_CMYK;
break;
default:
/* We can end up here if we are in a deviceN color space and
we have a sep output device */
- group_color = DEVICEN;
+ group_color_type = DEVICEN;
break;
}
} else {
- group_color = ptmp->group_color;
+ group_color_type = ptmp->group_color_type;
group_color_numcomps = ptmp->group_color_numcomps;
}
- /* Always update the color mapping procs. Otherwise we end up
- fowarding to the target device. */
- code = pdf14_update_device_color_procs(dev, group_color, ptmp->icc_hashcode,
- pgs, ptmp->iccprofile, true);
- if (code < 0)
- return code;
+
+ group_color_info = pdf14_push_color_model(dev, group_color_type, ptmp->icc_hashcode,
+ ptmp->iccprofile, true);
+ if (group_color_info == NULL)
+ return gs_error_VMerror;
+
/* Note that the soft mask always follows the group color requirements even
when we have a separable device */
code = pdf14_push_transparency_mask(pdev->ctx, &rect, bg_alpha,
@@ -6118,7 +6924,8 @@ pdf14_begin_transparency_mask(gx_device *dev,
ptmp->Background,
ptmp->Matte_components,
ptmp->Matte,
- ptmp->GrayBackground);
+ ptmp->GrayBackground,
+ group_color_info);
if (code < 0)
return code;
@@ -6129,7 +6936,7 @@ static int
pdf14_end_transparency_mask(gx_device *dev, gs_gstate *pgs)
{
pdf14_device *pdev = (pdf14_device *)dev;
- pdf14_parent_color_t *parent_color;
+ pdf14_group_color_t *group_color;
int ok;
if_debug0m('v', dev->memory, "pdf14_end_transparency_mask\n");
@@ -6142,35 +6949,32 @@ pdf14_end_transparency_mask(gx_device *dev, gs_gstate *pgs)
* to a mismatch between the Smask color space
* and the Smask blending space */
if (pdev->ctx->stack != NULL ) {
- parent_color = pdev->ctx->stack->parent_color_info;
- if (!(parent_color->parent_color_mapping_procs == NULL &&
- parent_color->parent_color_comp_index == NULL)) {
- pgs->get_cmap_procs = parent_color->get_cmap_procs;
+ group_color = pdev->ctx->stack->group_color_info;
+ if (!(group_color->group_color_mapping_procs == NULL &&
+ group_color->group_color_comp_index == NULL)) {
+ pgs->get_cmap_procs = group_color->get_cmap_procs;
gx_set_cmap_procs(pgs, dev);
- set_dev_proc(pdev, get_color_mapping_procs, parent_color->parent_color_mapping_procs);
- set_dev_proc(pdev, get_color_comp_index, parent_color->parent_color_comp_index);
- pdev->color_info.polarity = parent_color->polarity;
- pdev->color_info.num_components = parent_color->num_components;
- pdev->color_info.depth = parent_color->depth;
- pdev->blend_procs = parent_color->parent_blending_procs;
- pdev->ctx->additive = parent_color->isadditive;
- pdev->pdf14_procs = parent_color->unpack_procs;
- pdev->color_info.max_color = parent_color->max_color;
- pdev->color_info.max_gray = parent_color->max_gray;
- parent_color->get_cmap_procs = NULL;
- parent_color->parent_color_comp_index = NULL;
- parent_color->parent_color_mapping_procs = NULL;
- set_dev_proc(pdev, encode_color, parent_color->encode);
- set_dev_proc(pdev, decode_color, parent_color->decode);
- memcpy(&(pdev->color_info.comp_bits),&(parent_color->comp_bits),
+ set_dev_proc(pdev, get_color_mapping_procs, group_color->group_color_mapping_procs);
+ set_dev_proc(pdev, get_color_comp_index, group_color->group_color_comp_index);
+ pdev->color_info.polarity = group_color->polarity;
+ pdev->color_info.num_components = group_color->num_components;
+ pdev->color_info.depth = group_color->depth;
+ pdev->blend_procs = group_color->blend_procs;
+ pdev->ctx->additive = group_color->isadditive;
+ pdev->pdf14_procs = group_color->unpack_procs;
+ pdev->color_info.max_color = group_color->max_color;
+ pdev->color_info.max_gray = group_color->max_gray;
+ set_dev_proc(pdev, encode_color, group_color->encode);
+ set_dev_proc(pdev, decode_color, group_color->decode);
+ memcpy(&(pdev->color_info.comp_bits),&(group_color->comp_bits),
GX_DEVICE_COLOR_MAX_COMPONENTS);
- memcpy(&(pdev->color_info.comp_shift),&(parent_color->comp_shift),
+ memcpy(&(pdev->color_info.comp_shift),&(group_color->comp_shift),
GX_DEVICE_COLOR_MAX_COMPONENTS);
/* Take care of the ICC profile */
- if (parent_color->icc_profile != NULL) {
- gsicc_adjust_profile_rc(dev->icc_struct->device_profile[0], -1, "pdf14_end_transparency_mask");
- dev->icc_struct->device_profile[0] = parent_color->icc_profile;
- parent_color->icc_profile = NULL;
+ if (group_color->icc_profile != NULL) {
+ gsicc_adjust_profile_rc(dev->icc_struct->device_profile[GS_DEFAULT_DEVICE_PROFILE],
+ -1, "pdf14_end_transparency_mask");
+ dev->icc_struct->device_profile[GS_DEFAULT_DEVICE_PROFILE] = group_color->icc_profile;
}
}
}
@@ -6608,18 +7412,6 @@ static const gx_color_map_procs pdf14_cmap_many = {
pdf14_cmap_is_halftoned
};
-#if 0 /* NOT USED */
-static const gx_color_map_procs pdf14_cmap_many_group = {
- pdf14_cmap_gray_direct,
- pdf14_cmap_rgb_direct,
- pdf14_cmap_cmyk_direct,
- pdf14_cmap_rgb_alpha_direct,
- pdf14_cmap_separation_direct,
- pdf14_cmap_devicen_direct,
- pdf14_cmap_is_halftoned
- };
-#endif /* NOT USED */
-
/**
* Note: copied from gxcmap.c because it's inlined.
**/
@@ -6980,7 +7772,8 @@ pdf14_dev_spec_op(gx_device *pdev, int dev_spec_op,
return 1;
}
}
- if (dev_spec_op == gxdso_supports_devn) {
+ if (dev_spec_op == gxdso_supports_devn
+ || dev_spec_op == gxdso_skip_icc_component_validation) {
cmm_dev_profile_t *dev_profile;
int code;
code = dev_proc(pdev, get_profile)((gx_device*) pdev, &dev_profile);
@@ -6990,6 +7783,14 @@ pdf14_dev_spec_op(gx_device *pdev, int dev_spec_op,
return 0;
}
}
+ if (dev_spec_op == gxdso_pdf14_sep_device) {
+ pdf14_device* dev = (pdf14_device*)pdev;
+
+ if (strcmp(dev->dname, "pdf14cmykspot") == 0 ||
+ strcmp(dev->dname, "pdf14clistcmykspot") == 0)
+ return 1;
+ return 0;
+ }
if (dev_spec_op == gxdso_is_encoding_direct)
return 1;
@@ -7102,6 +7903,13 @@ gs_pdf14_device_push(gs_memory_t *mem, gs_gstate * pgs,
p14dev->pad = target->pad;
p14dev->log2_align_mod = target->log2_align_mod;
p14dev->is_planar = target->is_planar;
+
+ p14dev->alpha = 1.0;
+ p14dev->shape = 1.0;
+ p14dev->opacity = 1.0;
+ p14dev->fillconstantalpha = 1.0;
+ p14dev->strokeconstantalpha = 1.0;
+
/* If the target profile was CIELAB (and we are not using a blend CS),
then overide with default RGB for
proper blending. During put_image we will convert from RGB to
@@ -7110,8 +7918,9 @@ gs_pdf14_device_push(gs_memory_t *mem, gs_gstate * pgs,
if ((icc_profile->data_cs == gsCIELAB || icc_profile->islab)
&& pgs->icc_manager->default_rgb != NULL && !p14dev->using_blend_cs) {
gsicc_adjust_profile_rc(pgs->icc_manager->default_rgb, 1, "gs_pdf14_device_push");
- gsicc_adjust_profile_rc(p14dev->icc_struct->device_profile[0], -1, "gs_pdf14_device_push");
- p14dev->icc_struct->device_profile[0] = pgs->icc_manager->default_rgb;
+ gsicc_adjust_profile_rc(p14dev->icc_struct->device_profile[GS_DEFAULT_DEVICE_PROFILE],
+ -1, "gs_pdf14_device_push");
+ p14dev->icc_struct->device_profile[GS_DEFAULT_DEVICE_PROFILE] = pgs->icc_manager->default_rgb;
}
/* The number of color planes should not exceed that of the target.
Unless we are using a blend CS */
@@ -7138,12 +7947,14 @@ gs_pdf14_device_push(gs_memory_t *mem, gs_gstate * pgs,
p14dev->color_info.comp_shift[p14dev->color_info.num_components] = p14dev->color_info.depth;
p14dev->color_info.depth += 8;
}
+
/* by definition pdf14_encode _is_ standard */
p14dev->color_info.separable_and_linear = GX_CINFO_SEP_LIN_STANDARD;
gx_device_fill_in_procs((gx_device *)p14dev);
p14dev->save_get_cmap_procs = pgs->get_cmap_procs;
pgs->get_cmap_procs = pdf14_get_cmap_procs;
gx_set_cmap_procs(pgs, (gx_device *)p14dev);
+
/* Components shift, etc have to be based upon 8 (or 16) bit */
for (k = 0; k < p14dev->color_info.num_components; k++) {
p14dev->color_info.comp_bits[k] = 8<<deep;
@@ -7160,21 +7971,19 @@ gs_pdf14_device_push(gs_memory_t *mem, gs_gstate * pgs,
code = dev_proc((gx_device *) p14dev, open_device) ((gx_device *) p14dev);
*pdev = (gx_device *) p14dev;
pdf14_set_marking_params((gx_device *)p14dev, pgs);
- p14dev->trans_group_parent_cmap_procs = NULL;
+ p14dev->color_model_stack = NULL;
+
/* In case we have alphabits set */
p14dev->color_info.anti_alias = target->color_info.anti_alias;
-#if RAW_DUMP
- /* Dump the current buffer to see what we have. */
- dump_raw_buffer(p14dev->ctx->memory,
- p14dev->ctx->stack->rect.q.y-p14dev->ctx->stack->rect.p.y,
- p14dev->ctx->stack->rect.q.x-p14dev->ctx->stack->rect.p.x,
- p14dev->ctx->stack->n_planes,
- p14dev->ctx->stack->planestride, p14dev->ctx->stack->rowstride,
- "Device_Push", p14dev->ctx->stack->data,
- p14dev->ctx->stack->deep);
- global_index++;
-#endif
+ if (pdf14pct->params.is_pattern) {
+ code = pdf14_initialize_ctx((gx_device*)p14dev,
+ p14dev->color_info.num_components,
+ p14dev->color_info.polarity != GX_CINFO_POLARITY_SUBTRACTIVE, (const gs_gstate*) pgs);
+ if (code < 0)
+ return code;
+ }
+
/* We should never go into this when using a blend color space */
if (use_pdf14_accum) {
const gx_device_pdf14_accum *accum_proto = NULL;
@@ -7346,6 +8155,9 @@ c_pdf14trans_write(const gs_composite_t * pct, byte * data, uint * psize,
gsicc_extract_profile(GS_UNKNOWN_TAG, dev_profile, &icc_profile,
&render_cond);
*pbuf++ = opcode; /* 1 byte */
+ if (trans_group_level < 0 && opcode != PDF14_PUSH_DEVICE)
+ return_error(gs_error_unregistered); /* prevent spurious transparency ops (Bug 702327) */
+
switch (opcode) {
default: /* Should not occur. */
break;
@@ -7375,7 +8187,7 @@ c_pdf14trans_write(const gs_composite_t * pct, byte * data, uint * psize,
break;
case PDF14_POP_DEVICE:
pdf14_needed = false; /* reset pdf14_needed */
- trans_group_level = 0;
+ trans_group_level = -1; /* reset so we need to PUSH_DEVICE next */
smask_level = 0;
put_value(pbuf, pparams->is_pattern);
break;
@@ -7394,18 +8206,20 @@ c_pdf14trans_write(const gs_composite_t * pct, byte * data, uint * psize,
return code;
*pbuf++ = (pparams->Isolated & 1) + ((pparams->Knockout & 1) << 1);
*pbuf++ = pparams->blend_mode;
- *pbuf++ = pparams->group_color;
+ *pbuf++ = pparams->group_color_type;
+ *pbuf++ = pparams->page_group;
put_value(pbuf, pparams->group_color_numcomps);
- put_value(pbuf, pparams->opacity.alpha);
- put_value(pbuf, pparams->shape.alpha);
+ put_value(pbuf, pparams->opacity);
+ put_value(pbuf, pparams->shape);
put_value(pbuf, pparams->bbox);
+ put_value(pbuf, pparams->shade_group);
put_value(pbuf, pparams->text_group);
mask_id = pparams->mask_id;
put_value(pbuf, mask_id);
/* Color space information maybe ICC based
in this case we need to store the ICC
profile or the ID if it is cached already */
- if (pparams->group_color == ICC) {
+ if (pparams->group_color_type == ICC) {
/* Check if it is already in the ICC clist table */
hashcode = pparams->iccprofile->hashcode;
found_icc = clist_icc_searchtable(cdev, hashcode);
@@ -7430,7 +8244,7 @@ c_pdf14trans_write(const gs_composite_t * pct, byte * data, uint * psize,
if (code < 0)
return code;
put_value(pbuf, pparams->subtype);
- *pbuf++ = pparams->group_color;
+ *pbuf++ = pparams->group_color_type;
put_value(pbuf, pparams->group_color_numcomps);
*pbuf++ = pparams->replacing;
*pbuf++ = (pparams->function_is_identity) | (deep<<1);
@@ -7458,7 +8272,7 @@ c_pdf14trans_write(const gs_composite_t * pct, byte * data, uint * psize,
/* Color space information may be ICC based
in this case we need to store the ICC
profile or the ID if it is cached already */
- if (pparams->group_color == ICC) {
+ if (pparams->group_color_type == ICC) {
/* Check if it is already in the ICC clist table */
hashcode = pparams->iccprofile->hashcode;
found_icc = clist_icc_searchtable(cdev, hashcode);
@@ -7480,8 +8294,8 @@ c_pdf14trans_write(const gs_composite_t * pct, byte * data, uint * psize,
pdf14_needed = cdev->page_pdf14_needed;
break;
case PDF14_SET_BLEND_PARAMS:
- if (pparams->blend_mode != BLEND_MODE_Normal || pparams->opacity.alpha != 1.0 ||
- pparams->shape.alpha != 1.0)
+ if (pparams->blend_mode != BLEND_MODE_Normal || pparams->opacity != 1.0 ||
+ pparams->shape != 1.0)
pdf14_needed = true; /* the compositor will be needed while reading */
else if (smask_level == 0 && trans_group_level == 0)
pdf14_needed = false; /* At page level, set back to false */
@@ -7493,10 +8307,8 @@ c_pdf14trans_write(const gs_composite_t * pct, byte * data, uint * psize,
*pbuf++ = pparams->blend_mode;
if (pparams->changed & PDF14_SET_TEXT_KNOCKOUT)
*pbuf++ = pparams->text_knockout;
- if (pparams->changed & PDF14_SET_OPACITY_ALPHA)
- put_value(pbuf, pparams->opacity.alpha);
- if (pparams->changed & PDF14_SET_SHAPE_ALPHA)
- put_value(pbuf, pparams->shape.alpha);
+ if (pparams->changed & PDF14_SET_AIS)
+ put_value(pbuf, pparams->ais);
if (pparams->changed & PDF14_SET_OVERPRINT)
put_value(pbuf, pparams->overprint);
if (pparams->changed & PDF14_SET_STROKEOVERPRINT)
@@ -7616,11 +8428,13 @@ c_pdf14trans_read(gs_composite_t * * ppct, const byte * data,
params.Isolated = (*data) & 1;
params.Knockout = (*data++ >> 1) & 1;
params.blend_mode = *data++;
- params.group_color = *data++; /* Trans group color */
+ params.group_color_type = *data++; /* Trans group color */
+ params.page_group = *data++;
read_value(data,params.group_color_numcomps); /* color group size */
- read_value(data, params.opacity.alpha);
- read_value(data, params.shape.alpha);
+ read_value(data, params.opacity);
+ read_value(data, params.shape);
read_value(data, params.bbox);
+ read_value(data, params.shade_group);
read_value(data, params.text_group);
read_value(data, params.mask_id);
read_value(data, params.icc_hash);
@@ -7640,7 +8454,7 @@ c_pdf14trans_read(gs_composite_t * * ppct, const byte * data,
*/
data = cmd_read_matrix(&params.ctm, data);
read_value(data, params.subtype);
- params.group_color = *data++;
+ params.group_color_type = *data++;
read_value(data, params.group_color_numcomps);
params.replacing = *data++;
params.function_is_identity = *data & 1;
@@ -7696,10 +8510,8 @@ c_pdf14trans_read(gs_composite_t * * ppct, const byte * data,
params.blend_mode = *data++;
if (params.changed & PDF14_SET_TEXT_KNOCKOUT)
params.text_knockout = *data++;
- if (params.changed & PDF14_SET_OPACITY_ALPHA)
- read_value(data, params.opacity.alpha);
- if (params.changed & PDF14_SET_SHAPE_ALPHA)
- read_value(data, params.shape.alpha);
+ if (params.changed & PDF14_SET_AIS)
+ read_value(data, params.ais);
if (params.changed & PDF14_SET_OVERPRINT)
read_value(data, params.overprint);
if (params.changed & PDF14_SET_STROKEOVERPRINT)
@@ -7748,6 +8560,7 @@ c_pdf14trans_adjust_ctm(gs_composite_t * pct0, int x0, int y0, gs_gstate *pgs)
*
* Note that this routine will be called only if the device is not already
* a PDF 1.4 transparency compositor.
+ * Return an error if it is not a PDF14_PUSH_DEVICE operation.
*/
static int
c_pdf14trans_create_default_compositor(const gs_composite_t * pct,
@@ -7769,8 +8582,9 @@ c_pdf14trans_create_default_compositor(const gs_composite_t * pct,
*pp14dev = p14dev;
break;
default:
- *pp14dev = tdev;
- break;
+ /* No other compositor actions are allowed if this isn't a pdf14 compositor */
+ *pp14dev = NULL;
+ return_error(gs_error_unregistered);
}
return code;
}
@@ -8461,7 +9275,7 @@ pdf14_create_clist_device(gs_memory_t *mem, gs_gstate * pgs,
CIELAB */
if ((target_profile->data_cs == gsCIELAB || target_profile->islab) &&
!pdev->using_blend_cs) {
- rc_assign(pdev->icc_struct->device_profile[0],
+ rc_assign(pdev->icc_struct->device_profile[GS_DEFAULT_DEVICE_PROFILE],
pgs->icc_manager->default_rgb, "pdf14_create_clist_device");
}
pdev->my_encode_color = dev_proc(pdev, encode_color);
@@ -8545,7 +9359,7 @@ pdf14_ret_devn_params(gx_device *pdev)
{
pdf14_device *p14dev = (pdf14_device *)pdev;
- return(&(p14dev->devn_params));
+ return &(p14dev->devn_params);
}
/*
@@ -8556,7 +9370,7 @@ pdf14_accum_ret_devn_params(gx_device *pdev)
{
gx_device_pdf14_accum *p14dev = (gx_device_pdf14_accum *)pdev;
- return(&(p14dev->devn_params));
+ return &(p14dev->devn_params);
}
static int
@@ -8808,18 +9622,15 @@ pdf14_clist_create_compositor(gx_device * dev, gx_device ** pcdev,
pdf14pct->params.Background_components !=
pdev->color_info.num_components)
return_error(gs_error_rangecheck);
+
/* We need to update the clist writer device procs based upon the
- the group color space. For simplicity, the list item is
+ the group color space. This ensures the proper color data is
+ written out to the device. For simplicity, the list item is
created even if the color space did not change */
- /* First store the current ones */
- pdf14_push_parent_color(dev, pgs);
-
- code = pdf14_update_device_color_procs_push_c(dev,
- pdf14pct->params.group_color,
- pdf14pct->params.icc_hash, pgs,
- pdf14pct->params.iccprofile, false);
+ code = pdf14_clist_push_color_model(dev, cdev, pgs, pdf14pct, mem, false);
if (code < 0)
return code;
+
break;
case PDF14_BEGIN_TRANS_MASK:
/* We need to update the clist writer device procs based upon the
@@ -8828,32 +9639,12 @@ pdf14_clist_create_compositor(gx_device * dev, gx_device ** pcdev,
/* First store the current ones */
if (pdf14pct->params.subtype == TRANSPARENCY_MASK_None)
break;
- pdf14_push_parent_color(dev, pgs);
- /* If we are playing back from a clist, the iccprofile may need to be loaded */
- if (pdf14pct->params.iccprofile == NULL) {
- gs_pdf14trans_params_t *pparams_noconst = (gs_pdf14trans_params_t *)&(pdf14pct->params);
-
- pparams_noconst->iccprofile = gsicc_read_serial_icc((gx_device *) cdev,
- pdf14pct->params.icc_hash);
- if (pparams_noconst->iccprofile == NULL)
- return gs_throw(-1, "ICC data not found in clist");
- /* Keep a pointer to the clist device */
- pparams_noconst->iccprofile->dev = (gx_device *)cdev;
- /* Now we need to load the rest of the profile buffer */
- if (pparams_noconst->iccprofile->buffer == NULL) {
- gcmmhprofile_t dummy = gsicc_get_profile_handle_clist(pparams_noconst->iccprofile, mem);
-
- if (dummy == NULL)
- return_error(gs_error_VMerror);
- }
- }
- /* Now update the device procs */
- code = pdf14_update_device_color_procs_push_c(dev,
- pdf14pct->params.group_color,
- pdf14pct->params.icc_hash, pgs,
- pdf14pct->params.iccprofile, true);
+
+ /* Update the color settings of the clist writer. Store information in stack */
+ code = pdf14_clist_push_color_model(dev, cdev, pgs, pdf14pct, mem, true);
if (code < 0)
return code;
+
/* Also, if the BC is a value that may end up as something other
than transparent. We must use the parent colors bounding box in
determining the range of bands in which this mask can affect.
@@ -8874,7 +9665,7 @@ pdf14_clist_create_compositor(gx_device * dev, gx_device ** pcdev,
return 0; /* Avoids spurious ET calls in interpreter */
}
pdev->text_group = PDF14_TEXTGROUP_NO_BT; /* These can't be nested */
- code = pdf14_update_device_color_procs_pop_c(dev, pgs);
+ code = pdf14_clist_pop_color_model(dev, pgs);
if (code < 0)
return code;
break;
@@ -8888,7 +9679,7 @@ pdf14_clist_create_compositor(gx_device * dev, gx_device ** pcdev,
case PDF14_END_TRANS_GROUP:
/* We need to update the clist writer device procs based upon the
the group color space. */
- code = pdf14_update_device_color_procs_pop_c(dev,pgs);
+ code = pdf14_clist_pop_color_model(dev, pgs);
if (pdev->depth_within_smask)
pdev->depth_within_smask--;
if (code < 0)
@@ -9123,13 +9914,9 @@ pdf14_clist_update_params(pdf14_clist_device * pdev, const gs_gstate * pgs,
changed |= PDF14_SET_TEXT_KNOCKOUT;
params.text_knockout = pdev->text_knockout = pgs->text_knockout;
}
- if (pgs->shape.alpha != pdev->shape) {
- changed |= PDF14_SET_SHAPE_ALPHA;
- params.shape.alpha = pdev->shape = pgs->shape.alpha;
- }
- if (pgs->opacity.alpha != pdev->opacity) {
- changed |= PDF14_SET_OPACITY_ALPHA;
- params.opacity.alpha = pdev->opacity = pgs->opacity.alpha;
+ if (pgs->alphaisshape != pdev->ais) {
+ changed |= PDF14_SET_AIS;
+ params.ais = pdev->ais = pgs->alphaisshape;
}
if (pgs->overprint != pdev->overprint) {
changed |= PDF14_SET_OVERPRINT;
@@ -9147,9 +9934,13 @@ pdf14_clist_update_params(pdf14_clist_device * pdev, const gs_gstate * pgs,
changed |= PDF14_SET_STROKECONSTANTALPHA;
params.strokeconstantalpha = pdev->strokeconstantalpha = pgs->strokeconstantalpha;
}
- if (pgs->is_fill_color != pdev->op_state) {
+ if ((pgs->is_fill_color && pdev->op_state != PDF14_OP_STATE_FILL)) {
+ changed |= PDF_SET_FILLSTROKE_STATE;
+ params.op_fs_state = pdev->op_state = PDF14_OP_STATE_FILL;
+ }
+ if ((!pgs->is_fill_color && pdev->op_state != PDF14_OP_STATE_STROKE)) {
changed |= PDF_SET_FILLSTROKE_STATE;
- params.op_fs_state = pdev->op_state = pgs->is_fill_color;
+ params.op_fs_state = pdev->op_state = PDF14_OP_STATE_STROKE;
}
if (crop_blend_params) {
params.ctm = group_params->ctm;
@@ -9224,7 +10015,7 @@ pdf14_clist_fill_path(gx_device *dev, const gs_gstate *pgs,
/* Non-idempotent blends require a transparency
* group to be pushed because shadings might
* paint several pixels twice. */
- push_group = gs_currentopacityalpha(pgs) != 1.0 ||
+ push_group = pgs->fillconstantalpha != 1.0 ||
!blend_is_idempotent(gs_currentblendmode(pgs));
pinst =
(gs_pattern2_instance_t *)pdcolor->ccolor.pattern;
@@ -9252,6 +10043,7 @@ pdf14_clist_fill_path(gx_device *dev, const gs_gstate *pgs,
if (box.q.y > path_box.q.y)
box.q.y = path_box.q.y;
}
+ /* Group alpha set from fill value. push_shfill_group does reset to 1.0 */
code = push_shfill_group(pdev, &new_pgs, &box);
} else
update_lop_for_pdf14(&new_pgs, pdcolor);
@@ -9306,9 +10098,9 @@ pdf14_clist_stroke_path(gx_device *dev, const gs_gstate *pgs,
/* Non-idempotent blends require a transparency
* group to be pushed because shadings might
* paint several pixels twice. */
- push_group = gs_currentopacityalpha(pgs) != 1.0 ||
+ push_group = pgs->strokeconstantalpha != 1.0 ||
!blend_is_idempotent(gs_currentblendmode(pgs));
- if (pdev->trans_group_parent_cmap_procs != NULL) {
+ if (pdev->color_model_stack != NULL) {
pinst =
(gs_pattern2_instance_t *)pdcolor->ccolor.pattern;
pinst->saved->has_transparency = true;
@@ -9358,6 +10150,8 @@ pdf14_clist_stroke_path(gx_device *dev, const gs_gstate *pgs,
if (box.q.y > path_box.q.y)
box.q.y = path_box.q.y;
}
+ /* Group alpha set from fill value. push_shfill_group does reset to 1.0 */
+ new_pgs.fillconstantalpha = new_pgs.strokeconstantalpha;
code = push_shfill_group(pdev, &new_pgs, &box);
} else
update_lop_for_pdf14(&new_pgs, pdcolor);
@@ -9397,7 +10191,8 @@ pdf14_clist_fill_stroke_path_pattern_setup(gx_device* dev, const gs_gstate* cpgs
gs_transparency_group_params_t params = { 0 };
gs_fixed_rect clip_bbox;
gs_rect bbox, group_stroke_box;
- float opacity;
+ float fill_alpha;
+ float stroke_alpha;
gs_blend_mode_t blend_mode;
gs_fixed_rect path_bbox;
int expansion_code;
@@ -9407,7 +10202,8 @@ pdf14_clist_fill_stroke_path_pattern_setup(gx_device* dev, const gs_gstate* cpgs
const_breaker.cpgs = cpgs;
pgs = const_breaker.pgs;
- opacity = pgs->opacity.alpha;
+ fill_alpha = pgs->fillconstantalpha;
+ stroke_alpha = pgs->strokeconstantalpha;
blend_mode = pgs->blend_mode;
code = gx_curr_fixed_bbox(pgs, &clip_bbox, NO_PATH);
@@ -9447,87 +10243,92 @@ pdf14_clist_fill_stroke_path_pattern_setup(gx_device* dev, const gs_gstate* cpgs
/* See if overprint is enabled for both stroke and fill AND if ca == CA */
if (pgs->fillconstantalpha == pgs->strokeconstantalpha &&
- pgs->overprint && pgs->stroke_overprint &&
+ pgs->overprint && pgs->stroke_overprint && dev->icc_struct->sim_overprint &&
dev->color_info.polarity == GX_CINFO_POLARITY_SUBTRACTIVE) {
- /* Push a non-isolated non-knockout group with alpha = 1.0 and
- compatible overprint mode. Group will be composited with
- original alpha and blend mode */
+
params.Isolated = false;
- params.group_color = UNKNOWN;
+ params.group_color_type = UNKNOWN;
params.Knockout = false;
+ params.page_group = false;
+ params.group_opacity = fill_alpha;
+ params.group_shape = 1.0;
/* non-isolated non-knockout group pushed with original alpha and blend mode */
code = gs_begin_transparency_group(pgs, &params, &group_stroke_box, PDF14_BEGIN_TRANS_GROUP);
if (code < 0)
return code;
- /* Change alpha to 1.0 and blend mode to compatible overprint for actual drawing */
- (void)gs_setopacityalpha(pgs, 1.0); /* Can never fail */
+ /* Set alpha to 1.0 and compatible overprint mode for actual drawings */
+ (void)gs_setfillconstantalpha(pgs, 1.0);
+ (void)gs_setstrokeconstantalpha(pgs, 1.0);
(void)gs_setblendmode(pgs, BLEND_MODE_CompatibleOverprint); /* Can never fail */
- /* Do fill */
- if (pgs->fillconstantalpha > 0.0) {
- code = pdf14_clist_fill_path(dev, pgs, ppath, params_fill, pdevc_fill, pcpath);
- if (code < 0)
- goto cleanup;
- }
+ code = pdf14_clist_fill_path(dev, pgs, ppath, params_fill, pdevc_fill, pcpath);
+ if (code < 0)
+ goto cleanup;
- /* Do stroke */
- if (pgs->strokeconstantalpha > 0.0) {
- code = pdf14_clist_stroke_path(dev, pgs, ppath, params_stroke, pdevc_stroke, pcpath);
- if (code < 0)
- goto cleanup;
- }
+ code = pdf14_clist_stroke_path(dev, pgs, ppath, params_stroke, pdevc_stroke, pcpath);
+ if (code < 0)
+ goto cleanup;
} else {
/* Push a non-isolated knockout group. Do not change the alpha or
blend modes */
params.Isolated = false;
- params.group_color = UNKNOWN;
+ params.group_color_type = UNKNOWN;
params.Knockout = true;
+ params.page_group = false;
+ params.group_opacity = 1.0;
+ params.group_shape = 1.0;
/* non-isolated knockout group is pushed with alpha = 1.0 and Normal blend mode */
- (void)gs_setopacityalpha(pgs, 1.0); /* Can never fail */
+ (void)gs_setfillconstantalpha(pgs, 1.0);
(void)gs_setblendmode(pgs, BLEND_MODE_Normal); /* Can never fail */
-
code = gs_begin_transparency_group(pgs, &params, &group_stroke_box, PDF14_BEGIN_TRANS_GROUP);
+
/* restore blend mode for actual drawing in the group */
(void)gs_setblendmode(pgs, blend_mode); /* Can never fail */
- if (code < 0) {
- (void)gs_setopacityalpha(pgs, opacity); /* Can never fail */
- return code;
- }
- if (pgs->fillconstantalpha > 0.0) {
- (void)gs_setopacityalpha(pgs, pgs->fillconstantalpha); /* Can never fail */
+ if (fill_alpha > 0.0) {
+ (void)gs_setfillconstantalpha(pgs, fill_alpha);
/* If we are in an overprint situation, set the blend mode to compatible
overprint */
- if (pgs->overprint && dev->color_info.polarity == GX_CINFO_POLARITY_SUBTRACTIVE)
+ if (dev->icc_struct->sim_overprint && pgs->overprint &&
+ dev->color_info.polarity == GX_CINFO_POLARITY_SUBTRACTIVE)
(void)gs_setblendmode(pgs, BLEND_MODE_CompatibleOverprint); /* Can never fail */
code = pdf14_clist_fill_path(dev, pgs, ppath, params_fill, pdevc_fill, pcpath);
if (code < 0)
goto cleanup;
- if (pgs->overprint && dev->color_info.polarity == GX_CINFO_POLARITY_SUBTRACTIVE)
+ if (dev->icc_struct->sim_overprint && pgs->overprint &&
+ dev->color_info.polarity == GX_CINFO_POLARITY_SUBTRACTIVE)
(void)gs_setblendmode(pgs, blend_mode); /* Can never fail */
}
- if (pgs->strokeconstantalpha > 0.0) {
- (void)gs_setopacityalpha(pgs, pgs->strokeconstantalpha); /* Can never fail */
- if (pgs->stroke_overprint && dev->color_info.polarity == GX_CINFO_POLARITY_SUBTRACTIVE)
+ if (stroke_alpha > 0.0) {
+ /* Note that the stroke can end up looking like a fill here */
+ (void)gs_setstrokeconstantalpha(pgs, stroke_alpha);
+ (void)gs_setfillconstantalpha(pgs, stroke_alpha);
+
+ if (pgs->overprint && dev->color_info.polarity == GX_CINFO_POLARITY_SUBTRACTIVE)
(void)gs_setblendmode(pgs, BLEND_MODE_CompatibleOverprint); /* Can never fail */
code = pdf14_clist_stroke_path(dev, pgs, ppath, params_stroke, pdevc_stroke, pcpath);
if (code < 0)
goto cleanup;
+
+ if (dev->icc_struct->sim_overprint && pgs->overprint &&
+ dev->color_info.polarity == GX_CINFO_POLARITY_SUBTRACTIVE)
+ (void)gs_setblendmode(pgs, blend_mode); /* Can never fail */
}
}
cleanup:
/* Now during the pop do the compositing with alpha of 1.0 and normal blend */
- (void)gs_setopacityalpha(pgs, 1.0); /* Can never fail */
+ (void)gs_setfillconstantalpha(pgs, 1.0);
+ (void)gs_setstrokeconstantalpha(pgs, 1.0);
(void)gs_setblendmode(pgs, BLEND_MODE_Normal); /* Can never fail */
/* Restore where we were. If an error occured while in the group push
@@ -9540,7 +10341,8 @@ cleanup:
}
/* Restore if there were any changes */
- (void)gs_setopacityalpha(pgs, opacity); /* Can never fail */
+ (void)gs_setfillconstantalpha(pgs, fill_alpha);
+ (void)gs_setstrokeconstantalpha(pgs, stroke_alpha);
(void)gs_setblendmode(pgs, blend_mode); /* Can never fail */
return code;
@@ -9608,9 +10410,13 @@ pdf14_clist_text_begin(gx_device * dev, gs_gstate * pgs,
gs_text_enum_t *penum;
int code;
gs_blend_mode_t blend_mode = gs_currentblendmode(pgs);
- float opacity = gs_currentopacityalpha(pgs);
+ float opacity = pgs->fillconstantalpha;
+ float shape = 1.0;
bool blend_issue = !(blend_mode == BLEND_MODE_Normal || blend_mode == BLEND_MODE_Compatible || blend_mode == BLEND_MODE_CompatibleOverprint);
bool draw = !(text->operation & TEXT_DO_NONE);
+ uint text_mode = gs_currenttextrenderingmode(pgs);
+ bool text_stroke = (text_mode == 1 || text_mode == 2 || text_mode == 5 || text_mode == 6);
+ bool text_fill = (text_mode == 0 || text_mode == 2 || text_mode == 4 || text_mode == 6);
if_debug0m('v', memory, "[v]pdf14_clist_text_begin\n");
/*
@@ -9648,11 +10454,14 @@ pdf14_clist_text_begin(gx_device * dev, gs_gstate * pgs,
3) Text knockout is set to true
4) And we are actually drawing text
*/
- if (gs_currenttextknockout(pgs) && (blend_issue || opacity != 1.0) &&
- gs_currenttextrenderingmode(pgs) != 3 && /* don't bother with invisible text */
+
+ if (gs_currenttextknockout(pgs) && (blend_issue ||
+ (pgs->fillconstantalpha != 1.0 && text_fill) ||
+ (pgs->strokeconstantalpha != 1.0 && text_stroke)) &&
+ text_mode != 3 && /* don't bother with invisible text */
pdev->text_group == PDF14_TEXTGROUP_BT_NOT_PUSHED) {
if (draw) {
- code = pdf14_push_text_group(dev, pgs, blend_mode, opacity, true);
+ code = pdf14_push_text_group(dev, pgs, blend_mode, opacity, shape, true);
if (code == 0)
pdev->text_group = PDF14_TEXTGROUP_BT_PUSHED; /* Needed during clist writing */
}
@@ -9768,6 +10577,7 @@ pdf14_clist_begin_typed_image(gx_device * dev, const gs_gstate * pgs,
if_debug0m('v', pgs->memory, "[v]Pushing special trans group for image\n");
tgp.Isolated = true;
tgp.Knockout = false;
+ tgp.page_group = false;
tgp.mask_id = 0;
tgp.image_with_SMask = false;
tgp.idle = false;
@@ -9776,6 +10586,8 @@ pdf14_clist_begin_typed_image(gx_device * dev, const gs_gstate * pgs,
tgp.group_color_numcomps = ptile->ttrans->n_chan-1;
tgp.ColorSpace = NULL;
tgp.text_group = 0;
+ tgp.group_opacity = pgs->fillconstantalpha;
+ tgp.group_shape = 1.0;
/* This will handle the compositor command */
gs_begin_transparency_group((gs_gstate *) pgs_noconst, &tgp,
&bbox_out, PDF14_BEGIN_TRANS_GROUP);
@@ -10017,8 +10829,9 @@ c_pdf14trans_clist_read_update(gs_composite_t * pcte, gx_device * cdev,
switch (pdf14pct->params.pdf14_op) {
case PDF14_PUSH_DEVICE:
gsicc_adjust_profile_rc(cl_icc_profile, 1, "c_pdf14trans_clist_read_update");
- gsicc_adjust_profile_rc(p14dev->icc_struct->device_profile[0], -1, "c_pdf14trans_clist_read_update");
- p14dev->icc_struct->device_profile[0] = cl_icc_profile;
+ gsicc_adjust_profile_rc(p14dev->icc_struct->device_profile[GS_DEFAULT_DEVICE_PROFILE],
+ -1, "c_pdf14trans_clist_read_update");
+ p14dev->icc_struct->device_profile[GS_DEFAULT_DEVICE_PROFILE] = cl_icc_profile;
/*
* If we are blending using spot colors (i.e. the output device
* supports spot colors) then we need to transfer
@@ -10081,11 +10894,13 @@ c_pdf14trans_clist_read_update(gs_composite_t * pcte, gx_device * cdev,
happens to be something like CIELAB. Then we will blend in
RGB (unless a trans group is specified) */
if (cl_icc_profile->data_cs == gsCIELAB || cl_icc_profile->islab) {
- gsicc_adjust_profile_rc(p14dev->icc_struct->device_profile[0], -1, "c_pdf14trans_clist_read_update");
+ gsicc_adjust_profile_rc(p14dev->icc_struct->device_profile[GS_DEFAULT_DEVICE_PROFILE],
+ -1, "c_pdf14trans_clist_read_update");
/* Initial ref count from gsicc_read_serial_icc() is 1, which is what we want */
- p14dev->icc_struct->device_profile[0] = gsicc_read_serial_icc(cdev, pcrdev->trans_dev_icc_hash);
+ p14dev->icc_struct->device_profile[GS_DEFAULT_DEVICE_PROFILE] =
+ gsicc_read_serial_icc(cdev, pcrdev->trans_dev_icc_hash);
/* Keep a pointer to the clist device */
- p14dev->icc_struct->device_profile[0]->dev = (gx_device *) cdev;
+ p14dev->icc_struct->device_profile[GS_DEFAULT_DEVICE_PROFILE]->dev = (gx_device *) cdev;
}
break;
@@ -10095,7 +10910,7 @@ c_pdf14trans_clist_read_update(gs_composite_t * pcte, gx_device * cdev,
writing. */
cdev->color_info = p14dev->saved_target_color_info;
# endif
- break;
+ break;
default:
break; /* do nothing for remaining ops */
@@ -10359,9 +11174,13 @@ pdf14_increment_smask_color(gs_gstate * pgs, gx_device * dev)
result = gs_alloc_struct(pdev->memory->stable_memory, pdf14_smaskcolor_t,
&st_pdf14_smaskcolor,
"pdf14_increment_smask_color");
- if (result == NULL ) return(-1);
+ if (result == NULL)
+ return gs_error_VMerror;
+
result->profiles = gsicc_new_iccsmask(pdev->memory->stable_memory);
- if (result->profiles == NULL ) return(-1);
+ if (result->profiles == NULL)
+ return gs_error_VMerror;
+
pdev->smaskcolor = result;
result->profiles->smask_gray = pgs->icc_manager->default_gray;
@@ -10416,7 +11235,7 @@ pdf14_increment_smask_color(gs_gstate * pgs, gx_device * dev)
}
}
}
- return(0);
+ return 0;
}
static int
@@ -10498,7 +11317,7 @@ pdf14_decrement_smask_color(gs_gstate * pgs, gx_device * dev)
pdf14_free_smask_color(pdev);
}
}
- return(0);
+ return 0;
}
static void
@@ -10523,15 +11342,15 @@ pdf14_device_finalize(const gs_memory_t *cmem, void *vptr)
gx_device * const dev = (gx_device *)vptr;
pdf14_device * pdev = (pdf14_device *)dev;
- pdf14_cleanup_parent_color_profiles (pdev);
+ pdf14_cleanup_group_color_profiles (pdev);
if (pdev->ctx) {
pdf14_ctx_free(pdev->ctx);
pdev->ctx = NULL;
}
- while (pdev->trans_group_parent_cmap_procs) {
- pdf14_pop_parent_color(dev, NULL);
+ while (pdev->color_model_stack) {
+ pdf14_pop_group_color(dev, NULL);
}
gx_device_finalize(cmem, vptr);
}
diff --git a/base/gdevp14.h b/base/gdevp14.h
index e4d4dfaa..635ab111 100644
--- a/base/gdevp14.h
+++ b/base/gdevp14.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -97,18 +97,15 @@ struct pdf14_mask_s {
};
-/* A structure to hold information
- * about the parent color related
- * procs and other information.
- * These may change depending upon
- * if the blending space is different
- * than the base space. The structure
- * is a list that is updated upon
- * every transparency group push and pop */
+/* A structure to hold information about the group color related
+ * procs and other information. These may change depending upon
+ * if the blending space is different than the base space.
+ * The structure is a list that is updated upo every transparency
+ * group push and pop */
-typedef struct pdf14_parent_color_s pdf14_parent_color_t;
+typedef struct pdf14_group_color_s pdf14_group_color_t;
-struct pdf14_parent_color_s {
+struct pdf14_group_color_s {
int num_components;
bool isadditive;
gx_color_polarity_t polarity;
@@ -119,14 +116,14 @@ struct pdf14_parent_color_s {
uint max_color; /* Causes issues if these are not maintained */
const gx_color_map_procs *(*get_cmap_procs)(const gs_gstate *,
const gx_device *);
- const gx_cm_color_map_procs *(*parent_color_mapping_procs)(const gx_device *);
+ const gx_cm_color_map_procs *(*group_color_mapping_procs)(const gx_device *);
gx_color_index (*encode)(gx_device *, const gx_color_value value[]);
int (*decode)(gx_device *, gx_color_index, gx_color_value *);
- int (*parent_color_comp_index)(gx_device *, const char *, int, int);
+ int (*group_color_comp_index)(gx_device *, const char *, int, int);
const pdf14_procs_t * unpack_procs;
- const pdf14_nonseparable_blending_procs_t * parent_blending_procs;
+ const pdf14_nonseparable_blending_procs_t * blend_procs;
cmm_profile_t *icc_profile; /* Opaque to GC. Allocated in non-gc memory */
- pdf14_parent_color_t *previous;
+ pdf14_group_color_t *previous;
};
typedef struct pdf14_ctx_s pdf14_ctx;
@@ -137,6 +134,7 @@ struct pdf14_buf_s {
bool isolated;
bool knockout;
uint16_t alpha;
+ uint16_t opacity;
uint16_t shape;
gs_blend_mode_t blend_mode;
int num_spots; /* helpful when going between Gray+spots, RGB+spots, CMYK+spots */
@@ -145,7 +143,9 @@ struct pdf14_buf_s {
bool has_tags;
bool deep; /* false => 8 bits, true => 16 bits */
bool page_group;
-
+ bool group_popped; /* Can occur in cases where clist created shading groups */
+ /* If there is a group and is pushed and popped, with
+ nothing drawn AND the clist created shading groups */
gs_int_rect rect;
/* Note: the traditional GS name for rowstride is "raster" */
@@ -168,7 +168,7 @@ struct pdf14_buf_s {
gs_transparency_mask_subtype_t SMask_SubType;
uint mask_id;
- pdf14_parent_color_t *parent_color_info;
+ pdf14_group_color_t *group_color_info;
gs_transparency_color_t color_space; /* Different groups can have different spaces for blending */
gs_memory_t *memory;
@@ -189,6 +189,9 @@ struct pdf14_ctx_s {
int smask_depth; /* used to catch smasks embedded in smasks. bug691803 */
bool smask_blend;
bool deep; /* If true, 16 bit data, false, 8 bit data. */
+ bool has_tags;
+ int num_spots;
+ pdf14_group_color_t* base_color;
};
typedef struct gs_pdf14trans_params_s gs_pdf14trans_params_t;
@@ -208,6 +211,7 @@ typedef struct pdf14_device_s {
pdf14_ctx *ctx;
pdf14_smaskcolor_t *smaskcolor;
+ bool ais;
float opacity;
float shape;
float alpha; /* alpha = opacity * shape */
@@ -266,7 +270,7 @@ typedef struct pdf14_device_s {
dev_proc_get_color_mapping_procs(*my_get_color_mapping_procs);
dev_proc_get_color_comp_index(*my_get_color_comp_index);
- pdf14_parent_color_t *trans_group_parent_cmap_procs;
+ pdf14_group_color_t *color_model_stack;
} pdf14_device_t;
@@ -316,4 +320,6 @@ int gs_pdf14_device_color_mon_set(gx_device *pdev, bool monitoring);
/* depth are critical since these must match when reading back colors. */
bool pdf14_ok_to_optimize(gx_device *bdev);
+
+
#endif /* gdevp14_INCLUDED */
diff --git a/base/gdevpccm.c b/base/gdevpccm.c
index bd8906f2..fbbbf97c 100644
--- a/base/gdevpccm.c
+++ b/base/gdevpccm.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gdevpccm.h b/base/gdevpccm.h
index 89e76d21..ae3de6dc 100644
--- a/base/gdevpccm.h
+++ b/base/gdevpccm.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gdevpipe.c b/base/gdevpipe.c
index a7742e16..b4f2acb1 100644
--- a/base/gdevpipe.c
+++ b/base/gdevpipe.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -29,8 +29,14 @@
static int
do_pclose(FILE *file)
{
-#ifndef GS_NO_FILESYSTEM
- return pclose(file);
+#ifdef GS_NO_FILESYSTEM
+ return gs_error_ok;
+#else
+ int status = pclose(file);
+ if (status < 0 || status > 0)
+ return_error(gs_error_ioerror);
+
+ return gs_error_ok;
#endif
}
@@ -96,10 +102,11 @@ pipe_fopen(gx_io_device * iodev, const char *fname, const char *access,
static int
pipe_fclose(gx_io_device * iodev, gp_file * file)
{
-#ifndef GS_NO_FILESYSTEM
- gp_fclose(file);
-#endif
+#ifdef GS_NO_FILESYSTEM
return 0;
+#else
+ return gp_fclose(file);
+#endif
}
static int
diff --git a/base/gdevplnx.c b/base/gdevplnx.c
index a8e7aab1..3a85b6d0 100644
--- a/base/gdevplnx.c
+++ b/base/gdevplnx.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -29,6 +29,7 @@
#include "gxgetbit.h"
#include "gxiparam.h"
#include "gxgstate.h"
+#include "gsstate.h"
#include "gdevplnx.h"
/* Define the size of the locally allocated bitmap buffers. */
@@ -428,6 +429,7 @@ plane_device_init(gx_device_plane_extract *edev, gx_device *target,
gx_device_set_target((gx_device_forward *)edev, target);
gx_device_copy_params((gx_device *)edev, target);
edev->plane_dev = plane_dev;
+ gx_device_retain(plane_dev, true);
edev->plane = *render_plane;
plane_open_device((gx_device *)edev);
if (clear) {
@@ -841,6 +843,8 @@ typedef struct plane_image_enum_s {
const gs_gstate *pgs; /* original gs_gstate */
gs_gstate *pgs_image; /* modified gs_gstate state */
} plane_image_enum_t;
+/* Note that we include the pgs_image which is 'bytes' type (not gs_gstate) */
+/* It still needs to be traced so that a GC won't free it prematurely. */
gs_private_st_suffix_add3(st_plane_image_enum, plane_image_enum_t,
"plane_image_enum_t", plane_image_enum_enum_ptrs,
plane_image_enum_reloc_ptrs, st_gx_image_enum_common, info, pgs, pgs_image);
@@ -991,10 +995,9 @@ plane_begin_typed_image(gx_device * dev,
}
info = gs_alloc_struct(memory, plane_image_enum_t, &st_plane_image_enum,
"plane_image_begin_typed(info)");
- pgs_image = gs_gstate_copy_temp(pgs, memory);
+ pgs_image = gs_gstate_copy(pgs, memory);
if (pgs_image == 0 || info == 0)
goto fail;
- *pgs_image = *pgs;
pgs_image->client_data = info;
pgs_image->get_cmap_procs = plane_get_cmap_procs;
code = dev_proc(edev->plane_dev, begin_typed_image)
@@ -1034,6 +1037,7 @@ plane_image_end_image(gx_image_enum_common_t * info, bool draw_last)
plane_image_enum_t * const ppie = (plane_image_enum_t *)info;
int code = gx_image_end(ppie->info, draw_last);
+ ppie->pgs_image->client_data = NULL; /* this isn't a complete client_data struct */
gs_free_object(ppie->memory, ppie->pgs_image,
"plane_image_end_image(pgs_image)");
gx_image_free_enum(&info);
diff --git a/base/gdevplnx.h b/base/gdevplnx.h
index 05674636..63226cbc 100644
--- a/base/gdevplnx.h
+++ b/base/gdevplnx.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gdevppla.c b/base/gdevppla.c
index 6ff8f2da..a4df7798 100644
--- a/base/gdevppla.c
+++ b/base/gdevppla.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gdevppla.h b/base/gdevppla.h
index e132fcb6..d3092f0b 100644
--- a/base/gdevppla.h
+++ b/base/gdevppla.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gdevprn.c b/base/gdevprn.c
index 9d5c9e9f..9bcc5e50 100644
--- a/base/gdevprn.c
+++ b/base/gdevprn.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -37,10 +37,7 @@
/* GC information */
static
ENUM_PTRS_WITH(device_printer_enum_ptrs, gx_device_printer *pdev);
- if (PRINTER_IS_CLIST(pdev))
- ENUM_PREFIX(st_device_clist, 2);
- else
- ENUM_PREFIX(st_device_forward, 2);
+ ENUM_PREFIX(st_device_clist_mutatable, 2);
break;
case 0:ENUM_RETURN(gx_device_enum_ptr(pdev->parent));
case 1:ENUM_RETURN(gx_device_enum_ptr(pdev->child));
@@ -50,10 +47,7 @@ RELOC_PTRS_WITH(device_printer_reloc_ptrs, gx_device_printer *pdev)
{
pdev->parent = gx_device_reloc_ptr(pdev->parent, gcst);
pdev->child = gx_device_reloc_ptr(pdev->child, gcst);
- if (PRINTER_IS_CLIST(pdev))
- RELOC_PREFIX(st_device_clist);
- else
- RELOC_PREFIX(st_device_forward);
+ RELOC_PREFIX(st_device_clist_mutatable);
} RELOC_PTRS_END
public_st_device_printer();
@@ -67,7 +61,7 @@ const gx_device_procs prn_bg_procs =
/* Forward references */
int gdev_prn_maybe_realloc_memory(gx_device_printer *pdev,
- gdev_prn_space_params *old_space,
+ gdev_space_params *old_space,
int old_width, int old_height,
bool old_page_uses_transparency);
@@ -222,7 +216,7 @@ gdev_prn_dev_spec_op(gx_device *pdev, int dev_spec_op, void *data, int size)
static int /* returns 0 ok, else -ve error cde */
gdev_prn_setup_as_command_list(gx_device *pdev, gs_memory_t *buffer_memory,
byte **the_memory,
- const gdev_prn_space_params *space_params,
+ const gdev_space_params *space_params,
bool bufferSpace_is_exact)
{
gx_device_printer * const ppdev = (gx_device_printer *)pdev;
@@ -246,7 +240,7 @@ gdev_prn_setup_as_command_list(gx_device *pdev, gs_memory_t *buffer_memory,
BEGIN\
ulong *fp_ = (ulong *)&first_arg - 2;\
for (; fp_ && (fp_[1] & 0xff000000) == 0x08000000; fp_ = (ulong *)*fp_)\
- dmprintf2(buffer_memory, " fp=0x%lx ip=0x%lx\n", (ulong)fp_, fp_[1]);\
+ dmprintf2(buffer_memory, " fp="PRI_INTPTR" ip=0x%lx\n", (intptr_t)fp_, fp_[1]);\
END
dmputs(buffer_memory, "alloc buffer:\n");
BACKTRACE(pdev);
@@ -271,7 +265,7 @@ BACKTRACE(pdev);
open_c:
ppdev->buf = base;
ppdev->buffer_space = space;
- pclist_dev->common.is_printer = 1;
+ pclist_dev->common.orig_spec_op = dev_proc(ppdev, dev_spec_op);
clist_init_io_procs(pclist_dev, ppdev->BLS_force_memory);
clist_init_params(pclist_dev, base, space, target,
ppdev->printer_procs.buf_procs,
@@ -362,21 +356,21 @@ gdev_prn_tear_down(gx_device *pdev, byte **the_memory)
}
/* Reset device proc vector to default */
- if (ppdev->orig_procs.open_device != 0)
+ if (ppdev->orig_procs.open_device != NULL)
pdev->procs = ppdev->orig_procs;
- ppdev->orig_procs.open_device = 0; /* prevent uninit'd restore of procs */
+ ppdev->orig_procs.open_device = NULL; /* prevent uninit'd restore of procs */
return was_command_list;
}
static int
-gdev_prn_allocate(gx_device *pdev, gdev_prn_space_params *new_space_params,
+gdev_prn_allocate(gx_device *pdev, gdev_space_params *new_space_params,
int new_width, int new_height, bool reallocate)
{
gx_device_printer * const ppdev = (gx_device_printer *)pdev;
gx_device_memory * const pmemdev = (gx_device_memory *)pdev;
byte *the_memory = 0;
- gdev_prn_space_params save_params = ppdev->space_params;
+ gdev_space_params save_params = ppdev->space_params;
int save_width = 0x0badf00d; /* Quiet compiler */
int save_height = 0x0badf00d; /* Quiet compiler */
bool is_command_list = false; /* Quiet compiler */
@@ -400,7 +394,7 @@ gdev_prn_allocate(gx_device *pdev, gdev_prn_space_params *new_space_params,
ulong pdf14_trans_buffer_size = 0;
byte *base = 0;
bool bufferSpace_is_default = false;
- gdev_prn_space_params space_params;
+ gdev_space_params space_params;
gx_device_buf_space_t buf_space;
if (reallocate)
@@ -520,13 +514,15 @@ gdev_prn_allocate(gx_device *pdev, gdev_prn_space_params *new_space_params,
if (ecode == 0)
ecode = code;
- if ( code >= 0 || (reallocate && pass > 1) )
+ if (code >= 0 || (reallocate && pass > 1))
ppdev->procs = gs_clist_device_procs;
- /*
- * Now the device is a clist device, we enable multi-threaded rendering.
- * It will remain enabled, but that doesn't really cause any problems.
- */
- clist_enable_multi_thread_render(pdev);
+ if (code > 0) {
+ /*
+ * Now the device is a clist device, we enable multi-threaded rendering.
+ * It will remain enabled, but that doesn't really cause any problems.
+ */
+ clist_enable_multi_thread_render(pdev);
+ }
} else {
/* Render entirely in memory. */
gx_device *bdev = (gx_device *)pmemdev;
@@ -598,7 +594,7 @@ gdev_prn_allocate(gx_device *pdev, gdev_prn_space_params *new_space_params,
int
gdev_prn_allocate_memory(gx_device *pdev,
- gdev_prn_space_params *new_space_params,
+ gdev_space_params *new_space_params,
int new_width, int new_height)
{
return gdev_prn_allocate(pdev, new_space_params,
@@ -607,7 +603,7 @@ gdev_prn_allocate_memory(gx_device *pdev,
int
gdev_prn_reallocate_memory(gx_device *pdev,
- gdev_prn_space_params *new_space_params,
+ gdev_space_params *new_space_params,
int new_width, int new_height)
{
return gdev_prn_allocate(pdev, new_space_params,
@@ -795,7 +791,7 @@ gdev_prn_put_params(gx_device * pdev, gs_param_list * plist)
int width = pdev->width;
int height = pdev->height;
int nthreads = ppdev->num_render_threads_requested;
- gdev_prn_space_params save_sp;
+ gdev_space_params save_sp;
gs_param_string ofs;
gs_param_string bls;
gs_param_dict mdict;
@@ -1005,7 +1001,7 @@ gdev_prn_put_params(gx_device * pdev, gs_param_list * plist)
/* Default routine to (not) override current space_params. */
void
gx_default_get_space_params(const gx_device_printer *printer_dev,
- gdev_prn_space_params *space_params)
+ gdev_space_params *space_params)
{
return;
}
@@ -1715,11 +1711,11 @@ gdev_prn_copy_scan_lines(gx_device_printer * pdev, int y, byte * str, uint size)
count = max(0, min(requested_count, pdev->height - y));
for (i = 0; i < count; i++, dest += line_size) {
code = gdev_prn_get_bits(pdev, y + i, dest, NULL);
- if (code < 0)
+ if (code < 0)
break; /* will fill remaining lines and return code outside the loop */
}
/* fill remaining lines with 0's to prevent printing garbage */
- memset(dest, 0, line_size * (requested_count - i));
+ memset(dest, 0, (size_t)line_size * (requested_count - i));
return (code < 0 ) ? code : count;
}
@@ -1742,35 +1738,10 @@ gdev_prn_close_printer(gx_device * pdev)
return 0;
}
-/* compare two space_params, we can't do this with memcmp since there is padding in the structure */
-static int
-compare_gdev_prn_space_params(const gdev_prn_space_params sp1,
- const gdev_prn_space_params sp2) {
- if (sp1.MaxBitmap != sp2.MaxBitmap)
- return(1);
- if (sp1.BufferSpace != sp2.BufferSpace)
- return(1);
- if (sp1.band.BandWidth != sp2.band.BandWidth)
- return(1);
- if (sp1.band.BandHeight != sp2.band.BandHeight)
- return(1);
- if (sp1.band.BandBufferSpace != sp2.band.BandBufferSpace)
- return(1);
- if (sp1.band.tile_cache_size != sp2.band.tile_cache_size)
- return(1);
- if (sp1.params_are_read_only != sp2.params_are_read_only)
- return(1);
- if (sp1.banding_type != sp2.banding_type)
- return(1);
-
- return(0);
-}
-
-
/* If necessary, free and reallocate the printer memory after changing params */
int
gdev_prn_maybe_realloc_memory(gx_device_printer *prdev,
- gdev_prn_space_params *old_sp,
+ gdev_space_params *old_sp,
int old_width, int old_height,
bool old_page_uses_transparency)
{
@@ -1787,13 +1758,13 @@ gdev_prn_maybe_realloc_memory(gx_device_printer *prdev,
* for these filesets.
*/
if (prdev->is_open &&
- (compare_gdev_prn_space_params(prdev->space_params, *old_sp) != 0 ||
+ (gdev_space_params_cmp(prdev->space_params, *old_sp) != 0 ||
prdev->width != old_width || prdev->height != old_height ||
prdev->page_uses_transparency != old_page_uses_transparency)
) {
int new_width = prdev->width;
int new_height = prdev->height;
- gdev_prn_space_params new_sp;
+ gdev_space_params new_sp;
#ifdef DEBUGGING_HACKS
debug_dump_bytes(pdev->memory, (const byte *)old_sp, (const byte *)(old_sp + 1), "old");
diff --git a/base/gdevprn.h b/base/gdevprn.h
index 1d05b9c9..5b2690b6 100644
--- a/base/gdevprn.h
+++ b/base/gdevprn.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -99,7 +99,7 @@ typedef struct gx_printer_device_procs_s {
*/
#define prn_dev_proc_get_space_params(proc)\
- void proc(const gx_device_printer *, gdev_prn_space_params *)
+ void proc(const gx_device_printer *, gdev_space_params *)
prn_dev_proc_get_space_params((*get_space_params));
} gx_printer_device_procs;
@@ -127,8 +127,7 @@ typedef struct bg_print_s {
} bg_print_t;
#define gx_prn_device_common\
- byte skip[max(sizeof(gx_device_memory), sizeof(gx_device_clist)) -\
- sizeof(gx_device) + sizeof(double) /* padding */];\
+ gx_device_clist_mutatable_common;\
gx_printer_device_procs printer_procs;\
/* ------ Device parameters that must be set ------ */\
/* ------ before calling the device open routine. ------ */\
@@ -141,18 +140,11 @@ typedef struct bg_print_s {
/* ------ End of parameters ------ */\
bool file_is_new; /* true iff file just opened */\
gp_file *file; /* output file */\
- long buffer_space; /* amount of space for clist buffer, */\
- /* 0 means not using clist */\
- byte *buf; /* buffer for rendering */\
- gs_memory_t *buffer_memory; /* allocator for command list */\
- gs_memory_t *bandlist_memory; /* allocator for bandlist files */\
- uint clist_disable_mask; /* mask of clist options to disable */\
bool bg_print_requested; /* request background printing of page from clist */\
bg_print_t bg_print; /* background printing data shared with thread */\
int num_render_threads_requested; /* for multiple band rendering threads */\
gx_saved_pages_list *saved_pages_list; /* list when we are saving pages instead of printing */\
- gx_device_procs save_procs_while_delaying_erasepage; /* save device procs while delaying erasepage. */\
- gx_device_procs orig_procs /* original (std_)procs */
+ gx_device_procs save_procs_while_delaying_erasepage /* save device procs while delaying erasepage. */
/* The device descriptor */
struct gx_device_printer_s {
@@ -161,7 +153,7 @@ struct gx_device_printer_s {
};
/* A useful check to determine if the page is being rendered as a clist */
-#define PRINTER_IS_CLIST(pdev) ((gx_device_printer *)(pdev)->buffer_space != 0)
+#define PRINTER_IS_CLIST(pdev) (((gx_device_printer *)(pdev))->buffer_space != 0)
extern_st(st_device_printer);
#define public_st_device_printer() /* in gdevprn.c */\
@@ -300,7 +292,7 @@ extern const gx_device_procs prn_bg_procs;
*/
#define prn_device_body_rest2_(print_page, print_page_copies, duplex_set)\
{ 0 }, /* std_procs */\
- { 0 }, /* skip */\
+ GX_CLIST_MUTATABLE_DEVICE_DEFAULTS,\
{ print_page,\
print_page_copies,\
{ gx_default_create_buf_device,\
@@ -316,17 +308,11 @@ extern const gx_device_procs prn_bg_procs;
0/*false*/, duplex_set, /* Duplex[_set] */\
0/*false*/, /* file_is_new */\
0, /* *file */\
- 0, /* buffer_space */\
- 0, /* *buf */\
- 0, /* *buffer_memory */\
- 0, /* *bandlist_memory */\
- 0, /* clist_disable_mask */\
0/*false*/, /* bg_print_requested */\
{ 0/*sema*/, 0/*device*/, 0/*thread_id*/, 0/*num_copies*/, 0/*return_code*/ }, /* bg_print */\
0, /* num_render_threads_requested */\
0, /* saved_pages_list */\
- { 0 }, /* save_procs_while_delaying_erasepage */\
- { 0 } /* ... orig_procs */
+ { 0 } /* save_procs_while_delaying_erasepage */
#define prn_device_body_rest_(print_page)\
prn_device_body_rest2_(print_page, gx_default_print_page_copies, -1)
#define prn_device_body_copies_rest_(print_page_copies)\
@@ -580,10 +566,10 @@ int gdev_prn_print_scan_lines(gx_device *);
/* Allocate / reallocate / free printer memory. */
int gdev_prn_allocate_memory(gx_device *pdev,
- gdev_prn_space_params *space,
+ gdev_space_params *space,
int new_width, int new_height);
int gdev_prn_reallocate_memory(gx_device *pdev,
- gdev_prn_space_params *space,
+ gdev_space_params *space,
int new_width, int new_height);
int gdev_prn_free_memory(gx_device *pdev);
diff --git a/base/gdevpxat.h b/base/gdevpxat.h
index 3bc8afea..1b70c569 100644
--- a/base/gdevpxat.h
+++ b/base/gdevpxat.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gdevpxen.h b/base/gdevpxen.h
index e6a9702e..e4c6b76f 100644
--- a/base/gdevpxen.h
+++ b/base/gdevpxen.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gdevpxop.h b/base/gdevpxop.h
index 7f626f77..f63e30ac 100644
--- a/base/gdevpxop.h
+++ b/base/gdevpxop.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gdevrops.c b/base/gdevrops.c
index f4806c55..544593d9 100644
--- a/base/gdevrops.c
+++ b/base/gdevrops.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gdevsclass.c b/base/gdevsclass.c
index 60f110c4..dfa721f7 100644
--- a/base/gdevsclass.c
+++ b/base/gdevsclass.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gdevsclass.h b/base/gdevsclass.h
index cc7a4359..e020e2c4 100644
--- a/base/gdevsclass.h
+++ b/base/gdevsclass.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gdevvec.c b/base/gdevvec.c
index 7136d76c..3204720f 100644
--- a/base/gdevvec.c
+++ b/base/gdevvec.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gdevvec.h b/base/gdevvec.h
index 29298438..3ce08b2c 100644
--- a/base/gdevvec.h
+++ b/base/gdevvec.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gen_ordered.c b/base/gen_ordered.c
index c8574c6e..e34e6202 100644
--- a/base/gen_ordered.c
+++ b/base/gen_ordered.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -381,7 +381,7 @@ htsc_mask_to_tos(htsc_dig_grid_t *final_mask)
}
#endif
/* Sort */
- qsort(values, height * width, sizeof(htsc_threshpoint_t), compare);
+ qsort(values, (size_t)height * width, sizeof(htsc_threshpoint_t), compare);
#if RAW_SCREEN_DUMP
EPRINTF(final_mask->memory, "Sorted\n");
for (k = 0; k < count; k++) {
@@ -483,7 +483,7 @@ htsc_determine_cell_shape(int *x_out, int *y_out, int *v_out,
}
x = x_use;
}
- if (ratio >= 1 && ratio!=0) {
+ if (ratio >= 1) {
/* The minimal step is in y */
if (params.verbose > 0) {
PRINTF(mem, "x\ty\tu\tv\tAngle\tLPI\tLevels\n");
@@ -808,10 +808,10 @@ htsc_create_dot_mask(htsc_dig_grid_t *dot_grid, int x, int y, int u, int v,
dot_grid->height = abs(val_min) + y;
dot_grid->width = x + u;
dot_grid->data =
- (int *) ALLOC(dot_grid->memory, dot_grid->height * dot_grid->width * sizeof(int));
+ (int *) ALLOC(dot_grid->memory, (size_t)dot_grid->height * dot_grid->width * sizeof(int));
if (dot_grid->data == NULL)
return -1;
- memset(dot_grid->data,0,dot_grid->height * dot_grid->width * sizeof(int));
+ memset(dot_grid->data,0,(size_t)dot_grid->height * dot_grid->width * sizeof(int));
index_x = 0;
for (k = 0; k < (x+u); k++) {
index_y=0;
@@ -839,10 +839,10 @@ htsc_create_dot_mask(htsc_dig_grid_t *dot_grid, int x, int y, int u, int v,
/* All points are valid */
dot_grid->height = y;
dot_grid->width = u;
- dot_grid->data = (int *) ALLOC(dot_grid->memory, y * u * sizeof(int));
+ dot_grid->data = (int *) ALLOC(dot_grid->memory, (size_t)y * u * sizeof(int));
if (dot_grid->data == NULL)
return -1;
- memset(dot_grid->data, -1, y * u * sizeof(int));
+ memset(dot_grid->data, -1, (size_t)y * u * sizeof(int));
val_min = 0;
}
return 0;
@@ -1058,10 +1058,10 @@ htsc_allocate_supercell(htsc_dig_grid_t *super_cell, int x, int y, int u,
super_cell->height = super_size_y;
super_cell->width = super_size_x;
super_cell->data =
- (int *) ALLOC(dot_grid.memory, super_size_x * super_size_y * sizeof(int));
+ (int *) ALLOC(dot_grid.memory, (size_t)super_size_x * super_size_y * sizeof(int));
if (super_cell->data == NULL)
return -1;
- memset(super_cell->data, 0, super_size_x * super_size_y * sizeof(int));
+ memset(super_cell->data, 0, (size_t)super_size_x * super_size_y * sizeof(int));
return 0;
}
@@ -1733,13 +1733,13 @@ htsc_create_holladay_mask(htsc_dig_grid_t super_cell, int H, int L,
final_mask->height = H;
final_mask->width = L;
- final_mask->data = (int *) ALLOC(final_mask->memory, H * L * sizeof(int));
+ final_mask->data = (int *) ALLOC(final_mask->memory, (size_t)H * L * sizeof(int));
if (final_mask->data == NULL) {
code = -1;
goto out;
}
- thresholds = (double *) ALLOC(final_mask->memory, H * L * sizeof(double));
+ thresholds = (double *) ALLOC(final_mask->memory, (size_t)H * L * sizeof(double));
if (final_mask->data == NULL) {
code = -1;
goto out;
@@ -1753,7 +1753,7 @@ htsc_create_holladay_mask(htsc_dig_grid_t super_cell, int H, int L,
thresholds[number_points - k - 1] =
ROUND(temp * MAXVAL * white_scale + 1);
}
- memset(final_mask->data, 0, H * L * sizeof(int));
+ memset(final_mask->data, 0, (size_t)H * L * sizeof(int));
for (j = 0; j < H; j++) {
for (k = 0; k < L; k++) {
@@ -1783,13 +1783,14 @@ htsc_create_nondithered_mask(htsc_dig_grid_t super_cell, int H, int L,
final_mask->height = super_cell.height;
final_mask->width = super_cell.width;
- final_mask->data = (int *) ALLOC(final_mask->memory, super_cell.height * super_cell.width *
+ final_mask->data = (int *) ALLOC(final_mask->memory,
+ (size_t)super_cell.height * super_cell.width *
sizeof(int));
if (final_mask->data == NULL) {
code = -1;
goto out;
}
- thresholds = (double *) ALLOC(final_mask->memory, H * L * sizeof(double));
+ thresholds = (double *) ALLOC(final_mask->memory, (size_t)H * L * sizeof(double));
if (thresholds == NULL) {
code = -1;
goto out;
@@ -1803,7 +1804,7 @@ htsc_create_nondithered_mask(htsc_dig_grid_t super_cell, int H, int L,
thresholds[number_points - k - 1] =
ROUND(temp * MAXVAL * white_scale + 1);
}
- memset(final_mask->data, 0, super_cell.height * super_cell.width *
+ memset(final_mask->data, 0, (size_t)super_cell.height * super_cell.width *
sizeof(int));
for (j = 0; j < super_cell.height; j++) {
for (k = 0; k < super_cell.width; k++) {
diff --git a/base/gen_ordered.h b/base/gen_ordered.h
index f1bf750e..30024773 100644
--- a/base/gen_ordered.h
+++ b/base/gen_ordered.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/genarch.c b/base/genarch.c
index c3a63277..6953c190 100644
--- a/base/genarch.c
+++ b/base/genarch.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/genconf.c b/base/genconf.c
index de9afc95..58b271c0 100644
--- a/base/genconf.c
+++ b/base/genconf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gendev.c b/base/gendev.c
index 8808feb6..8001e26a 100644
--- a/base/gendev.c
+++ b/base/gendev.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/genht.c b/base/genht.c
index 5a673170..7b46a051 100644
--- a/base/genht.c
+++ b/base/genht.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gp.h b/base/gp.h
index 948bbdb3..3321c4e6 100644
--- a/base/gp.h
+++ b/base/gp.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -191,7 +191,7 @@ struct gp_file_s {
/* Allocate a structure based on a gp_file, initialise it with the
* given prototype, and zero the rest of it. Returns NULL on failure
* to allocate. */
-gp_file *gp_file_alloc(gs_memory_t *mem, const gp_file_ops_t *prototype, size_t size, const char *cname);
+gp_file *gp_file_alloc(const gs_memory_t *mem, const gp_file_ops_t *prototype, size_t size, const char *cname);
/* Called automatically by gp_fclose. May be needed for implementers to
* clear up allocations if errors occur while opening files. */
@@ -252,7 +252,7 @@ gp_feof(gp_file *f) {
static inline int
gp_fclose(gp_file *f) {
- int ret = (f->ops.close)(f);
+ int ret = (f->ops.close ? (f->ops.close)(f) : 0);
gp_file_dealloc(f);
return ret;
}
@@ -297,6 +297,8 @@ gp_fflush(gp_file *f) {
static inline int
gp_ferror(gp_file *f) {
+ if (f->ops.ferror == NULL)
+ return 0;
return (f->ops.ferror)(f);
}
@@ -429,6 +431,12 @@ gp_file *gp_open_scratch_file_rm(const gs_memory_t *mem,
char fname[gp_file_name_sizeof],
const char *mode);
+/* Unlink utf-8 filename, subject to 'control' path permissions */
+int gp_unlink(gs_memory_t *mem, const char *fname);
+
+/* Rename utf-8 filename, subject to 'control' path permissions */
+int gp_rename(gs_memory_t *mem, const char *from, const char *to);
+
/* gp_stat is defined in stat_.h rather than here due to macro problems */
typedef enum {
@@ -621,6 +629,10 @@ FILE *gp_fopen_impl(gs_memory_t *mem, const char *fname, const char *mode);
FILE *gp_fdup_impl(FILE *f, const char *mode);
+int gp_unlink_impl(gs_memory_t *mem, const char *fname);
+
+int gp_rename_impl(gs_memory_t *mem, const char *from, const char *to);
+
int gp_pread_impl(char *buf, size_t count, gs_offset_t offset, FILE *f);
int gp_pwrite_impl(const char *buf, size_t count, gs_offset_t offset, FILE *f);
@@ -644,7 +656,8 @@ gp_open_printer_impl(gs_memory_t *mem,
int *binary_mode,
int (**close)(FILE *));
-/* Create a scratch file (utf8) (self-deleting if remove) */
+/* Create a scratch file (utf8) (self-deleting if remove). If remove
+ * is requested, but cannot be honoured, the file is NOT opened. */
FILE *gp_open_scratch_file_impl(const gs_memory_t *mem,
const char *prefix,
char fname[gp_file_name_sizeof],
diff --git a/base/gp_dosfe.c b/base/gp_dosfe.c
index 48347c18..abea97c8 100644
--- a/base/gp_dosfe.c
+++ b/base/gp_dosfe.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gp_dosfs.c b/base/gp_dosfs.c
index cd143535..76779ad5 100644
--- a/base/gp_dosfs.c
+++ b/base/gp_dosfs.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gp_dvx.c b/base/gp_dvx.c
index e59a2692..52918cee 100644
--- a/base/gp_dvx.c
+++ b/base/gp_dvx.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gp_getnv.c b/base/gp_getnv.c
index 6e29e0b3..5eab3e34 100644
--- a/base/gp_getnv.c
+++ b/base/gp_getnv.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gp_mktmp.c b/base/gp_mktmp.c
index ebdd5ee6..5ecef5d7 100644
--- a/base/gp_mktmp.c
+++ b/base/gp_mktmp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gp_msdll.c b/base/gp_msdll.c
index c5ae075d..040dd69f 100644
--- a/base/gp_msdll.c
+++ b/base/gp_msdll.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gp_msdos.c b/base/gp_msdos.c
index 8621911c..16b6e1fe 100644
--- a/base/gp_msdos.c
+++ b/base/gp_msdos.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gp_mshdl.c b/base/gp_mshdl.c
index 98d2d3cf..8bc04a1c 100644
--- a/base/gp_mshdl.c
+++ b/base/gp_mshdl.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gp_mslib.c b/base/gp_mslib.c
index d0f7e26a..3f62985c 100644
--- a/base/gp_mslib.c
+++ b/base/gp_mslib.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gp_mspol.c b/base/gp_mspol.c
index 155a5f19..7dc80602 100644
--- a/base/gp_mspol.c
+++ b/base/gp_mspol.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -39,7 +39,7 @@ gp_check_interrupts(const gs_memory_t *mem)
}
#endif
if (mem && mem->gs_lib_ctx && mem->gs_lib_ctx->core->poll_fn)
- return (*mem->gs_lib_ctx->core->poll_fn)(mem->gs_lib_ctx->core->caller_handle);
+ return (*mem->gs_lib_ctx->core->poll_fn)(mem->gs_lib_ctx->core->poll_caller_handle);
return 0;
}
#endif
diff --git a/base/gp_msprn.c b/base/gp_msprn.c
index cca95e0e..758b8a55 100644
--- a/base/gp_msprn.c
+++ b/base/gp_msprn.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -72,12 +72,12 @@ const gx_io_device gs_iodev_printer = {
};
typedef struct tid_s {
- unsigned long tid;
+ uintptr_t tid;
} tid_t;
void mswin_printer_thread(void *arg)
{
- int fd = (int)arg;
+ int fd = (int)(intptr_t)arg;
char pname[gp_file_name_sizeof];
char data[4096];
HANDLE hprinter = INVALID_HANDLE_VALUE;
@@ -162,10 +162,10 @@ mswin_printer_fopen(gx_io_device * iodev, const char *fname, const char *access,
DWORD version = GetVersion();
HANDLE hprinter;
int pipeh[2];
- unsigned long tid;
+ uintptr_t tid;
HANDLE hthread;
char pname[gp_file_name_sizeof];
- unsigned long *ptid = &((tid_t *)(iodev->state))->tid;
+ uintptr_t *ptid = &((tid_t *)(iodev->state))->tid;
gs_lib_ctx_t *ctx = mem->gs_lib_ctx;
gs_fs_list_t *fs = ctx->core->fs;
@@ -224,7 +224,7 @@ mswin_printer_fopen(gx_io_device * iodev, const char *fname, const char *access,
}
/* start a thread to read the pipe */
- tid = _beginthread(&mswin_printer_thread, 32768, (void *)(pipeh[0]));
+ tid = _beginthread(&mswin_printer_thread, 32768, (void *)(intptr_t)(pipeh[0]));
if (tid == -1) {
gp_fclose(*pfile);
*pfile = NULL;
@@ -242,7 +242,7 @@ mswin_printer_fopen(gx_io_device * iodev, const char *fname, const char *access,
*pfile = NULL;
return_error(gs_error_invalidfileaccess);
}
- *ptid = (unsigned long)hthread;
+ *ptid = (uintptr_t)hthread;
/* Give the name of the printer to the thread by writing
* it to the pipe. This is avoids elaborate thread
@@ -257,7 +257,7 @@ mswin_printer_fopen(gx_io_device * iodev, const char *fname, const char *access,
static int
mswin_printer_fclose(gx_io_device * iodev, gp_file * file)
{
- unsigned long *ptid = &((tid_t *)(iodev->state))->tid;
+ uintptr_t *ptid = &((tid_t *)(iodev->state))->tid;
HANDLE hthread;
gp_fclose(file);
if (*ptid != -1) {
diff --git a/base/gp_mswin.c b/base/gp_mswin.c
index fd7cc826..1415cc82 100644
--- a/base/gp_mswin.c
+++ b/base/gp_mswin.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -145,7 +145,7 @@ gp_close_printer(gp_file * pfile, const char *fname)
return; /* a file, not a printer */
gp_printfile(mem, win_prntmp, fname);
- unlink(win_prntmp);
+ unlink(win_prntmp); /* unlink not gp_unlink */
#endif
}
@@ -537,7 +537,7 @@ FILE *mswin_popen(const char *cmd, const char *mode)
else {
CloseHandle(piProcInfo.hProcess);
CloseHandle(piProcInfo.hThread);
- handle = _open_osfhandle((long)hChildStdinWr, 0);
+ handle = _open_osfhandle((intptr_t)hChildStdinWr, 0);
}
if (hChildStdinRd != INVALID_HANDLE_VALUE)
@@ -670,7 +670,7 @@ gp_open_scratch_file_impl(const gs_memory_t *mem,
}
if (hfile != INVALID_HANDLE_VALUE) {
/* Associate a C file handle with an OS file handle. */
- fd = _open_osfhandle((long)hfile, 0);
+ fd = _open_osfhandle((intptr_t)hfile, 0);
if (fd == -1)
CloseHandle(hfile);
else {
diff --git a/base/gp_mswin.h b/base/gp_mswin.h
index 9c6aae1d..bf187903 100644
--- a/base/gp_mswin.h
+++ b/base/gp_mswin.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gp_nsync.c b/base/gp_nsync.c
index d1ca98f6..32bb772d 100644
--- a/base/gp_nsync.c
+++ b/base/gp_nsync.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gp_ntfs.c b/base/gp_ntfs.c
index 40bd1489..4bcbc341 100644
--- a/base/gp_ntfs.c
+++ b/base/gp_ntfs.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gp_nxpsprn.c b/base/gp_nxpsprn.c
index b777c6ad..e74d64a3 100644
--- a/base/gp_nxpsprn.c
+++ b/base/gp_nxpsprn.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gp_os2.c b/base/gp_os2.c
index 63c7bdb0..26a1165b 100644
--- a/base/gp_os2.c
+++ b/base/gp_os2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -328,7 +328,7 @@ gp_close_printer(gp_file *pfile, const char *fname)
if ((strlen(fname) == 0) || is_os2_spool(fname)) {
/* spool temporary file */
pm_spool(mem, pm_prntmp, fname);
- unlink(pm_prntmp);
+ unlink(pm_prntmp); /* unlink, not gp_unlink */
}
}
@@ -590,11 +590,11 @@ bool gp_fseekable_impl(FILE *f)
{
struct stat s;
int fno;
-
+
fno = fileno(f);
if (fno < 0)
return(false);
-
+
if (fstat(fno, &s) < 0)
return(false);
diff --git a/base/gp_os2.h b/base/gp_os2.h
index d9456a27..a0b72c03 100644
--- a/base/gp_os2.h
+++ b/base/gp_os2.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gp_os2fs.c b/base/gp_os2fs.c
index 98c0bb90..943d9458 100644
--- a/base/gp_os2fs.c
+++ b/base/gp_os2fs.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -268,6 +268,18 @@ gp_fopen_impl(const gs_memory_t *mem, const char *fname, const char *mode)
return fopen(fname, mode);
}
+int
+gp_unlink_impl(gs_memory_t *mem, const char *fname)
+{
+ return unlink(fname);
+}
+
+int
+gp_rename_impl(gs_memory_t *mem, const char *from, const char *to)
+{
+ return rename(from, to);
+}
+
int gp_stat_impl(gs_memory_t *mem, const char *path, struct stat *buf)
{
return stat(path, buf);
diff --git a/base/gp_os2pr.c b/base/gp_os2pr.c
index cfafdb46..ebbc50b3 100644
--- a/base/gp_os2pr.c
+++ b/base/gp_os2pr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -154,6 +154,6 @@ os2_printer_fclose(gx_io_device * iodev, FILE * file)
os2_printer_t *pr = (os2_printer_t *)iodev->state;
fclose(file);
pm_spool(pr->memory, pr->filename, pr->queue);
- unlink(pr->filename);
+ unlink(pr->filename); /* unlink, not gp_unlink */
return 0;
}
diff --git a/base/gp_os9.c b/base/gp_os9.c
index 8baad73c..190b1277 100644
--- a/base/gp_os9.c
+++ b/base/gp_os9.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gp_paper.c b/base/gp_paper.c
index 5ed28391..f4677338 100644
--- a/base/gp_paper.c
+++ b/base/gp_paper.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gp_psync.c b/base/gp_psync.c
index 3a7d6a4d..6d2c583e 100644
--- a/base/gp_psync.c
+++ b/base/gp_psync.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gp_stdia.c b/base/gp_stdia.c
index 1f7b97fc..07da07e7 100644
--- a/base/gp_stdia.c
+++ b/base/gp_stdia.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gp_stdin.c b/base/gp_stdin.c
index 3bceadae..68230cdd 100644
--- a/base/gp_stdin.c
+++ b/base/gp_stdin.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gp_strdl.c b/base/gp_strdl.c
index f85c9440..b6b345c0 100644
--- a/base/gp_strdl.c
+++ b/base/gp_strdl.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gp_unifn.c b/base/gp_unifn.c
index 643f3973..bbba02a4 100644
--- a/base/gp_unifn.c
+++ b/base/gp_unifn.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gp_unifs.c b/base/gp_unifs.c
index 70752634..dea5c6da 100644
--- a/base/gp_unifs.c
+++ b/base/gp_unifs.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -139,7 +139,7 @@ gp_open_scratch_file_impl(const gs_memory_t *mem,
emprintf1(mem, "**** Could not open temporary file %s\n", fname);
if (remove)
- unlink(fname);
+ unlink(fname); /* unlink, not gp_unlink here. */
return fp;
#endif
@@ -156,6 +156,18 @@ gp_fopen_impl(gs_memory_t *mem, const char *fname, const char *mode)
#endif
}
+int
+gp_unlink_impl(gs_memory_t *mem, const char *fname)
+{
+ return unlink(fname);
+}
+
+int
+gp_rename_impl(gs_memory_t *mem, const char *from, const char *to)
+{
+ return rename(from, to);
+}
+
int gp_stat_impl(const gs_memory_t *mem, const char *path, struct stat *buf)
{
return stat(path, buf);
diff --git a/base/gp_unix.c b/base/gp_unix.c
index bd2745f9..e4599508 100644
--- a/base/gp_unix.c
+++ b/base/gp_unix.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -373,6 +373,9 @@ void *gp_enumerate_fonts_init(gs_memory_t *mem)
pat = FcPatternBuild(NULL,
FC_OUTLINE, FcTypeBool, 1,
FC_SCALABLE, FcTypeBool, 1,
+#if defined(FC_MAJOR) && FC_MAJOR >= 2 && defined(FC_MINOR) && FC_MINOR >= 13
+ FC_VARIABLE, FcTypeBool, 0,
+#endif
NULL);
os = FcObjectSetBuild(FC_FILE, FC_OUTLINE,
FC_FAMILY, FC_WEIGHT, FC_SLANT,
@@ -411,42 +414,50 @@ int gp_enumerate_fonts_next(void *enum_state, char **fontname, char **path)
return 0; /* gp_enumerate_fonts_init failed for some reason */
}
- if (state->index == state->font_list->nfont) {
- return 0; /* we've run out of fonts */
- }
-
- /* Bits of the following were borrowed from Red Hat's
- * fontconfig patch for Ghostscript 7 */
- font = state->font_list->fonts[state->index];
+ /* We use the loop so we can skip over fonts that return errors */
+ while(1) {
+ if (state->index == state->font_list->nfont) {
+ return 0; /* we've run out of fonts */
+ }
- result = FcPatternGetString (font, FC_FAMILY, 0, &family_fc);
- if (result != FcResultMatch || family_fc == NULL) {
- dmlprintf(state->mem, "DEBUG: FC_FAMILY mismatch\n");
- return 0;
- }
+ /* Bits of the following were borrowed from Red Hat's
+ * fontconfig patch for Ghostscript 7 */
+ font = state->font_list->fonts[state->index];
+ state->index++;
+
+ /* We do the FC_FILE first because this *should* never fail
+ * and it gives us a string to use in later debug prints
+ */
+ result = FcPatternGetString (font, FC_FILE, 0, &file_fc);
+ if (result != FcResultMatch || file_fc == NULL) {
+ dmlprintf(state->mem, "DEBUG: FC_FILE mismatch\n");
+ continue;
+ }
- result = FcPatternGetString (font, FC_FILE, 0, &file_fc);
- if (result != FcResultMatch || file_fc == NULL) {
- dmlprintf(state->mem, "DEBUG: FC_FILE mismatch\n");
- return 0;
- }
+ result = FcPatternGetString (font, FC_FAMILY, 0, &family_fc);
+ if (result != FcResultMatch || family_fc == NULL) {
+ dmlprintf1(state->mem, "DEBUG: FC_FAMILY mismatch in %s\n", (char *)file_fc);
+ continue;
+ }
- result = FcPatternGetBool (font, FC_OUTLINE, 0, &outline_fc);
- if (result != FcResultMatch) {
- dmlprintf1(state->mem, "DEBUG: FC_OUTLINE failed to match on %s\n", (char*)family_fc);
- return 0;
- }
+ result = FcPatternGetBool (font, FC_OUTLINE, 0, &outline_fc);
+ if (result != FcResultMatch) {
+ dmlprintf2(state->mem, "DEBUG: FC_OUTLINE failed to match on %s in %s\n", (char*)family_fc, (char *)file_fc);
+ continue;
+ }
- result = FcPatternGetInteger (font, FC_SLANT, 0, &slant_fc);
- if (result != FcResultMatch) {
- dmlprintf(state->mem, "DEBUG: FC_SLANT didn't match\n");
- return 0;
- }
+ result = FcPatternGetInteger (font, FC_SLANT, 0, &slant_fc);
+ if (result != FcResultMatch) {
+ dmlprintf1(state->mem, "DEBUG: FC_SLANT didn't match in %s\n", (char *)file_fc);
+ continue;
+ }
- result = FcPatternGetInteger (font, FC_WEIGHT, 0, &weight_fc);
- if (result != FcResultMatch) {
- dmlprintf(state->mem, "DEBUG: FC_WEIGHT didn't match\n");
- return 0;
+ result = FcPatternGetInteger (font, FC_WEIGHT, 0, &weight_fc);
+ if (result != FcResultMatch) {
+ dmlprintf1(state->mem, "DEBUG: FC_WEIGHT didn't match in %s\n", (char *)file_fc);
+ continue;
+ }
+ break;
}
/* Gross hack to work around Fontconfig's inability to tell
@@ -459,7 +470,6 @@ int gp_enumerate_fonts_next(void *enum_state, char **fontname, char **path)
/* return the font path straight out of fontconfig */
*path = (char*)file_fc;
- state->index ++;
return 1;
#else
return 0;
diff --git a/base/gp_upapr.c b/base/gp_upapr.c
index 47d1c472..a3f56c00 100644
--- a/base/gp_upapr.c
+++ b/base/gp_upapr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gp_vms.c b/base/gp_vms.c
index a69fb8e8..1d31815b 100644
--- a/base/gp_vms.c
+++ b/base/gp_vms.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -274,6 +274,18 @@ gp_fopen_impl(gs_memory_t *mem, const char *fname, const char *mode)
return fopen(fname, mode);
}
+int
+gp_unlink_impl(gs_memory_t *mem, const char *fname)
+{
+ return unlink(fname);
+}
+
+int
+gp_rename_impl(gs_memory_t *mem, const char *from, const char *to)
+{
+ return rename(from, to);
+}
+
int gp_stat_impl(const gs_memory_t *mem, const char *path, struct stat *buf)
{
return stat(path, buf);
@@ -711,11 +723,11 @@ bool gp_fseekable_impl(FILE *f)
{
struct stat s;
int fno;
-
+
fno = fileno(f);
if (fno < 0)
return(false);
-
+
if (fstat(fno, &s) < 0)
return(false);
diff --git a/base/gp_wgetv.c b/base/gp_wgetv.c
index 72f65825..0f634214 100644
--- a/base/gp_wgetv.c
+++ b/base/gp_wgetv.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -157,11 +157,13 @@ gp_getenv(const char *name, char *ptr, int *plen)
&& ((HIWORD(version) & 0x4000) == 0))) {
/* not Win32s */
int code;
+ int major = (int)(gs_revision / 1000);
+ int minor = (int)(gs_revision - (major * 1000)) / 10;
+ int patch = gs_revision % 10;
wchar_t key[256];
wchar_t dotversion[16];
- wsprintfW(dotversion, L"%d.%02d", (int)(gs_revision / 100),
- (int)(gs_revision % 100));
+ wsprintfW(dotversion, L"%d.%02d.%d", major, minor, patch);
wsprintfW(key, L"Software\\%hs\\%s", gs_productfamily, dotversion);
code = gp_getenv_registry(HKEY_CURRENT_USER, key, name, ptr, plen);
if ( code <= 0 )
diff --git a/base/gp_win32.c b/base/gp_win32.c
index b080b7c4..ed6516b2 100644
--- a/base/gp_win32.c
+++ b/base/gp_win32.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gp_winfs.c b/base/gp_winfs.c
index a1e40970..6c01ddc9 100644
--- a/base/gp_winfs.c
+++ b/base/gp_winfs.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -21,9 +21,13 @@
#include "gp.h"
#include "memory_.h"
#include "stat_.h"
+#include "gserrors.h"
#include "gp_mswin.h"
+/* Should be in io.h */
+extern intptr_t _get_osfhandle(int fd);
+
/* Open a file with the given name, as a stream of uninterpreted bytes. */
FILE *
gp_fopen_impl(gs_memory_t *mem, const char *fname, const char *mode)
@@ -47,6 +51,54 @@ gp_fopen_impl(gs_memory_t *mem, const char *fname, const char *mode)
return file;
}
+int
+gp_unlink_impl(gs_memory_t *mem, const char *fname)
+{
+ int len = utf8_to_wchar(NULL, fname);
+ wchar_t *uni;
+ int ret;
+
+ if (len <= 0)
+ return gs_error_unknownerror;
+
+ uni = (wchar_t *)gs_alloc_bytes(mem, len*sizeof(wchar_t), "gp_unlink_impl");
+ if (uni == NULL)
+ return gs_error_VMerror;
+ utf8_to_wchar(uni, fname);
+ ret = _wunlink(uni);
+ gs_free_object(mem, uni, "gs_unlink_impl");
+
+ return ret;
+}
+
+int
+gp_rename_impl(gs_memory_t *mem, const char *from, const char *to)
+{
+ int lenf = utf8_to_wchar(NULL, from);
+ int lent = utf8_to_wchar(NULL, to);
+ wchar_t *unif, *unit;
+ int ret;
+
+ if (lenf <= 0 || lent <= 0)
+ return gs_error_unknownerror;
+
+ unif = (wchar_t *)gs_alloc_bytes(mem, lenf*sizeof(wchar_t), "gp_rename_impl");
+ if (unif == NULL)
+ return gs_error_VMerror;
+ unit = (wchar_t *)gs_alloc_bytes(mem, lent*sizeof(wchar_t), "gp_rename_impl");
+ if (unit == NULL) {
+ gs_free_object(mem, unif, "gs_unlink_impl");
+ return gs_error_VMerror;
+ }
+ utf8_to_wchar(unif, from);
+ utf8_to_wchar(unit, to);
+ ret = _wrename(unif, unit);
+ gs_free_object(mem, unif, "gs_rename_impl");
+ gs_free_object(mem, unit, "gs_rename_impl");
+
+ return ret;
+}
+
/* Create a second open FILE on the basis of a given one */
FILE *gp_fdup_impl(FILE *f, const char *mode)
{
@@ -144,11 +196,11 @@ bool gp_fseekable_impl(FILE *f)
{
struct __stat64 s;
int fno;
-
+
fno = fileno(f);
if (fno < 0)
return(false);
-
+
if (_fstat64(fno, &s) < 0)
return(false);
diff --git a/base/gp_winfs2.c b/base/gp_winfs2.c
index 9dcf6229..423b63fa 100644
--- a/base/gp_winfs2.c
+++ b/base/gp_winfs2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gp_wpapr.c b/base/gp_wpapr.c
index 777053f2..07efc617 100644
--- a/base/gp_wpapr.c
+++ b/base/gp_wpapr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gp_wsync.c b/base/gp_wsync.c
index 69c0a4a1..8fca9006 100644
--- a/base/gp_wsync.c
+++ b/base/gp_wsync.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gp_wutf8.c b/base/gp_wutf8.c
index 8c0d9eca..0d816f99 100644
--- a/base/gp_wutf8.c
+++ b/base/gp_wutf8.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gp_wxpsprn.cpp b/base/gp_wxpsprn.cpp
index 6e2f835a..a629b095 100644
--- a/base/gp_wxpsprn.cpp
+++ b/base/gp_wxpsprn.cpp
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gpcheck.h b/base/gpcheck.h
index 01fb97c9..4292c438 100644
--- a/base/gpcheck.h
+++ b/base/gpcheck.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gpgetenv.h b/base/gpgetenv.h
index 4fd9ae7a..1f1a4bca 100644
--- a/base/gpgetenv.h
+++ b/base/gpgetenv.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gpmisc.c b/base/gpmisc.c
index 34cd71fb..bae297d8 100644
--- a/base/gpmisc.c
+++ b/base/gpmisc.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -401,16 +401,16 @@ generic_pread(gp_file *f, size_t count, gs_offset_t offset, void *buf)
int c;
int64_t os, curroff = gp_ftell(f);
if (curroff < 0) return curroff;
-
+
os = gp_fseek(f, offset, 0);
if (os < 0) return os;
-
+
c = gp_fread(buf, 1, count, f);
if (c < 0) return c;
-
+
os = gp_fseek(f, curroff, 0);
if (os < 0) return os;
-
+
return c;
}
@@ -420,20 +420,20 @@ generic_pwrite(gp_file *f, size_t count, gs_offset_t offset, const void *buf)
int c;
int64_t os, curroff = gp_ftell(f);
if (curroff < 0) return curroff;
-
+
os = gp_fseek(f, offset, 0);
if (os < 0) return os;
-
+
c = gp_fwrite(buf, 1, count, f);
if (c < 0) return c;
-
+
os = gp_fseek(f, curroff, 0);
if (os < 0) return os;
-
+
return c;
}
-gp_file *gp_file_alloc(gs_memory_t *mem, const gp_file_ops_t *prototype, size_t size, const char *cname)
+gp_file *gp_file_alloc(const gs_memory_t *mem, const gp_file_ops_t *prototype, size_t size, const char *cname)
{
gp_file *file = (gp_file *)gs_alloc_bytes(mem->non_gc_memory, size, cname ? cname : "gp_file");
if (file == NULL)
@@ -764,15 +764,17 @@ gp_open_printer(const gs_memory_t *mem,
return file;
}
-gp_file *
-gp_open_scratch_file(const gs_memory_t *mem,
+static gp_file *
+do_open_scratch_file(const gs_memory_t *mem,
const char *prefix,
char *fname,
- const char *mode)
+ const char *mode,
+ int rm)
{
gp_file *file = NULL;
gs_lib_ctx_t *ctx = mem->gs_lib_ctx;
gs_fs_list_t *fs = ctx->core->fs;
+ int code = 0;
/* If the prefix is absolute, then we must check it's a permissible
* path. If not, we're OK. */
@@ -782,46 +784,74 @@ gp_open_scratch_file(const gs_memory_t *mem,
for (fs = ctx->core->fs; fs != NULL; fs = fs->next)
{
- int code = 0;
if (fs->fs.open_scratch)
- code = fs->fs.open_scratch(mem, fs->secret, prefix, fname, mode, 0, &file);
+ code = fs->fs.open_scratch(mem, fs->secret, prefix, fname, mode, rm, &file);
if (code < 0)
return NULL;
if (file != NULL)
break;
}
+ if (file == NULL) {
+ /* The file failed to open. Don't add it to the list. */
+ } else if (rm) {
+ /* This file has already been deleted by the underlying system.
+ * We don't need to add it to the lists as it will never be
+ * deleted manually, nor do we need to tidy it up on closedown. */
+ } else {
+ /* This file was not requested to be deleted. We add it to the
+ * list so that it will either be deleted by any future call to
+ * zdeletefile, OR on closedown. */
+ /* Add the scratch file name to the lists. We can't do this any
+ * earlier as we didn't know the name until now! Unfortunately
+ * that makes cleanup harder. */
+ code = gs_add_control_path_flags(mem, gs_permit_file_control, fname,
+ gs_path_control_flag_is_scratch_file);
+ if (code >= 0)
+ code = gs_add_control_path_flags(mem, gs_permit_file_reading, fname,
+ gs_path_control_flag_is_scratch_file);
+ if (code >= 0)
+ code = gs_add_control_path_flags(mem, gs_permit_file_writing, fname,
+ gs_path_control_flag_is_scratch_file);
+
+ if (code < 0) {
+ gp_fclose(file);
+ file = NULL;
+ /* Call directly through to the unlink implementation. We know
+ * we're 'permitted' to do this, but we might not be on all the
+ * required permit lists because of the failure. The only bad
+ * thing here, is that we're deleting an fname that might not
+ * have come from the filing system itself. */
+ if (fname && fname[0])
+ gp_unlink_impl(ctx->memory, fname);
+ (void)gs_remove_control_path_flags(mem, gs_permit_file_control, fname,
+ gs_path_control_flag_is_scratch_file);
+ (void)gs_remove_control_path_flags(mem, gs_permit_file_reading, fname,
+ gs_path_control_flag_is_scratch_file);
+ (void)gs_remove_control_path_flags(mem, gs_permit_file_writing, fname,
+ gs_path_control_flag_is_scratch_file);
+ }
+ }
+
return file;
}
gp_file *
+gp_open_scratch_file(const gs_memory_t *mem,
+ const char *prefix,
+ char *fname,
+ const char *mode)
+{
+ return do_open_scratch_file(mem, prefix, fname, mode, 0);
+}
+
+gp_file *
gp_open_scratch_file_rm(const gs_memory_t *mem,
const char *prefix,
char *fname,
const char *mode)
{
- gp_file *file = NULL;
- gs_lib_ctx_t *ctx = mem->gs_lib_ctx;
- gs_fs_list_t *fs = ctx->core->fs;
-
- /* If the prefix is absolute, then we must check it's a permissible
- * path. If not, we're OK. */
- if (gp_file_name_is_absolute(prefix, strlen(prefix)) &&
- gp_validate_path(mem, prefix, mode) != 0)
- return NULL;
-
- for (fs = ctx->core->fs; fs != NULL; fs = fs->next)
- {
- int code = 0;
- if (fs->fs.open_scratch)
- code = fs->fs.open_scratch(mem, fs->secret, prefix, fname, mode, 1, &file);
- if (code < 0)
- return NULL;
- if (file != NULL)
- break;
- }
-
- return file;
+ return do_open_scratch_file(mem, prefix, fname, mode, 1);
}
int
@@ -901,7 +931,7 @@ validate(const gs_memory_t *mem,
gs_path_control_t type)
{
gs_lib_ctx_core_t *core = mem->gs_lib_ctx->core;
- const gs_path_control_set_t *control;
+ gs_path_control_set_t *control;
unsigned int i, n;
switch (type) {
@@ -921,7 +951,7 @@ validate(const gs_memory_t *mem,
n = control->num;
for (i = 0; i < n; i++) {
const char *a = path;
- const char *b = control->paths[i];
+ const char *b = control->entry[i].path;
while (1) {
if (*a == 0) {
if (*b == 0)
@@ -963,7 +993,7 @@ validate(const gs_memory_t *mem,
/* Continue matching */
a--; /* Subtract 1 as the loop will increment it again later */
} else if (*b == 0) {
- if (b != control->paths[i] &&
+ if (b != control->entry[i].path &&
gs_file_name_check_separator(b, -1, b)) {
const char *a2 = a;
const char *aend = path + strlen(path);
@@ -1003,14 +1033,14 @@ validate(const gs_memory_t *mem,
return gs_error_invalidfileaccess;
found:
- return 0;
+ return control->entry[i].flags;
}
int
gp_validate_path_len(const gs_memory_t *mem,
- const char *path,
- const uint len,
- const char *mode)
+ const char *path,
+ const uint len,
+ const char *mode)
{
char *buffer, *bufferfull;
uint rlen;
@@ -1072,6 +1102,13 @@ gp_validate_path_len(const gs_memory_t *mem,
case 'c': /* "Control" */
code = validate(mem, buffer, gs_permit_file_control);
break;
+ case 'd': /* "Delete" (special case of control) */
+ code = validate(mem, buffer, gs_permit_file_control);
+ break;
+ case 'f': /* "Rename from" */
+ code = (validate(mem, buffer, gs_permit_file_writing) |
+ validate(mem, buffer, gs_permit_file_control));
+ break;
case 't': /* "Rename to" */
code = (validate(mem, buffer, gs_permit_file_writing) |
validate(mem, buffer, gs_permit_file_control));
@@ -1092,13 +1129,23 @@ gp_validate_path_len(const gs_memory_t *mem,
}
break;
}
+ if (code > 0 && (mode[0] == 'd' || mode[0] == 'f') &&
+ (code & gs_path_control_flag_is_scratch_file) != 0) {
+ (void)gs_remove_control_path_flags(mem, gs_permit_file_reading, buffer,
+ gs_path_control_flag_is_scratch_file);
+ (void)gs_remove_control_path_flags(mem, gs_permit_file_writing, buffer,
+ gs_path_control_flag_is_scratch_file);
+ (void)gs_remove_control_path_flags(mem, gs_permit_file_control, buffer,
+ gs_path_control_flag_is_scratch_file);
+ }
gs_free_object(mem->non_gc_memory, bufferfull, "gp_validate_path");
#ifdef EACCES
if (code == gs_error_invalidfileaccess)
errno = EACCES;
#endif
- return code;
+
+ return code < 0 ? code : 0;
}
int
@@ -1108,3 +1155,25 @@ gp_validate_path(const gs_memory_t *mem,
{
return gp_validate_path_len(mem, path, strlen(path), mode);
}
+
+int
+gp_unlink(gs_memory_t *mem, const char *fname)
+{
+ if (gp_validate_path(mem, fname, "d") != 0)
+ return gs_error_invalidaccess;
+
+ return gp_unlink_impl(mem, fname);
+}
+
+int
+gp_rename(gs_memory_t *mem, const char *from, const char *to)
+{
+ /* Always check 'to' before 'from', in case 'from' is a tempfile,
+ * and testing it might remove it from the list! */
+ if (gp_validate_path(mem, to, "t") != 0)
+ return gs_error_invalidaccess;
+ if (gp_validate_path(mem, from, "f") != 0)
+ return gs_error_invalidaccess;
+
+ return gp_rename_impl(mem, from, to);
+}
diff --git a/base/gpmisc.h b/base/gpmisc.h
index af4a2ba3..9b3a0654 100644
--- a/base/gpmisc.h
+++ b/base/gpmisc.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gpsync.h b/base/gpsync.h
index bebae986..a2d9b229 100644
--- a/base/gpsync.h
+++ b/base/gpsync.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gs.mak b/base/gs.mak
index d1b32355..c4fbb91b 100644
--- a/base/gs.mak
+++ b/base/gs.mak
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2019 Artifex Software, Inc.
+# Copyright (C) 2001-2020 Artifex Software, Inc.
# All Rights Reserved.
#
# This software is provided AS-IS with no warranty, either express or
diff --git a/base/gs_dll_call.h b/base/gs_dll_call.h
index 1df48dae..3a5efc63 100644
--- a/base/gs_dll_call.h
+++ b/base/gs_dll_call.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gs_mgl_e.h b/base/gs_mgl_e.h
index 9601e631..ef2d21e6 100644
--- a/base/gs_mgl_e.h
+++ b/base/gs_mgl_e.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gs_mro_e.h b/base/gs_mro_e.h
index fd899706..32f74114 100644
--- a/base/gs_mro_e.h
+++ b/base/gs_mro_e.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsalloc.c b/base/gsalloc.c
index c9c3ba0e..b8fb7b67 100644
--- a/base/gsalloc.c
+++ b/base/gsalloc.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -68,11 +68,11 @@ static void
alloc_trace(const char *chars, gs_ref_memory_t * imem, client_name_t cname,
gs_memory_type_ptr_t stype, uint size, const void *ptr)
{
- if_debug7m('A', (const gs_memory_t *)imem, "[a%d%s]%s %s(%u) %s0x%lx\n",
+ if_debug7m('A', (const gs_memory_t *)imem, "[a%d%s]%s %s(%u) %s"PRI_INTPTR"\n",
alloc_trace_space(imem), chars, client_name_string(cname),
(ptr == 0 || stype == 0 ? "" :
struct_type_name_string(stype)),
- size, (chars[1] == '+' ? "= " : ""), (ulong) ptr);
+ size, (chars[1] == '+' ? "= " : ""), (intptr_t)ptr);
}
static bool
alloc_size_is_ok(gs_memory_type_ptr_t stype)
@@ -82,8 +82,8 @@ alloc_size_is_ok(gs_memory_type_ptr_t stype)
# define ALLOC_CHECK_SIZE(mem,stype)\
BEGIN\
if (!alloc_size_is_ok(stype)) {\
- mlprintf2(mem,"size of struct type 0x%lx is 0x%lx!\n",\
- (ulong)(stype), (ulong)((stype)->ssize));\
+ mlprintf2(mem,"size of struct type "PRI_INTPTR" is 0x%lx!\n",\
+ (intptr_t)(stype), (ulong)((stype)->ssize));\
return 0;\
}\
END
@@ -778,7 +778,7 @@ ialloc_alloc_state(gs_memory_t * parent, uint clump_size)
#endif
iimem->is_controlled = false;
iimem->gc_status.vm_threshold = clump_size * 3L;
- iimem->gc_status.max_vm = max_long;
+ iimem->gc_status.max_vm = MAX_MAX_VM;
iimem->gc_status.signal_value = 0;
iimem->gc_status.enabled = false;
iimem->gc_status.requested = 0;
@@ -865,8 +865,7 @@ ialloc_add_clump(gs_ref_memory_t *imem, ulong space, client_name_t cname)
/* Allow acquisition of this clump. */
imem->is_controlled = false;
imem->large_size = imem->clump_size;
- imem->limit = max_size_t;
- imem->gc_status.max_vm = max_size_t;
+ imem->limit = imem->gc_status.max_vm = MAX_MAX_VM;
/* Acquire the clump. */
cp = alloc_add_clump(imem, space, cname);
@@ -954,7 +953,7 @@ ialloc_set_limit(register gs_ref_memory_t * mem)
* exceeds the lesser of max_vm or (if GC is enabled)
* gc_allocated + vm_threshold.
*/
- ulong max_allocated =
+ size_t max_allocated =
(mem->gc_status.max_vm > mem->previous_status.allocated ?
mem->gc_status.max_vm - mem->previous_status.allocated :
0);
@@ -1071,13 +1070,17 @@ gs_memory_set_gc_status(gs_ref_memory_t * mem, const gs_memory_gc_status_t * pst
ialloc_set_limit(mem);
}
-/* Set VM threshold. */
+/* Set VM threshold. Value passed as int64_t since it is signed */
void
-gs_memory_set_vm_threshold(gs_ref_memory_t * mem, size_t val)
+gs_memory_set_vm_threshold(gs_ref_memory_t * mem, int64_t val)
{
gs_memory_gc_status_t stat;
gs_ref_memory_t * stable = (gs_ref_memory_t *)mem->stable_memory;
+ if (val < MIN_VM_THRESHOLD)
+ val = MIN_VM_THRESHOLD;
+ else if (val > MAX_VM_THRESHOLD)
+ val = MAX_VM_THRESHOLD;
gs_memory_gc_status(mem, &stat);
stat.vm_threshold = val;
gs_memory_set_gc_status(mem, &stat);
@@ -1300,10 +1303,10 @@ i_alloc_byte_array(gs_memory_t * mem, size_t num_elements, size_t elt_size,
obj = alloc_obj(imem, lsize,
&st_bytes, ALLOC_DIRECT, cname);
- if_debug6m('A', mem, "[a%d:+b.]%s -bytes-*(%"PRIuSIZE"=%"PRIuSIZE"*%"PRIuSIZE") = 0x%lx\n",
+ if_debug6m('A', mem, "[a%d:+b.]%s -bytes-*(%"PRIuSIZE"=%"PRIuSIZE"*%"PRIuSIZE") = "PRI_INTPTR"\n",
alloc_trace_space(imem), client_name_string(cname),
num_elements * elt_size,
- num_elements, elt_size, (ulong) obj);
+ num_elements, elt_size, (intptr_t)obj);
return (byte *) obj;
}
static byte *
@@ -1327,10 +1330,10 @@ i_alloc_byte_array_immovable(gs_memory_t * mem, size_t num_elements,
&st_bytes, ALLOC_IMMOVABLE | ALLOC_DIRECT,
cname);
- if_debug6m('A', mem, "[a%d|+b.]%s -bytes-*(%"PRIuSIZE"=%"PRIuSIZE"*%"PRIuSIZE") = 0x%lx\n",
+ if_debug6m('A', mem, "[a%d|+b.]%s -bytes-*(%"PRIuSIZE"=%"PRIuSIZE"*%"PRIuSIZE") = "PRI_INTPTR"\n",
alloc_trace_space(imem), client_name_string(cname),
num_elements * elt_size,
- num_elements, elt_size, (ulong) obj);
+ num_elements, elt_size, (intptr_t)obj);
return (byte *) obj;
}
static void *
@@ -1360,11 +1363,11 @@ i_alloc_struct_array(gs_memory_t * mem, size_t num_elements,
if ((size_t)lsize != slsize)
return NULL;
obj = alloc_obj(imem, lsize, pstype, ALLOC_DIRECT, cname);
- if_debug7m('A', mem, "[a%d:+<.]%s %s*(%"PRIuSIZE"=%"PRIuSIZE"*%u) = 0x%lx\n",
+ if_debug7m('A', mem, "[a%d:+<.]%s %s*(%"PRIuSIZE"=%"PRIuSIZE"*%u) = "PRI_INTPTR"\n",
alloc_trace_space(imem), client_name_string(cname),
struct_type_name_string(pstype),
num_elements * pstype->ssize,
- num_elements, pstype->ssize, (ulong) obj);
+ num_elements, pstype->ssize, (intptr_t)obj);
return (char *)obj;
}
static void *
@@ -1387,11 +1390,11 @@ i_alloc_struct_array_immovable(gs_memory_t * mem, size_t num_elements,
if ((size_t)lsize != slsize)
return NULL;
obj = alloc_obj(imem, lsize, pstype, ALLOC_IMMOVABLE | ALLOC_DIRECT, cname);
- if_debug7m('A', mem, "[a%d|+<.]%s %s*(%"PRIuSIZE"=%"PRIuSIZE"*%u) = 0x%lx\n",
+ if_debug7m('A', mem, "[a%d|+<.]%s %s*(%"PRIuSIZE"=%"PRIuSIZE"*%u) = "PRI_INTPTR"\n",
alloc_trace_space(imem), client_name_string(cname),
struct_type_name_string(pstype),
num_elements * pstype->ssize,
- num_elements, pstype->ssize, (ulong) obj);
+ num_elements, pstype->ssize, (intptr_t)obj);
return (char *)obj;
}
static void *
@@ -1430,13 +1433,13 @@ i_resize_object(gs_memory_t * mem, void *obj, size_t new_num_elements,
new_obj = obj;
}
if (new_obj) {
- if_debug8m('A', mem, "[a%d:%c%c ]%s %s(%"PRIuSIZE"=>%"PRIuSIZE") 0x%lx\n",
+ if_debug8m('A', mem, "[a%d:%c%c ]%s %s(%"PRIuSIZE"=>%"PRIuSIZE") "PRI_INTPTR"\n",
alloc_trace_space(imem),
(new_size > old_size ? '>' : '<'),
(pstype == &st_bytes ? 'b' : '<'),
client_name_string(cname),
struct_type_name_string(pstype),
- old_size, new_size, (ulong) obj);
+ old_size, new_size, (intptr_t)obj);
return new_obj;
}
/* Punt. */
@@ -1468,8 +1471,8 @@ i_free_object(gs_memory_t * mem, void *ptr, client_name_t cname)
clump_locator_t cld;
if (pstype == &st_free) {
- mlprintf2(mem, "%s: object 0x%lx already free!\n",
- client_name_string(cname), (ulong) ptr);
+ mlprintf2(mem, "%s: object "PRI_INTPTR" already free!\n",
+ client_name_string(cname), (intptr_t)ptr);
return; /*gs_abort(); */
}
/* Check that this allocator owns the object being freed. */
@@ -1478,9 +1481,9 @@ i_free_object(gs_memory_t * mem, void *ptr, client_name_t cname)
!clump_locate_ptr(ptr, &cld)
) {
if (!cld.memory->saved) {
- mlprintf3(mem, "%s: freeing 0x%lx, not owned by memory 0x%lx!\n",
- client_name_string(cname), (ulong) ptr,
- (ulong) mem);
+ mlprintf3(mem, "%s: freeing "PRI_INTPTR", not owned by memory "PRI_INTPTR"!\n",
+ client_name_string(cname), (intptr_t)ptr,
+ (intptr_t)mem);
return; /*gs_abort(); */
}
/****** HACK: we know the saved state is the first ******
@@ -1491,10 +1494,10 @@ i_free_object(gs_memory_t * mem, void *ptr, client_name_t cname)
if (!(PTR_BETWEEN((const byte *)pp, cld.cp->cbase,
cld.cp->cbot))
) {
- mlprintf5(mem, "%s: freeing 0x%lx,\n\toutside clump 0x%lx cbase=0x%lx, cbot=0x%lx!\n",
- client_name_string(cname), (ulong) ptr,
- (ulong) cld.cp, (ulong) cld.cp->cbase,
- (ulong) cld.cp->cbot);
+ mlprintf5(mem, "%s: freeing "PRI_INTPTR",\n\toutside clump "PRI_INTPTR" cbase="PRI_INTPTR", cbot="PRI_INTPTR"!\n",
+ client_name_string(cname), (intptr_t) ptr,
+ (intptr_t) cld.cp, (intptr_t) cld.cp->cbase,
+ (intptr_t) cld.cp->cbot);
return; /*gs_abort(); */
}
}
@@ -1510,9 +1513,9 @@ i_free_object(gs_memory_t * mem, void *ptr, client_name_t cname)
if (gs_debug['a'] || gs_debug['A'])
saved_stype = *pstype;
- if_debug3m('u', mem, "[u]finalizing %s 0x%lx (%s)\n",
+ if_debug3m('u', mem, "[u]finalizing %s "PRI_INTPTR" (%s)\n",
struct_type_name_string(pstype),
- (ulong) ptr, client_name_string(cname));
+ (intptr_t)ptr, client_name_string(cname));
(*finalize) (mem, ptr);
if (gs_debug['a'] || gs_debug['A'])
@@ -1637,9 +1640,9 @@ i_alloc_string(gs_memory_t * mem, size_t nbytes, client_name_t cname)
}
top:
if (imem->cc && !imem->cc->c_alone && imem->cc->ctop - imem->cc->cbot > nbytes) {
- if_debug4m('A', mem, "[a%d:+> ]%s(%"PRIuSIZE") = 0x%lx\n",
+ if_debug4m('A', mem, "[a%d:+> ]%s(%"PRIuSIZE") = "PRI_INTPTR"\n",
alloc_trace_space(imem), client_name_string(cname), nbytes,
- (ulong) (imem->cc->ctop - nbytes));
+ (intptr_t)(imem->cc->ctop - nbytes));
str = imem->cc->ctop -= nbytes;
gs_alloc_fill(str, gs_alloc_fill_alloc, nbytes);
str += HDR_ID_OFFSET;
@@ -1698,9 +1701,9 @@ i_alloc_string_immovable(gs_memory_t * mem, size_t nbytes, client_name_t cname)
cp->c_alone = true;
str = cp->ctop = cp->climit - nbytes;
- if_debug4m('a', mem, "[a%d|+>L]%s(%"PRIuSIZE") = 0x%lx\n",
+ if_debug4m('a', mem, "[a%d|+>L]%s(%"PRIuSIZE") = "PRI_INTPTR"\n",
alloc_trace_space(imem), client_name_string(cname), nbytes,
- (ulong) str);
+ (intptr_t)str);
gs_alloc_fill(str, gs_alloc_fill_alloc, nbytes);
str += HDR_ID_OFFSET;
ASSIGN_HDR_ID(str);
@@ -1727,11 +1730,11 @@ i_resize_string(gs_memory_t * mem, byte * data, size_t old_num, size_t new_num,
imem->cc->ctop - imem->cc->cbot > new_num - old_num)
) { /* Resize in place. */
ptr = data + old_num - new_num;
- if_debug6m('A', mem, "[a%d:%c> ]%s(%"PRIuSIZE"->%"PRIuSIZE") 0x%lx\n",
+ if_debug6m('A', mem, "[a%d:%c> ]%s(%"PRIuSIZE"->%"PRIuSIZE") "PRI_INTPTR"\n",
alloc_trace_space(imem),
(new_num > old_num ? '>' : '<'),
client_name_string(cname), old_num, new_num,
- (ulong) ptr);
+ (intptr_t)ptr);
imem->cc->ctop = ptr;
memmove(ptr, data, min(old_num, new_num));
#ifdef DEBUG
@@ -1750,9 +1753,9 @@ i_resize_string(gs_memory_t * mem, byte * data, size_t old_num, size_t new_num,
imem->lost.strings += old_num - new_num;
gs_alloc_fill(data + new_num, gs_alloc_fill_free,
old_num - new_num);
- if_debug5m('A', mem, "[a%d:<> ]%s(%"PRIuSIZE"->%"PRIuSIZE") 0x%lx\n",
+ if_debug5m('A', mem, "[a%d:<> ]%s(%"PRIuSIZE"->%"PRIuSIZE") "PRI_INTPTR"\n",
alloc_trace_space(imem), client_name_string(cname),
- old_num, new_num, (ulong)ptr);
+ old_num, new_num, (intptr_t)ptr);
ptr += HDR_ID_OFFSET;
ASSIGN_HDR_ID(ptr);
} else { /* Punt. */
@@ -1780,14 +1783,14 @@ i_free_string(gs_memory_t * mem, byte * data, size_t nbytes,
data -= HDR_ID_OFFSET;
nbytes += HDR_ID_OFFSET;
if (imem->cc && data == imem->cc->ctop) {
- if_debug4m('A', mem, "[a%d:-> ]%s(%"PRIuSIZE") 0x%lx\n",
+ if_debug4m('A', mem, "[a%d:-> ]%s(%"PRIuSIZE") "PRI_INTPTR"\n",
alloc_trace_space(imem), client_name_string(cname), nbytes,
- (ulong) data);
+ (intptr_t)data);
imem->cc->ctop += nbytes;
} else {
- if_debug4m('A', mem, "[a%d:->#]%s(%"PRIuSIZE") 0x%lx\n",
+ if_debug4m('A', mem, "[a%d:->#]%s(%"PRIuSIZE") "PRI_INTPTR"\n",
alloc_trace_space(imem), client_name_string(cname), nbytes,
- (ulong) data);
+ (intptr_t)data);
imem->lost.strings += nbytes;
}
gs_alloc_fill(data, gs_alloc_fill_free, nbytes);
@@ -2102,9 +2105,9 @@ consolidate_clump_free(clump_t *cp, gs_ref_memory_t *mem)
/* Remove the free objects from the freelists. */
remove_range_from_freelist(mem, begin_free, cp->cbot);
if_debug4m('a', (const gs_memory_t *)mem,
- "[a]resetting clump 0x%lx cbot from 0x%lx to 0x%lx (%lu free)\n",
- (ulong) cp, (ulong) cp->cbot, (ulong) begin_free,
- (ulong) ((byte *) cp->cbot - (byte *) begin_free));
+ "[a]resetting clump "PRI_INTPTR" cbot from "PRI_INTPTR" to "PRI_INTPTR" (%lu free)\n",
+ (intptr_t)cp, (intptr_t)cp->cbot, (intptr_t)begin_free,
+ (intptr_t)((byte *)cp->cbot - (byte *)begin_free));
cp->cbot = (byte *) begin_free;
}
}
@@ -2321,8 +2324,8 @@ trim_obj(gs_ref_memory_t *mem, obj_header_t *obj, obj_size_t size, clump_t *cp)
if (cp) {
#ifdef DEBUG
if (cp->cbot != (byte *)obj + old_rounded_size) {
- lprintf3("resizing 0x%lx, old size %u, new size %u, cbot wrong!\n",
- (ulong)obj, old_rounded_size, size);
+ lprintf3("resizing "PRI_INTPTR", old size %u, new size %u, cbot wrong!\n",
+ (intptr_t)obj, old_rounded_size, size);
/* gs_abort */
} else
#endif
@@ -2390,8 +2393,8 @@ i_register_root(gs_memory_t * mem, gs_gc_root_t ** rpp, gs_ptr_type_t ptype,
rp = *rpp;
rp->free_on_unregister = false;
}
- if_debug3m('8', mem, "[8]register root(%s) 0x%lx -> 0x%lx\n",
- client_name_string(cname), (ulong)rp, (ulong)up);
+ if_debug3m('8', mem, "[8]register root(%s) "PRI_INTPTR" -> "PRI_INTPTR"\n",
+ client_name_string(cname), (intptr_t)rp, (intptr_t)up);
rp->ptype = ptype;
rp->p = up;
rp->next = imem->roots;
@@ -2406,8 +2409,8 @@ i_unregister_root(gs_memory_t * mem, gs_gc_root_t * rp, client_name_t cname)
gs_ref_memory_t * const imem = (gs_ref_memory_t *)mem;
gs_gc_root_t **rpp = &imem->roots;
- if_debug2m('8', mem, "[8]unregister root(%s) 0x%lx\n",
- client_name_string(cname), (ulong) rp);
+ if_debug2m('8', mem, "[8]unregister root(%s) "PRI_INTPTR"\n",
+ client_name_string(cname), (intptr_t)rp);
while (*rpp != rp)
rpp = &(*rpp)->next;
*rpp = (*rpp)->next;
@@ -2602,8 +2605,8 @@ alloc_unlink_clump(clump_t * cp, gs_ref_memory_t * mem)
clump_splay_app(mem->root, mem, check_in_clump, &found);
if (found != NULL) {
- mlprintf2((const gs_memory_t *)mem, "unlink_clump 0x%lx not owned by memory 0x%lx!\n",
- (ulong) cp, (ulong) mem);
+ mlprintf2((const gs_memory_t *)mem, "unlink_clump "PRI_INTPTR" not owned by memory "PRI_INTPTR"!\n",
+ (intptr_t)cp, (intptr_t)mem);
return; /*gs_abort(); */
}
}
@@ -2767,7 +2770,7 @@ debug_dump_contents(const gs_memory_t *mem, const byte * bot,
}
continue;
}
- gs_sprintf(label, "0x%lx:", (ulong) block);
+ gs_sprintf(label, PRI_INTPTR":", (intptr_t)block);
debug_indent(mem, indent);
dmputs(mem, label);
for (i = 0; i < block_size; ++i) {
@@ -2811,15 +2814,15 @@ debug_print_object(const gs_memory_t *mem, const void *obj, const dump_control_t
const gs_memory_struct_type_t *type = pre->o_type;
dump_options_t options = control->options;
- dmprintf3(mem, " pre=0x%lx(obj=0x%lx) size=%lu", (ulong) pre, (ulong) obj,
- size);
+ dmprintf3(mem, " pre="PRI_INTPTR"(obj="PRI_INTPTR") size=%lu",
+ (intptr_t) pre, (intptr_t) obj, size);
switch (options & (dump_do_type_addresses | dump_do_no_types)) {
case dump_do_type_addresses + dump_do_no_types: /* addresses only */
- dmprintf1(mem, " type=0x%lx", (ulong) type);
+ dmprintf1(mem, " type="PRI_INTPTR"", (intptr_t) type);
break;
case dump_do_type_addresses: /* addresses & names */
- dmprintf2(mem, " type=%s(0x%lx)", struct_type_name_string(type),
- (ulong) type);
+ dmprintf2(mem, " type=%s("PRI_INTPTR")", struct_type_name_string(type),
+ (intptr_t)type);
break;
case 0: /* names only */
dmprintf1(mem, " type=%s", struct_type_name_string(type));
@@ -2827,7 +2830,7 @@ debug_print_object(const gs_memory_t *mem, const void *obj, const dump_control_t
;
}
if (options & dump_do_marks) {
- dmprintf2(mem, " smark/back=%u (0x%x)", pre->o_smark, pre->o_smark);
+ dmprintf2(mem, " smark/back=%u ("PRI_INTPTR")", pre->o_smark, pre->o_smark);
}
dmputc(mem, '\n');
if (type == &st_free)
@@ -2851,7 +2854,7 @@ debug_print_object(const gs_memory_t *mem, const void *obj, const dump_control_t
if (!str)
dmprintf(mem, "0x0");
else
- dmprintf2(mem, "0x%lx(%u)", (ulong) str->data, str->size);
+ dmprintf2(mem, PRI_INTPTR "(%u)", (intptr_t)str->data, str->size);
if (options & dump_do_pointed_strings) {
dmputs(mem, " =>\n");
if (!str)
@@ -2864,7 +2867,7 @@ debug_print_object(const gs_memory_t *mem, const void *obj, const dump_control_t
}
} else {
dmprintf1(mem, (PTR_BETWEEN(ptr, obj, (const byte *)obj + size) ?
- "(0x%lx)\n" : "0x%lx\n"), (ulong) ptr);
+ "("PRI_INTPTR")\n" : PRI_INTPTR "\n"), (intptr_t) ptr);
}
}
} else { /* proc == 0 */
@@ -2883,22 +2886,22 @@ debug_print_object(const gs_memory_t *mem, const void *obj, const dump_control_t
void
debug_dump_clump(const gs_memory_t *mem, const clump_t * cp, const dump_control_t * control)
{
- dmprintf1(mem, "clump at 0x%lx:\n", (ulong) cp);
- dmprintf3(mem, " chead=0x%lx cbase=0x%lx sbase=0x%lx\n",
- (ulong) cp->chead, (ulong) cp->cbase, (ulong) cp->sbase);
- dmprintf3(mem, " rcur=0x%lx rtop=0x%lx cbot=0x%lx\n",
- (ulong) cp->rcur, (ulong) cp->rtop, (ulong) cp->cbot);
- dmprintf4(mem, " ctop=0x%lx climit=0x%lx smark=0x%lx, size=%u\n",
- (ulong) cp->ctop, (ulong) cp->climit, (ulong) cp->smark,
+ dmprintf1(mem, "clump at "PRI_INTPTR":\n", (intptr_t) cp);
+ dmprintf3(mem, " chead="PRI_INTPTR" cbase="PRI_INTPTR" sbase="PRI_INTPTR"\n",
+ (intptr_t)cp->chead, (intptr_t)cp->cbase, (intptr_t)cp->sbase);
+ dmprintf3(mem, " rcur="PRI_INTPTR" rtop="PRI_INTPTR" cbot="PRI_INTPTR"\n",
+ (intptr_t)cp->rcur, (intptr_t)cp->rtop, (intptr_t)cp->cbot);
+ dmprintf4(mem, " ctop="PRI_INTPTR" climit="PRI_INTPTR" smark="PRI_INTPTR", size=%u\n",
+ (intptr_t)cp->ctop, (intptr_t)cp->climit, (intptr_t)cp->smark,
cp->smark_size);
- dmprintf2(mem, " sreloc=0x%lx cend=0x%lx\n",
- (ulong) cp->sreloc, (ulong) cp->cend);
- dmprintf6(mem, "left=0x%lx right=0x%lx parent=0x%lx outer=0x%lx inner_count=%u has_refs=%s\n",
- (ulong) cp->left, (ulong) cp->right, (ulong) cp->parent, (ulong) cp->outer,
+ dmprintf2(mem, " sreloc="PRI_INTPTR" cend="PRI_INTPTR"\n",
+ (intptr_t)cp->sreloc, (intptr_t)cp->cend);
+ dmprintf6(mem, "left="PRI_INTPTR" right="PRI_INTPTR" parent="PRI_INTPTR" outer="PRI_INTPTR" inner_count=%u has_refs=%s\n",
+ (intptr_t)cp->left, (intptr_t)cp->right, (intptr_t)cp->parent, (intptr_t)cp->outer,
cp->inner_count, (cp->has_refs ? "true" : "false"));
- dmprintf2(mem, " sfree1=0x%lx sfree=0x%x\n",
- (ulong) cp->sfree1, cp->sfree);
+ dmprintf2(mem, " sfree1="PRI_INTPTR" sfree="PRI_INTPTR"\n",
+ (intptr_t)cp->sfree1, (intptr_t)cp->sfree);
if (control->options & dump_do_strings) {
debug_dump_contents(mem, (control->bottom == 0 ? cp->ctop :
max(control->bottom, cp->ctop)),
@@ -2982,10 +2985,10 @@ static void ddct(const gs_memory_t *mem, clump_t *cp, clump_t *parent, int depth
for (i = 0; i < depth; i++)
dmlprintf(mem, " ");
- dmlprintf7(mem, "Clump %p:%p parent=%p left=%p:%p right=%p:%p\n",
- cp, cp->cbase, cp->parent,
- cp->left, cp->left ? cp->left->cbase : NULL,
- cp->right, cp->right ? cp->right->cbase : NULL);
+ dmlprintf7(mem, "Clump "PRI_INTPTR":"PRI_INTPTR" parent="PRI_INTPTR" left="PRI_INTPTR":"PRI_INTPTR" right="PRI_INTPTR":"PRI_INTPTR"\n",
+ (intptr_t)cp, (intptr_t)cp->cbase, (intptr_t)cp->parent,
+ (intptr_t)cp->left, (intptr_t)cp->left ? cp->left->cbase : NULL,
+ (intptr_t)cp->right, (intptr_t)cp->right ? cp->right->cbase : NULL);
if (cp->parent != parent)
dmlprintf(mem, "Parent pointer mismatch!\n");
ddct(mem, cp->left, cp, depth+1);
diff --git a/base/gsalloc.h b/base/gsalloc.h
index 7112b047..4c9113fe 100644
--- a/base/gsalloc.h
+++ b/base/gsalloc.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -20,6 +20,7 @@
# define gsalloc_INCLUDED
#include "std.h"
+#include "stdint_.h" /* make sure stdint types are available - for int64_t */
typedef struct gs_ref_memory_s gs_ref_memory_t;
@@ -28,7 +29,8 @@ typedef struct gs_ref_memory_s gs_ref_memory_t;
*/
typedef struct gs_memory_gc_status_s {
/* Set by client */
- size_t vm_threshold; /* GC interval */
+ /* Note vm_threshold is set as a signed value */
+ int64_t vm_threshold; /* GC interval */
size_t max_vm; /* maximum allowed allocation */
int signal_value; /* value to store in gs_lib_ctx->gcsignal */
@@ -36,9 +38,20 @@ typedef struct gs_memory_gc_status_s {
/* Set by allocator */
size_t requested; /* amount of last failing request */
} gs_memory_gc_status_t;
+
+/* max_vm values, and vm_threshold are signed in PostScript. */
+#if ARCH_SIZEOF_SIZE_T < ARCH_SIZEOF_INT64_T
+# define MAX_VM_THRESHOLD max_size_t
+#else
+# define MAX_VM_THRESHOLD max_int64_t
+#endif
+#define MAX_MAX_VM (max_size_t>>1)
+#define MIN_VM_THRESHOLD 1
+
void gs_memory_gc_status(const gs_ref_memory_t *, gs_memory_gc_status_t *);
void gs_memory_set_gc_status(gs_ref_memory_t *, const gs_memory_gc_status_t *);
-void gs_memory_set_vm_threshold(gs_ref_memory_t * mem, size_t val);
+/* Value passed as int64_t, but limited to MAX_VM_THRESHOLD (see set_vm_threshold) */
+void gs_memory_set_vm_threshold(gs_ref_memory_t * mem, int64_t val);
void gs_memory_set_vm_reclaim(gs_ref_memory_t * mem, bool enabled);
/* ------ Initialization ------ */
diff --git a/base/gsalpha.c b/base/gsalpha.c
deleted file mode 100644
index a4bf7229..00000000
--- a/base/gsalpha.c
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Copyright (C) 2001-2019 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., 1305 Grant Avenue - Suite 200, Novato,
- CA 94945, U.S.A., +1(415)492-9861, for further information.
-*/
-
-
-/* Graphics state alpha value access */
-#include "gx.h"
-#include "gsalpha.h"
-#include "gxdcolor.h"
-#include "gzstate.h"
-
-/* setalpha */
-int
-gs_setalpha(gs_gstate * pgs, double alpha)
-{
- pgs->alpha =
- (gx_color_value) (alpha < 0 ? 0 : alpha > 1 ? gx_max_color_value :
- alpha * gx_max_color_value);
- gx_unset_dev_color(pgs);
- return 0;
-}
-
-/* currentalpha */
-float
-gs_currentalpha(const gs_gstate * pgs)
-{
- return (float)pgs->alpha / gx_max_color_value;
-}
diff --git a/base/gsalphac.c b/base/gsalphac.c
deleted file mode 100644
index 4edb1936..00000000
--- a/base/gsalphac.c
+++ /dev/null
@@ -1,842 +0,0 @@
-/* Copyright (C) 2001-2019 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., 1305 Grant Avenue - Suite 200, Novato,
- CA 94945, U.S.A., +1(415)492-9861, for further information.
-*/
-
-
-/* Alpha-compositing implementation */
-#include "memory_.h"
-#include "gx.h"
-#include "gserrors.h"
-#include "gsalphac.h"
-#include "gsiparam.h" /* for gs_image_alpha_t */
-#include "gsutil.h" /* for gs_next_ids */
-#include "gxalpha.h"
-#include "gxcomp.h"
-#include "gxdevice.h"
-#include "gxgetbit.h"
-#include "gxlum.h"
-#include "gsbitops.h"
-
-/* ---------------- Internal definitions ---------------- */
-
-/* Define the parameters for a compositing operation. */
-typedef struct gs_composite_params_s {
- gs_composite_op_t cop;
- float delta; /* only for dissolve */
- uint source_alpha; /* only if !psource->alpha */
- uint source_values[4]; /* only if !psource->data */
-} gs_composite_params_t;
-
-/* Define the source or destination for a compositing operation. */
-#define pixel_row_fields(elt_type)\
- elt_type *data;\
- int bits_per_value; /* 1, 2, 4, 8, 12, 16 */\
- int initial_x;\
- gs_image_alpha_t alpha
-typedef struct pixel_row_s {
- pixel_row_fields(byte);
-} pixel_row_t;
-typedef struct const_pixel_row_s {
- pixel_row_fields(const byte);
-} const_pixel_row_t;
-
-/*
- * Composite two arrays of (premultiplied) pixel values. Legal values of
- * values_per_pixel are 1-4, not including alpha. Note that if pdest->alpha
- * is "none", the alpha value for all destination pixels will be taken as
- * unity, and any operation that could generate alpha values other than
- * unity will return an error. "Could generate" means that there are
- * possible values of the source and destination alpha values for which the
- * result has non-unity alpha: the error check does not scan the actual
- * alpha data to test whether there are any actual values that would
- * generate a non-unity alpha result.
- */
-int composite_values(const pixel_row_t * pdest,
- const const_pixel_row_t * psource,
- int values_per_pixel, uint num_pixels,
- const gs_composite_params_t * pcp);
-
-/* ---------------- Alpha-compositing objects ---------------- */
-
-/*
- * Define which operations can generate non-unity alpha values in 3 of the 4
- * cases of source and destination not having unity alphas. (This is always
- * possible in the fourth case, both S & D non-unity, except for CLEAR.) We
- * do this with a bit mask indexed by the operation, counting from the LSB.
- * The name indicates whether S and/or D has non-unity alphas.
- */
-#define alpha_out_notS_notD\
- (1<<composite_Dissolve)
-#define _alpha_out_either\
- (alpha_out_notS_notD|(1<<composite_Satop)|(1<<composite_Datop)|\
- (1<<composite_Xor)|(1<<composite_PlusD)|(1<<composite_PlusL))
-#define alpha_out_S_notD\
- (_alpha_out_either|(1<<composite_Copy)|(1<<composite_Sover)|\
- (1<<composite_Din)|(1<<composite_Dout))
-#define alpha_out_notS_D\
- (_alpha_out_either|(1<<composite_Sin)|(1<<composite_Sout)|\
- (1<<composite_Dover)|(1<<composite_Highlight))
-
-/* ------ Object definition and creation ------ */
-
-/* Define alpha-compositing objects. */
-static composite_create_default_compositor_proc(c_alpha_create_default_compositor);
-static composite_equal_proc(c_alpha_equal);
-static composite_write_proc(c_alpha_write);
-static composite_read_proc(c_alpha_read);
-const gs_composite_type_t gs_composite_alpha_type =
-{
- GX_COMPOSITOR_ALPHA,
- {
- c_alpha_create_default_compositor,
- c_alpha_equal,
- c_alpha_write,
- c_alpha_read,
- gx_default_composite_adjust_ctm,
- gx_default_composite_is_closing,
- gx_default_composite_is_friendly,
- gx_default_composite_clist_write_update,
- gx_default_composite_clist_read_update,
- gx_default_composite_get_cropping
- }
-};
-typedef struct gs_composite_alpha_s {
- gs_composite_common;
- gs_composite_alpha_params_t params;
-} gs_composite_alpha_t;
-
-gs_private_st_simple(st_composite_alpha, gs_composite_alpha_t,
- "gs_composite_alpha_t");
-
-/* Create an alpha-compositing object. */
-int
-gs_create_composite_alpha(gs_composite_t ** ppcte,
- const gs_composite_alpha_params_t * params, gs_memory_t * mem)
-{
- gs_composite_alpha_t *pcte;
-
- pcte = gs_alloc_struct(mem, gs_composite_alpha_t, &st_composite_alpha,
- "gs_create_composite_alpha");
- if (pcte == NULL)
- return_error(gs_error_VMerror);
- pcte->type = &gs_composite_alpha_type;
- pcte->id = gs_next_ids(mem, 1);
- pcte->params = *params;
- pcte->idle = false;
- *ppcte = (gs_composite_t *) pcte;
- return 0;
-}
-
-/* ------ Object implementation ------ */
-
-#define pacte ((const gs_composite_alpha_t *)pcte)
-
-static bool
-c_alpha_equal(const gs_composite_t * pcte, const gs_composite_t * pcte2)
-{
- return (pcte2->type == pcte->type &&
-#define pacte2 ((const gs_composite_alpha_t *)pcte2)
- pacte2->params.op == pacte->params.op &&
- (pacte->params.op != composite_Dissolve ||
- pacte2->params.delta == pacte->params.delta));
-#undef pacte2
-}
-
-static int
-c_alpha_write(const gs_composite_t * pcte, byte * data, uint * psize, gx_device_clist_writer *cdev)
-{
- uint size = *psize;
- uint used;
-
- if_debug1m('v', ((gx_device *)cdev)->memory, "[v]c_alpha_write(%d)\n", pacte->params.op);
- if (pacte->params.op == composite_Dissolve) {
- used = 1 + sizeof(pacte->params.delta);
- if (size < used) {
- *psize = used;
- return_error(gs_error_rangecheck);
- }
- memcpy(data + 1, &pacte->params.delta, sizeof(pacte->params.delta));
- } else {
- used = 1;
- if (size < used) {
- *psize = used;
- return_error(gs_error_rangecheck);
- }
- }
- *data = (byte) pacte->params.op;
- *psize = used;
- return 0;
-}
-
-static int
-c_alpha_read(gs_composite_t ** ppcte, const byte * data, uint size,
- gs_memory_t * mem)
-{
- gs_composite_alpha_params_t params = {composite_Clear, 0};
- int code, nbytes = 1;
-
- if (size < 1 || *data > composite_op_last)
- return_error(gs_error_rangecheck);
- params.op = *data;
- if_debug1m('v', mem, "[v]c_alpha_read(%d)\n", params.op);
- if (params.op == composite_Dissolve) {
- if (size < 1 + sizeof(params.delta))
- return_error(gs_error_rangecheck);
- memcpy(&params.delta, data + 1, sizeof(params.delta));
- nbytes += sizeof(params.delta);
- }
- code = gs_create_composite_alpha(ppcte, &params, mem);
- return code < 0 ? code : nbytes;
-}
-
-/* ---------------- Alpha-compositing device ---------------- */
-
-/* Define the default alpha-compositing device. */
-typedef struct gx_device_composite_alpha_s {
- gx_device_forward_common;
- gs_composite_alpha_params_t params;
-} gx_device_composite_alpha;
-
-gs_private_st_suffix_add0_final(st_device_composite_alpha,
- gx_device_composite_alpha, "gx_device_composite_alpha",
- device_c_alpha_enum_ptrs, device_c_alpha_reloc_ptrs, gx_device_finalize,
- st_device_forward);
-/* The device descriptor. */
-static dev_proc_close_device(dca_close);
-static dev_proc_fill_rectangle(dca_fill_rectangle);
-static dev_proc_map_rgb_color(dca_map_rgb_color);
-static dev_proc_map_color_rgb(dca_map_color_rgb);
-static dev_proc_copy_mono(dca_copy_mono);
-static dev_proc_copy_color(dca_copy_color);
-static dev_proc_map_rgb_alpha_color(dca_map_rgb_alpha_color);
-static dev_proc_map_color_rgb_alpha(dca_map_color_rgb_alpha);
-static dev_proc_copy_alpha(dca_copy_alpha);
-static const gx_device_composite_alpha gs_composite_alpha_device =
-{std_device_std_body_open(gx_device_composite_alpha, 0,
- "alpha compositor", 0, 0, 1, 1),
- {gx_default_open_device,
- gx_forward_get_initial_matrix,
- gx_default_sync_output,
- gx_default_output_page,
- dca_close,
- dca_map_rgb_color,
- dca_map_color_rgb,
- dca_fill_rectangle,
- gx_default_tile_rectangle,
- dca_copy_mono,
- dca_copy_color,
- gx_default_draw_line,
- gx_default_get_bits,
- gx_forward_get_params,
- gx_forward_put_params,
- gx_default_cmyk_map_cmyk_color, /* only called for CMYK */
- gx_forward_get_xfont_procs,
- gx_forward_get_xfont_device,
- dca_map_rgb_alpha_color,
- gx_forward_get_page_device,
- gx_forward_get_alpha_bits,
- dca_copy_alpha,
- gx_forward_get_band,
- gx_default_copy_rop,
- gx_default_fill_path,
- gx_default_stroke_path,
- gx_default_fill_mask,
- gx_default_fill_trapezoid,
- gx_default_fill_parallelogram,
- gx_default_fill_triangle,
- gx_default_draw_thin_line,
- gx_default_begin_image,
- gx_default_image_data,
- gx_default_end_image,
- gx_default_strip_tile_rectangle,
- gx_default_strip_copy_rop,
- gx_forward_get_clipping_box,
- gx_default_begin_typed_image,
- gx_forward_get_bits_rectangle,
- dca_map_color_rgb_alpha,
- gx_no_create_compositor
- }
-};
-
-/* Create an alpha compositor. */
-static int
-c_alpha_create_default_compositor(const gs_composite_t * pcte,
- gx_device ** pcdev, gx_device * dev, gs_gstate * pgs,
- gs_memory_t * mem)
-{
- gx_device_composite_alpha *cdev;
-
- if (pacte->params.op == composite_Copy) {
- /* Just use the original device. */
- *pcdev = dev;
- return 0;
- }
- cdev =
- gs_alloc_struct_immovable(mem, gx_device_composite_alpha,
- &st_device_composite_alpha,
- "create default alpha compositor");
- *pcdev = (gx_device *)cdev;
- if (cdev == 0)
- return_error(gs_error_VMerror);
- gx_device_init((gx_device *)cdev,
- (const gx_device *)&gs_composite_alpha_device, mem, true);
- gx_device_copy_params((gx_device *)cdev, dev);
- /*
- * Set the color_info and depth to be compatible with the target,
- * but using standard chunky color storage, including alpha.
- ****** CURRENTLY ALWAYS USE 8-BIT COLOR ******
- */
- cdev->color_info.depth =
- (dev->color_info.num_components == 4 ? 32 /* CMYK, no alpha */ :
- (dev->color_info.num_components + 1) * 8);
- cdev->color_info.max_gray = cdev->color_info.max_color = 255;
- /* No halftoning will occur, but we fill these in anyway.... */
- cdev->color_info.dither_grays = cdev->color_info.dither_colors = 256;
- /*
- * We could speed things up a little by tailoring the procedures in
- * the device to the specific num_components, but for simplicity,
- * we'll defer considering that until there is a demonstrated need.
- */
- gx_device_set_target((gx_device_forward *)cdev, dev);
- cdev->params = pacte->params;
- return 0;
-}
-
-/* Close the device and free its storage. */
-static int
-dca_close(gx_device * dev)
-{ /*
- * Finalization will call close again: avoid a recursion loop.
- */
- set_dev_proc(dev, close_device, gx_default_close_device);
- gs_free_object(dev->memory, dev, "dca_close");
- return 0;
-}
-
-/* ------ (RGB) color mapping ------ */
-
-static gx_color_index
-dca_map_rgb_color(gx_device * dev, const gx_color_value cv[])
-{
- return dca_map_rgb_alpha_color(dev, cv[0], cv[1], cv[2], gx_max_color_value);
-}
-static gx_color_index
-dca_map_rgb_alpha_color(gx_device * dev,
- gx_color_value red, gx_color_value green, gx_color_value blue,
- gx_color_value alpha)
-{ /*
- * We work exclusively with premultiplied color values, so we
- * have to premultiply the color components by alpha here.
- */
- byte a = gx_color_value_to_byte(alpha);
-
-#define premult_(c)\
- (((c) * a + gx_max_color_value / 2) / gx_max_color_value)
-#ifdef PREMULTIPLY_TOWARDS_WHITE
- byte bias = ~a;
-
-# define premult(c) (premult_(c) + bias)
-#else
-# define premult(c) premult_(c)
-#endif
- gx_color_index color;
-
- if (dev->color_info.num_components == 1) {
- uint lum =
- (red * lum_red_weight + green * lum_green_weight +
- blue * lum_blue_weight + lum_all_weights / 2) /
- lum_all_weights;
-
- if (a == 0xff)
- color = gx_color_value_to_byte(lum);
- else /* Premultiplication is necessary. */
- color = premult(lum);
- } else {
- if (a == 0xff)
- color =
- ((uint) gx_color_value_to_byte(red) << 16) +
- ((uint) gx_color_value_to_byte(green) << 8) +
- gx_color_value_to_byte(blue);
- else /* Premultiplication is necessary. */
- color =
- (premult(red) << 16) + (premult(green) << 8) + premult(blue);
- }
-#undef premult
- return (color << 8) + a;
-}
-static int
-dca_map_color_rgb(gx_device * dev, gx_color_index color,
- gx_color_value prgb[3])
-{
- gx_color_value red = gx_color_value_from_byte((byte) (color >> 24));
- byte a = (byte) color;
-
-#define postdiv_(c)\
- (((c) * 0xff + a / 2) / a)
-#ifdef PREMULTIPLY_TOWARDS_WHITE
- byte bias = ~a;
-
-# define postdiv(c) postdiv_(c - bias)
-#else
-# define postdiv(c) postdiv_(c)
-#endif
-
- if (dev->color_info.num_components == 1) {
- if (a != 0xff) {
- /* Undo premultiplication. */
- if (a == 0)
- red = 0;
- else
- red = postdiv(red);
- }
- prgb[0] = prgb[1] = prgb[2] = red;
- } else {
- gx_color_value
- green = gx_color_value_from_byte((byte) (color >> 16)),
- blue = gx_color_value_from_byte((byte) (color >> 8));
-
- if (a != 0xff) {
- /* Undo premultiplication. */
-/****** WHAT TO DO ABOUT BIG LOSS OF PRECISION? ******/
- if (a == 0)
- red = green = blue = 0;
- else {
- red = postdiv(red);
- green = postdiv(green);
- blue = postdiv(blue);
- }
- }
- prgb[0] = red, prgb[1] = green, prgb[2] = blue;
- }
-#undef postdiv
- return 0;
-}
-static int
-dca_map_color_rgb_alpha(gx_device * dev, gx_color_index color,
- gx_color_value prgba[4])
-{
- prgba[3] = gx_color_value_from_byte((byte) color);
- return dca_map_color_rgb(dev, color, prgba);
-}
-
-/* ------ Imaging ------ */
-
-static int
-dca_fill_rectangle(gx_device * dev, int x, int y, int w, int h,
- gx_color_index color)
-{ /* This is where all the real work gets done! */
- gx_device_composite_alpha *adev = (gx_device_composite_alpha *) dev;
- gx_device *target = adev->target;
- byte *std_row;
- byte *native_row;
- gs_int_rect rect;
- gs_get_bits_params_t std_params, native_params;
- int code = 0;
- int yi;
- gs_composite_params_t cp;
- const_pixel_row_t source;
- pixel_row_t dest;
-
- fit_fill(dev, x, y, w, h);
- std_row = gs_alloc_bytes(dev->memory,
- (dev->color_info.depth * w + 7) >> 3,
- "dca_fill_rectangle(std)");
- native_row = gs_alloc_bytes(dev->memory,
- (target->color_info.depth * w + 7) >> 3,
- "dca_fill_rectangle(native)");
- if (std_row == 0 || native_row == 0) {
- code = gs_note_error(gs_error_VMerror);
- goto out;
- }
- rect.p.x = x, rect.q.x = x + w;
- std_params.options =
- GB_COLORS_NATIVE |
- (GB_ALPHA_LAST | GB_DEPTH_8 | GB_PACKING_CHUNKY |
- GB_RETURN_COPY | GB_RETURN_POINTER | GB_ALIGN_ANY |
- GB_OFFSET_0 | GB_OFFSET_ANY | GB_RASTER_STANDARD |
- GB_RASTER_ANY);
- cp.cop = adev->params.op;
- if (cp.cop == composite_Dissolve)
- cp.delta = adev->params.delta;
- {
- gx_color_value rgba[4];
-
-/****** DOESN'T HANDLE CMYK ******/
- (*dev_proc(dev, map_color_rgb_alpha)) (dev, color, rgba);
- cp.source_values[0] = gx_color_value_to_byte(rgba[0]);
- cp.source_values[1] = gx_color_value_to_byte(rgba[1]);
- cp.source_values[2] = gx_color_value_to_byte(rgba[2]);
- cp.source_alpha = gx_color_value_to_byte(rgba[3]);
- }
- source.data = 0;
- source.bits_per_value = 8;
- source.alpha = gs_image_alpha_none;
- for (yi = y; yi < y + h; ++yi) {
- /* Read a row in standard representation. */
- rect.p.y = yi, rect.q.y = yi + 1;
- std_params.data[0] = std_row;
- code = (*dev_proc(target, get_bits_rectangle))
- (target, &rect, &std_params, NULL);
- if (code < 0)
- break;
- /* Do the work. */
- dest.data = std_params.data[0];
- dest.bits_per_value = 8;
- dest.initial_x =
- (std_params.options & GB_OFFSET_ANY ? std_params.x_offset : 0);
- dest.alpha =
- (std_params.options & GB_ALPHA_FIRST ? gs_image_alpha_first :
- std_params.options & GB_ALPHA_LAST ? gs_image_alpha_last :
- gs_image_alpha_none);
- code = composite_values(&dest, &source,
- dev->color_info.num_components, w, &cp);
- if (code < 0)
- break;
- if (std_params.data[0] == std_row) {
- /* Convert the row back to native representation. */
- /* (Otherwise, we had a direct pointer to device data.) */
- native_params.options =
- (GB_COLORS_NATIVE | GB_PACKING_CHUNKY | GB_RETURN_COPY |
- GB_OFFSET_0 | GB_RASTER_ALL | GB_ALIGN_STANDARD);
- native_params.data[0] = native_row;
- code = gx_get_bits_copy(target, 0, w, 1, &native_params,
- &std_params, std_row,
- 0 /* raster is irrelevant */ );
- if (code < 0)
- break;
- code = (*dev_proc(target, copy_color))
- (target, native_row, 0, 0 /* raster is irrelevant */ ,
- gx_no_bitmap_id, x, yi, w, 1);
- if (code < 0)
- break;
- }
- }
- out:gs_free_object(dev->memory, native_row, "dca_fill_rectangle(native)");
- gs_free_object(dev->memory, std_row, "dca_fill_rectangle(std)");
- return code;
-}
-
-static int
-dca_copy_mono(gx_device * dev, const byte * data,
- int dx, int raster, gx_bitmap_id id, int x, int y, int w, int h,
- gx_color_index zero, gx_color_index one)
-{
-/****** TEMPORARY ******/
- return gx_default_copy_mono(dev, data, dx, raster, id, x, y, w, h,
- zero, one);
-}
-
-static int
-dca_copy_color(gx_device * dev, const byte * data,
- int dx, int raster, gx_bitmap_id id,
- int x, int y, int w, int h)
-{
-/****** TEMPORARY ******/
- return gx_default_copy_color(dev, data, dx, raster, id, x, y, w, h);
-}
-
-static int
-dca_copy_alpha(gx_device * dev, const byte * data, int data_x,
- int raster, gx_bitmap_id id, int x, int y, int width, int height,
- gx_color_index color, int depth)
-{
-/****** TEMPORARY ******/
- return gx_default_copy_alpha(dev, data, data_x, raster, id, x, y,
- width, height, color, depth);
-}
-
-/*
- * Composite two arrays of (premultiplied) pixel values.
- * See gsdpnext.h for the specification.
- *
- * The current implementation is simple but inefficient. We'll speed it up
- * later if necessary.
- */
-int
-composite_values(const pixel_row_t * pdest, const const_pixel_row_t * psource,
- int values_per_pixel, uint num_pixels, const gs_composite_params_t * pcp)
-{
- int dest_bpv = pdest->bits_per_value;
- int source_bpv = psource->bits_per_value;
-
- /*
- * source_alpha_j gives the source component index for the alpha value,
- * if the source has alpha.
- */
- int source_alpha_j =
- (psource->alpha == gs_image_alpha_last ? values_per_pixel :
- psource->alpha == gs_image_alpha_first ? 0 : -1);
-
- /* dest_alpha_j does the same for the destination. */
- int dest_alpha_j =
- (pdest->alpha == gs_image_alpha_last ? values_per_pixel :
- pdest->alpha == gs_image_alpha_first ? 0 : -1);
-
- /* dest_vpp is the number of stored destination values. */
- int dest_vpp = values_per_pixel + (dest_alpha_j >= 0);
-
- /* source_vpp is the number of stored source values. */
- int source_vpp = values_per_pixel + (source_alpha_j >= 0);
-
- bool constant_colors = psource->data == 0;
- uint highlight_value = (1 << dest_bpv) - 1;
-
- const byte *sptr;
- int sbit;
- byte *dptr;
- int dbit;
- byte dbyte;
-
- {
- uint xbit = pdest->initial_x * dest_bpv * dest_vpp;
-
- dbit = xbit & 7;
- dptr = pdest->data + (xbit >> 3);
- }
- {
- uint xbit = psource->initial_x * source_bpv * source_vpp;
-
- sbit = xbit & 7;
- sptr = psource->data + (xbit >> 3);
- }
- {
- uint source_max = (1 << source_bpv) - 1;
- uint dest_max = (1 << dest_bpv) - 1;
-
- /*
- * We could save a little work by only setting up source_delta
- * and dest_delta if the operation is Dissolve.
- */
- float source_delta = pcp->delta * dest_max / source_max;
- float dest_delta = 1.0 - pcp->delta;
- uint source_alpha = pcp->source_alpha;
- uint dest_alpha = dest_max;
-
-#ifdef PREMULTIPLY_TOWARDS_WHITE
- uint source_bias = source_max - source_alpha;
- uint dest_bias = 0;
- uint result_bias = 0;
-
-#endif
- uint x;
-
- if (!pdest->alpha) {
- uint mask =
- (psource->alpha || source_alpha != source_max ?
- alpha_out_S_notD : alpha_out_notS_notD);
-
- if ((mask >> pcp->cop) & 1) {
- /*
- * The operation could produce non-unity alpha values, but
- * the destination can't store them. Return an error.
- */
- return_error(gs_error_rangecheck);
- }
- }
- /* Preload the output byte buffer if necessary. */
- dbyte = (dbit ? (byte)(*dptr & (0xff00 >> dbit)) : 0);
-
- for (x = 0; x < num_pixels; ++x) {
- int j;
- uint result_alpha = dest_alpha;
-
- /* Get destination alpha value. */
- if (dest_alpha_j >= 0) {
- int dabit = dbit + dest_bpv * dest_alpha_j;
- const byte *daptr = dptr + (dabit >> 3);
-
- if (sample_load16(&dest_alpha, daptr, dabit & 7, dest_bpv) < 0)
- return_error(gs_error_rangecheck);
-#ifdef PREMULTIPLY_TOWARDS_WHITE
- dest_bias = dest_max - dest_alpha;
-#endif
- }
- /* Get source alpha value. */
- if (source_alpha_j >= 0) {
- int sabit = sbit;
- const byte *saptr = sptr;
-
- if (source_alpha_j == 0) {
- sbit += (source_bpv);
- sptr += sbit >> 3;
- sbit &= 7;
- }
- else {
- sabit += (source_bpv * source_alpha_j);
- saptr += sabit >> 3;
- sabit &= 7;
- }
- if (sample_load16(&dest_alpha, saptr, sabit, source_bpv) < 0)
- return_error(gs_error_rangecheck);
-#ifdef PREMULTIPLY_TOWARDS_WHITE
- source_bias = source_max - source_alpha;
-#endif
- }
-/*
- * We are always multiplying a dest value by a source value to compute a
- * dest value, so the denominator is always source_max. (Dissolve is the
- * one exception.)
- */
-#define fr(v, a) ((v) * (a) / source_max)
-#define nfr(v, a, maxv) ((v) * (maxv - (a)) / source_max)
-
- /*
- * Iterate over the components of a single pixel.
- * j = 0 for alpha, 1 .. values_per_pixel for color
- * components, regardless of the actual storage order;
- * we arrange things so that sptr/sbit and dptr/dbit
- * always point to the right place.
- */
- for (j = 0; j <= values_per_pixel; ++j) {
- uint dest_v, source_v, result;
-
-#define set_clamped(r, v)\
- BEGIN if ( (r = (v)) > dest_max ) r = dest_max; END
-
- if (j == 0) {
- source_v = source_alpha;
- dest_v = dest_alpha;
- } else {
- if (constant_colors)
- source_v = pcp->source_values[j - 1];
- else {
- if (sample_load16(&source_v, sptr, sbit, source_bpv) < 0)
- return_error(gs_error_rangecheck);
- sbit += (source_bpv);
- sptr += sbit >> 3;
- sbit &= 7;
- }
- if (sample_load16(&dest_v, dptr, dbit, dest_bpv) < 0)
- return_error(gs_error_rangecheck);
-#ifdef PREMULTIPLY_TOWARDS_WHITE
- source_v -= source_bias;
- dest_v -= dest_bias;
-#endif
- }
-
- switch (pcp->cop) {
- case composite_Clear:
- /*
- * The NeXT documentation doesn't say this, but the CLEAR
- * operation sets not only alpha but also all the color
- * values to 0.
- */
- result = 0;
- break;
- case composite_Copy:
- result = source_v;
- break;
- case composite_PlusD:
- /*
- * This is the only case where we have to worry about
- * clamping a possibly negative result.
- */
- result = source_v + dest_v;
- result = (result < dest_max ? 0 : result - dest_max);
- break;
- case composite_PlusL:
- set_clamped(result, source_v + dest_v);
- break;
- case composite_Sover:
- set_clamped(result, source_v + nfr(dest_v, source_alpha, source_max));
- break;
- case composite_Dover:
- set_clamped(result, nfr(source_v, dest_alpha, dest_max) + dest_v);
- break;
- case composite_Sin:
- result = fr(source_v, dest_alpha);
- break;
- case composite_Din:
- result = fr(dest_v, source_alpha);
- break;
- case composite_Sout:
- result = nfr(source_v, dest_alpha, dest_max);
- break;
- case composite_Dout:
- result = nfr(dest_v, source_alpha, source_max);
- break;
- case composite_Satop:
- set_clamped(result, fr(source_v, dest_alpha) +
- nfr(dest_v, source_alpha, source_max));
- break;
- case composite_Datop:
- set_clamped(result, nfr(source_v, dest_alpha, dest_max) +
- fr(dest_v, source_alpha));
- break;
- case composite_Xor:
- set_clamped(result, nfr(source_v, dest_alpha, dest_max) +
- nfr(dest_v, source_alpha, source_max));
- break;
- case composite_Highlight:
- /*
- * Bizarre but true: this operation converts white and
- * light gray into each other, and leaves all other values
- * unchanged. We only implement it properly for gray-scale
- * devices.
- */
- if (j != 0 && !((source_v ^ highlight_value) & ~1))
- result = source_v ^ 1;
- else
- result = source_v;
- break;
- case composite_Dissolve:
- /*
- * In this case, and only this case, we need to worry about
- * source and dest having different bpv values. For the
- * moment, we wimp out and do everything in floating point.
- */
- result = (uint) (source_v * source_delta + dest_v * dest_delta);
- break;
- default:
- return_error(gs_error_rangecheck);
- }
- /*
- * Store the result. We don't have to worry about
- * destinations that don't store alpha, because we don't
- * even compute an alpha value in that case.
- */
-#ifdef PREMULTIPLY_TOWARDS_WHITE
- if (j == 0) {
- result_alpha = result;
- result_bias = dest_max - result_alpha;
- if (dest_alpha_j != 0)
- continue;
- } else {
- result += result_bias;
- }
-#else
- if (j == 0 && dest_alpha_j != 0) {
- result_alpha = result;
- continue;
- }
-#endif
- if (sample_store_next16(result, &dptr, &dbit, dest_bpv, &dbyte) < 0)
- return_error(gs_error_rangecheck);
- }
- /* Skip a trailing source alpha value. */
- if (source_alpha_j > 0) {
- sbit += (source_bpv);
- sptr += sbit >> 3;
- sbit &= 7;
- }
- /* Store a trailing destination alpha value. */
- if (dest_alpha_j > 0)
- if (sample_store_next16(result_alpha, &dptr, &dbit, dest_bpv, &dbyte) < 0)
- return_error(gs_error_rangecheck);
- }
- /* Store any partial output byte. */
- sample_store_flush(dptr, dbit, dbyte);
- }
- return 0;
-}
diff --git a/base/gsalphac.h b/base/gsalphac.h
deleted file mode 100644
index f1c67801..00000000
--- a/base/gsalphac.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/* Copyright (C) 2001-2019 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., 1305 Grant Avenue - Suite 200, Novato,
- CA 94945, U.S.A., +1(415)492-9861, for further information.
-*/
-
-
-/* Alpha-compositing interface */
-
-#ifndef gsalphac_INCLUDED
-# define gsalphac_INCLUDED
-
-#include "std.h"
-#include "gscompt.h"
-
-/*
- * Define the compositing operations. These values must match the ones in
- * dpsNeXT.h.
- */
-typedef enum {
- composite_Clear = 0,
- composite_Copy,
- composite_Sover,
- composite_Sin,
- composite_Sout,
- composite_Satop,
- composite_Dover,
- composite_Din,
- composite_Dout,
- composite_Datop,
- composite_Xor,
- composite_PlusD,
- composite_PlusL,
-#define composite_last composite_PlusL
- composite_Highlight, /* (only for compositerect) */
-#define compositerect_last composite_Highlight
- composite_Dissolve /* (not for PostScript composite operators) */
-#define composite_op_last composite_Dissolve
-} gs_composite_op_t;
-
-/*
- * Define parameters for alpha-compositing.
- */
-typedef struct gs_composite_alpha_params_s {
- gs_composite_op_t op;
- float delta; /* only for Dissolve */
-} gs_composite_alpha_params_t;
-
-/* Create an alpha-compositing object. */
-int gs_create_composite_alpha(gs_composite_t ** ppcte,
- const gs_composite_alpha_params_t * params,
- gs_memory_t * mem);
-
-#endif /* gsalphac_INCLUDED */
diff --git a/base/gsargs.c b/base/gsargs.c
index 24e9ccec..5ea73698 100644
--- a/base/gsargs.c
+++ b/base/gsargs.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsargs.h b/base/gsargs.h
index e82835cb..2f277001 100644
--- a/base/gsargs.h
+++ b/base/gsargs.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsbitcom.c b/base/gsbitcom.c
index 6c8c78fe..0d5856d0 100644
--- a/base/gsbitcom.c
+++ b/base/gsbitcom.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsbitmap.h b/base/gsbitmap.h
index 9120dc76..7e8f87cd 100644
--- a/base/gsbitmap.h
+++ b/base/gsbitmap.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsbitops.c b/base/gsbitops.c
index 4980671f..b3a59c27 100644
--- a/base/gsbitops.c
+++ b/base/gsbitops.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsbitops.h b/base/gsbitops.h
index aa38bcdf..6e1826a4 100644
--- a/base/gsbitops.h
+++ b/base/gsbitops.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsbittab.c b/base/gsbittab.c
index 932a54fa..3e171d3d 100644
--- a/base/gsbittab.c
+++ b/base/gsbittab.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsbittab.h b/base/gsbittab.h
index a100e91e..45b652c5 100644
--- a/base/gsbittab.h
+++ b/base/gsbittab.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsccode.h b/base/gsccode.h
index 56a2baf1..433818f0 100644
--- a/base/gsccode.h
+++ b/base/gsccode.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -20,6 +20,7 @@
# define gsccode_INCLUDED
#include "std.h"
+#include "stdint_.h"
#include "gstypes.h"
/*
@@ -27,9 +28,9 @@
* string, but because of composite fonts, character codes must be
* at least 32 bits.
*/
-typedef ulong gs_char;
+typedef uint64_t gs_char;
-#define GS_NO_CHAR ((gs_char)~0UL)
+#define GS_NO_CHAR ((gs_char)~((uint64_t)0))
/* Backward compatibility */
#define gs_no_char GS_NO_CHAR
@@ -74,15 +75,17 @@ typedef ulong gs_char;
* "name", not an integer), but should not make assumptions about whether
* GS_NO_GLYPH is less than or greater than gs_c_min_std_encoding_glyph.
*/
-typedef ulong gs_glyph;
+typedef uint64_t gs_glyph;
#define GS_NO_GLYPH ((gs_glyph)0x7fffffff)
-#if ARCH_SIZEOF_LONG > 4
+
+#if ARCH_SIZEOF_LONG_LONG > 4
# define GS_MIN_CID_GLYPH ((gs_glyph)0x80000000L)
#else
/* Avoid compiler warnings about signed/unsigned constants. */
# define GS_MIN_CID_GLYPH ((gs_glyph)~0x7fffffff)
#endif
+
#define GS_MIN_GLYPH_INDEX (GS_MIN_CID_GLYPH | (GS_MIN_CID_GLYPH >> 1))
#define GS_GLYPH_TAG (gs_glyph)(GS_MIN_CID_GLYPH | GS_MIN_GLYPH_INDEX)
#define GS_MAX_GLYPH max_ulong
diff --git a/base/gsccolor.h b/base/gsccolor.h
index d304dbeb..1bdef311 100644
--- a/base/gsccolor.h
+++ b/base/gsccolor.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gscdef.c b/base/gscdef.c
index e2eb1c9d..2dcd6537 100644
--- a/base/gscdef.c
+++ b/base/gscdef.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gscdefs.h b/base/gscdefs.h
index 5691c2e8..0ef78c02 100644
--- a/base/gscdefs.h
+++ b/base/gscdefs.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gscdevn.c b/base/gscdevn.c
index 5a4187cb..07b20f4d 100644
--- a/base/gscdevn.c
+++ b/base/gscdevn.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -660,6 +660,8 @@ gx_check_process_names_DeviceN(gs_color_space * pcs, gs_gstate * pgs)
return SEP_PURE_CMYK;
if (num_rgb_process > 0 && num_cmyk_process == 0 && num_spots == 0)
return SEP_PURE_RGB;
+ if (num_spots > 0 && num_cmyk_process == 0 && num_rgb_process == 0)
+ return SEP_PURE_SPOT;
return SEP_MIX;
}
diff --git a/base/gscdevn.h b/base/gscdevn.h
index f2c23281..1a5603f5 100644
--- a/base/gscdevn.h
+++ b/base/gscdevn.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gscedata.c b/base/gscedata.c
index 7d1740f4..e8deca00 100644
--- a/base/gscedata.c
+++ b/base/gscedata.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gscedata.h b/base/gscedata.h
index ff8137f0..4f67aac1 100644
--- a/base/gscedata.h
+++ b/base/gscedata.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gscencs.c b/base/gscencs.c
index f3961ac3..2b05289c 100644
--- a/base/gscencs.c
+++ b/base/gscencs.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gscencs.h b/base/gscencs.h
index 62e5e17f..6c0c4aad 100644
--- a/base/gscencs.h
+++ b/base/gscencs.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gschar.c b/base/gschar.c
index cd13e732..c01019d8 100644
--- a/base/gschar.c
+++ b/base/gschar.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gschar.h b/base/gschar.h
index b49d645b..a856860b 100644
--- a/base/gschar.h
+++ b/base/gschar.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gschar0.c b/base/gschar0.c
index 5af36b66..935d7c53 100644
--- a/base/gschar0.c
+++ b/base/gschar0.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -46,8 +46,8 @@ gs_stack_modal_fonts(gs_text_enum_t *pte)
cfont = cmfont->data.FDepVector[cmfont->data.Encoding[0]];
pte->fstack.items[fdepth].font = cfont;
pte->fstack.items[fdepth - 1].index = 0;
- if_debug2m('j', pte->memory, "[j]stacking depth=%d font=0x%lx\n",
- fdepth, (ulong) cfont);
+ if_debug2m('j', pte->memory, "[j]stacking depth=%d font="PRI_INTPTR"\n",
+ fdepth, (intptr_t)cfont);
}
pte->fstack.depth = fdepth;
return 0;
@@ -59,8 +59,8 @@ gs_type0_init_fstack(gs_text_enum_t *pte, gs_font * pfont)
{
if (!(pte->text.operation & (TEXT_FROM_STRING | TEXT_FROM_BYTES)))
return_error(gs_error_invalidfont);
- if_debug1m('j', pte->memory, "[j]stacking depth=0 font=0x%lx\n",
- (ulong) pfont);
+ if_debug1m('j', pte->memory, "[j]stacking depth=0 font="PRI_INTPTR"\n",
+ (intptr_t)pfont);
pte->fstack.depth = 0;
pte->fstack.items[0].font = pfont;
pte->fstack.items[0].index = 0;
@@ -147,8 +147,8 @@ gs_type0_next_char_glyph(gs_text_enum_t *pte, gs_char *pchr, gs_glyph *pglyph)
p += 2;
if_debug1m('j', pte->memory, "[j]from root: escape %d\n", fidx);
rdown:select_descendant(pfont, pdata, fidx, idepth);
- if_debug2m('j', pte->memory, "[j]... new depth=%d, new font=0x%lx\n",
- idepth, (ulong) pfont);
+ if_debug2m('j', pte->memory, "[j]... new depth=%d, new font="PRI_INTPTR"\n",
+ idepth, (intptr_t)pfont);
continue;
case fmap_double_escape:
if (chr != root_esc_char(pte))
@@ -222,8 +222,8 @@ gs_type0_next_char_glyph(gs_text_enum_t *pte, gs_char *pchr, gs_glyph *pglyph)
fdepth--;
do {
select_descendant(pfont, pdata, fidx, fdepth);
- if_debug3m('j', pte->memory, "[j]down from modal: new depth=%d, index=%d, new font=0x%lx\n",
- fdepth, fidx, (ulong) pfont);
+ if_debug3m('j', pte->memory, "[j]down from modal: new depth=%d, index=%d, new font="PRI_INTPTR"\n",
+ fdepth, fidx, (intptr_t)pfont);
if (pfont->FontType != ft_composite)
break;
pdata = &pfont0->data;
@@ -402,8 +402,8 @@ gs_type0_next_char_glyph(gs_text_enum_t *pte, gs_char *pchr, gs_glyph *pglyph)
return code;
pte->cmap_code = code; /* hack for widthshow */
p = str + mindex;
- if_debug3m('J', pte->memory, "[J]CMap returns %d, chr=0x%lx, glyph=0x%lx\n",
- code, (ulong) chr, (ulong) glyph);
+ if_debug3m('J', pte->memory, "[J]CMap returns %d, chr=0x%lx, glyph="PRI_INTPTR"\n",
+ code, (ulong)chr, (intptr_t)glyph);
if (code == 0) {
if (glyph == GS_NO_GLYPH) {
glyph = GS_MIN_CID_GLYPH;
@@ -422,8 +422,8 @@ gs_type0_next_char_glyph(gs_text_enum_t *pte, gs_char *pchr, gs_glyph *pglyph)
}
select_descendant(pfont, pdata, fidx, fdepth);
- if_debug2m('J', pte->memory, "... new depth=%d, new font=0x%lx\n",
- fdepth, (ulong) pfont);
+ if_debug2m('J', pte->memory, "... new depth=%d, new font="PRI_INTPTR"\n",
+ fdepth, (intptr_t)pfont);
}
done:
/* FontBBox may be used as metrics2 with WMode=1 :
@@ -462,8 +462,8 @@ done:
if (str == pte->text.data.bytes)
pte->index = p - str;
pte->fstack.depth = fdepth;
- if_debug4m('J', pte->memory, "[J]depth=%d font=0x%lx index=%d changed=%d\n",
- fdepth, (ulong) pte->fstack.items[fdepth].font,
+ if_debug4m('J', pte->memory, "[J]depth=%d font="PRI_INTPTR" index=%d changed=%d\n",
+ fdepth, (intptr_t)pte->fstack.items[fdepth].font,
pte->fstack.items[fdepth].index, changed);
return changed;
}
diff --git a/base/gscicach.c b/base/gscicach.c
index 10c4b82f..b524feb1 100644
--- a/base/gscicach.c
+++ b/base/gscicach.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gscicach.h b/base/gscicach.h
index 580e4445..de3f926f 100644
--- a/base/gscicach.h
+++ b/base/gscicach.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gscie.c b/base/gscie.c
index 3d637f96..f7a45765 100644
--- a/base/gscie.c
+++ b/base/gscie.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -98,8 +98,8 @@ static void
cache_set_linear(cie_cache_floats *pcf)
{
if (pcf->params.is_identity) {
- if_debug1('c', "[c]is_linear(0x%lx) = true (is_identity)\n",
- (ulong)pcf);
+ if_debug1('c', "[c]is_linear("PRI_INTPTR") = true (is_identity)\n",
+ (intptr_t)pcf);
pcf->params.linear.is_linear = true;
pcf->params.linear.origin = 0;
pcf->params.linear.scale = 1;
@@ -108,14 +108,14 @@ cache_set_linear(cie_cache_floats *pcf)
fabs(pcf->params.linear.scale - 1) < 0.00001)
pcf->params.is_identity = true;
if_debug4('c',
- "[c]is_linear(0x%lx) = true, origin = %g, scale = %g%s\n",
- (ulong)pcf, pcf->params.linear.origin,
+ "[c]is_linear("PRI_INTPTR") = true, origin = %g, scale = %g%s\n",
+ (intptr_t)pcf, pcf->params.linear.origin,
pcf->params.linear.scale,
(pcf->params.is_identity ? " (=> is_identity)" : ""));
}
#ifdef DEBUG
else
- if_debug1('c', "[c]linear(0x%lx) = false\n", (ulong)pcf);
+ if_debug1('c', "[c]linear("PRI_INTPTR") = false\n", (intptr_t)pcf);
#endif
}
static void
@@ -871,8 +871,8 @@ gs_cie_cache_init(cie_cache_params * pcache, gs_sample_loop_params_t * pslp,
* Genoa test file 050-01.ps.
*/
pcache->factor = (any_abs(delta) < 1e-30 ? 1.0 : N / R);
- if_debug4('c', "[c]cache %s 0x%lx base=%g, factor=%g\n",
- (const char *)cname, (ulong) pcache,
+ if_debug4('c', "[c]cache %s "PRI_INTPTR" base=%g, factor=%g\n",
+ (const char *)cname, (intptr_t)pcache,
pcache->base, pcache->factor);
pslp->A = A;
pslp->B = B;
diff --git a/base/gscie.h b/base/gscie.h
index c5a007b0..9c022df2 100644
--- a/base/gscie.h
+++ b/base/gscie.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsciemap.c b/base/gsciemap.c
index b09d751f..0374ca0e 100644
--- a/base/gsciemap.c
+++ b/base/gsciemap.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -84,8 +84,8 @@ static void
cie_lookup_map3(cie_cached_vector3 * pvec,
const gx_cie_vector_cache3_t * pc, const char *cname)
{
- if_debug5('c', "[c]lookup %s 0x%lx [%g %g %g]\n",
- (const char *)cname, (ulong) pc,
+ if_debug5('c', "[c]lookup %s "PRI_INTPTR" [%g %g %g]\n",
+ (const char *)cname, (intptr_t)pc,
cie_cached2float(pvec->u), cie_cached2float(pvec->v),
cie_cached2float(pvec->w));
cie_lookup_mult3(pvec, pc);
diff --git a/base/gscindex.h b/base/gscindex.h
index b921d5dc..c45e168e 100644
--- a/base/gscindex.h
+++ b/base/gscindex.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsclipsr.c b/base/gsclipsr.c
index 587ee0f5..a5d2e9bb 100644
--- a/base/gsclipsr.c
+++ b/base/gsclipsr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsclipsr.h b/base/gsclipsr.h
index 195a65a6..88daa189 100644
--- a/base/gsclipsr.h
+++ b/base/gsclipsr.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gscms.h b/base/gscms.h
index 127b9ef7..dfface69 100644
--- a/base/gscms.h
+++ b/base/gscms.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -28,6 +28,10 @@
#define ICC_MAX_CHANNELS 15
#define NUM_DEVICE_PROFILES 4
#define NUM_SOURCE_PROFILES 3
+#define GS_DEFAULT_DEVICE_PROFILE 0
+#define GS_GRAPHIC_DEVICE_PROFILE 1
+#define GS_IMAGE_DEVICE_PROFILE 2
+#define GS_TEXT_DEVICE_PROFILE 3
#define AB_NEUTRAL_8 5
#define AB_NEUTRAL_16 5
diff --git a/base/gscolor.c b/base/gscolor.c
index 81effa94..477b7648 100644
--- a/base/gscolor.c
+++ b/base/gscolor.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gscolor.h b/base/gscolor.h
index 64f45064..a330a8e3 100644
--- a/base/gscolor.h
+++ b/base/gscolor.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gscolor1.c b/base/gscolor1.c
index 37c5840f..9ba3da02 100644
--- a/base/gscolor1.c
+++ b/base/gscolor1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gscolor1.h b/base/gscolor1.h
index 7099e547..573d4c82 100644
--- a/base/gscolor1.h
+++ b/base/gscolor1.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gscolor2.c b/base/gscolor2.c
index 146e4c79..08bdfc27 100644
--- a/base/gscolor2.c
+++ b/base/gscolor2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gscolor2.h b/base/gscolor2.h
index f4e9905c..939630e7 100644
--- a/base/gscolor2.h
+++ b/base/gscolor2.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gscolor3.c b/base/gscolor3.c
index 47b22f0b..f63161c3 100644
--- a/base/gscolor3.c
+++ b/base/gscolor3.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gscolor3.h b/base/gscolor3.h
index 57614a04..116fe1be 100644
--- a/base/gscolor3.h
+++ b/base/gscolor3.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gscompt.h b/base/gscompt.h
index 7975ffab..191708f1 100644
--- a/base/gscompt.h
+++ b/base/gscompt.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gscoord.c b/base/gscoord.c
index 72c936de..e5e8cc82 100644
--- a/base/gscoord.c
+++ b/base/gscoord.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gscoord.h b/base/gscoord.h
index 8c22e18c..df8b0d3d 100644
--- a/base/gscoord.h
+++ b/base/gscoord.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gscparam.c b/base/gscparam.c
index bc1c43ab..6fc65582 100644
--- a/base/gscparam.c
+++ b/base/gscparam.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -526,6 +526,7 @@ c_param_read_typed(gs_param_list * plist, gs_param_name pkey,
fa.data = (float *)pparam->alternate_typed_data;
pvalue->value.fa = fa;
+ pvalue->type = req_type;
return 0;
}
return code;
diff --git a/base/gscpixel.c b/base/gscpixel.c
index 37904406..345a191a 100644
--- a/base/gscpixel.c
+++ b/base/gscpixel.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gscpixel.h b/base/gscpixel.h
index dff306bc..7edc14ca 100644
--- a/base/gscpixel.h
+++ b/base/gscpixel.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gscpm.h b/base/gscpm.h
index c589552b..6e9bff0a 100644
--- a/base/gscpm.h
+++ b/base/gscpm.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gscrd.c b/base/gscrd.c
index 92fea7ce..5ab156cc 100644
--- a/base/gscrd.c
+++ b/base/gscrd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gscrd.h b/base/gscrd.h
index 4bdf2ccb..b8ba96bc 100644
--- a/base/gscrd.h
+++ b/base/gscrd.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gscrdp.c b/base/gscrdp.c
index 3de28773..119558f5 100644
--- a/base/gscrdp.c
+++ b/base/gscrdp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gscrdp.h b/base/gscrdp.h
index f443ca95..549e6f08 100644
--- a/base/gscrdp.h
+++ b/base/gscrdp.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gscrypt1.c b/base/gscrypt1.c
index 4376c502..2b464700 100644
--- a/base/gscrypt1.c
+++ b/base/gscrypt1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gscrypt1.h b/base/gscrypt1.h
index d79c7295..6072239e 100644
--- a/base/gscrypt1.h
+++ b/base/gscrypt1.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gscscie.c b/base/gscscie.c
index bc83a4b6..76824cac 100644
--- a/base/gscscie.c
+++ b/base/gscscie.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gscsel.h b/base/gscsel.h
index 3babf8d3..1642ffd7 100644
--- a/base/gscsel.h
+++ b/base/gscsel.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gscsepr.c b/base/gscsepr.c
index abde8590..5afa4dea 100644
--- a/base/gscsepr.c
+++ b/base/gscsepr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -170,11 +170,9 @@ gx_install_Separation(gs_color_space * pcs, gs_gstate * pgs)
* Give the device an opportunity to capture equivalent colors for any
* spot colors which might be present in the color space.
*/
- if (code >= 0) {
- if (dev_proc(pgs->device, update_spot_equivalent_colors))
- code = dev_proc(pgs->device, update_spot_equivalent_colors)
- (pgs->device, pgs);
- }
+ if (dev_proc(pgs->device, update_spot_equivalent_colors))
+ code = dev_proc(pgs->device, update_spot_equivalent_colors)
+ (pgs->device, pgs);
}
return code;
}
diff --git a/base/gscsepr.h b/base/gscsepr.h
index a9eba04d..790443be 100644
--- a/base/gscsepr.h
+++ b/base/gscsepr.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gscspace.c b/base/gscspace.c
index 2538c827..e847b383 100644
--- a/base/gscspace.c
+++ b/base/gscspace.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -98,9 +98,12 @@ gs_cspace_final(const gs_memory_t *cmem, void *vptr)
gs_color_space *pcs = (gs_color_space *)vptr;
(void)cmem; /* unused */
+ if (pcs->interpreter_free_cspace_proc != NULL) {
+ (*pcs->interpreter_free_cspace_proc) ((gs_memory_t *)cmem, pcs);
+ }
if (pcs->type->final)
pcs->type->final(pcs);
- if_debug2m('c', cmem, "[c]cspace final %p %d\n", pcs, (int)pcs->id);
+ if_debug2m('c', cmem, "[c]cspace final "PRI_INTPTR" %d\n", (intptr_t)pcs, (int)pcs->id);
rc_decrement_only_cs(pcs->base_space, "gs_cspace_final");
if (pcs->params.device_n.devn_process_space != NULL)
rc_decrement_only_cs(pcs->params.device_n.devn_process_space, "gs_cspace_final");
@@ -118,12 +121,14 @@ gs_cspace_alloc_with_id(gs_memory_t *mem, ulong id,
rc_alloc_struct_1(pcs, gs_color_space, &st_color_space, mem, return NULL,
"gs_cspace_alloc_with_id");
- if_debug3m('c', mem, "[c]cspace alloc %p %s %d\n",
- pcs, pcstype->stype->sname, pcstype->index);
+ if_debug3m('c', mem, "[c]cspace alloc "PRI_INTPTR" %s %d\n",
+ (intptr_t)pcs, pcstype->stype->sname, pcstype->index);
pcs->type = pcstype;
pcs->id = id;
pcs->base_space = NULL;
pcs->pclient_color_space_data = NULL;
+ pcs->interpreter_data = NULL;
+ pcs->interpreter_free_cspace_proc = NULL;
pcs->cmm_icc_profile_data = NULL;
pcs->icc_equivalent = NULL;
pcs->params.device_n.devn_process_space = NULL;
@@ -329,8 +334,11 @@ gx_install_DeviceGray(gs_color_space * pcs, gs_gstate * pgs)
return 0;
/* If we haven't initialised the iccmanager, do it now. */
- if (pgs->icc_manager->default_gray == NULL)
- gsicc_init_iccmanager(pgs);
+ if (pgs->icc_manager->default_gray == NULL) {
+ int code = gsicc_init_iccmanager(pgs);
+ if (code < 0)
+ return code;
+ }
/* pcs takes a reference to the default_gray profile data */
pcs->cmm_icc_profile_data = pgs->icc_manager->default_gray;
@@ -487,6 +495,35 @@ gx_set_no_overprint(gs_gstate* pgs)
return gs_gstate_update_overprint(pgs, &params);
}
+/* Retain all the spot colorants and not the process
+ colorants. This occurs if we have a process color
+ mismatch between the source and the destination but
+ the output device supports spot colors */
+int
+gx_set_spot_only_overprint(gs_gstate* pgs)
+{
+ gs_overprint_params_t params = { 0 };
+ gx_device* dev = pgs->device;
+ gx_color_index drawn_comps = 0;
+ gx_device_color_info* pcinfo = (dev == 0 ? 0 : &dev->color_info);
+
+ if (dev) {
+ /* check if color model behavior must be determined */
+ if (pcinfo->opmode == GX_CINFO_OPMODE_UNKNOWN)
+ drawn_comps = check_cmyk_color_model_comps(dev);
+ else
+ drawn_comps = pcinfo->process_comps;
+ }
+
+ params.retain_any_comps = true;
+ params.op_state = OP_STATE_NONE;
+ params.is_fill_color = pgs->is_fill_color;
+ params.effective_opm = pgs->color[0].effective_opm = 0;
+ params.drawn_comps = drawn_comps;
+
+ return gs_gstate_update_overprint(pgs, &params);
+}
+
/*
* Push an overprint compositor onto the current device indicating that,
* at most, the spot color parameters are to be preserved.
@@ -643,7 +680,9 @@ gx_set_overprint_DeviceCMYK(const gs_color_space * pcs, gs_gstate * pgs)
simulation ICC profile that is different than the source profile,
overprinting is no longer previewed. We follow the same logic here.
If the source and destination ICC profiles do not match, then there is
- effectively no overprinting enabled. This is bug 692433 */
+ effectively no overprinting enabled. This is bug 692433. However,
+ even with the mismatch, if the device supports spot colorants, those
+ colors should be maintained. This is bug 702725. */
int gx_set_overprint_cmyk(const gs_color_space * pcs, gs_gstate * pgs)
{
gx_device * dev = pgs->device;
@@ -677,7 +716,7 @@ int gx_set_overprint_cmyk(const gs_color_space * pcs, gs_gstate * pgs)
}
if_debug1m(gs_debug_flag_overprint, pgs->memory,
- "[overprint] gx_set_overprint_cmyk. drawn_comps = 0x%x\n", drawn_comps);
+ "[overprint] gx_set_overprint_cmyk. drawn_comps = 0x%x\n", (uint)drawn_comps);
if (drawn_comps == 0)
return gx_spot_colors_set_overprint(pcs, pgs);
@@ -760,7 +799,7 @@ int gx_set_overprint_cmyk(const gs_color_space * pcs, gs_gstate * pgs)
if_debug2m(gs_debug_flag_overprint, pgs->memory,
"[overprint] gx_set_overprint_cmyk. retain_any_comps = %d, drawn_comps = 0x%x\n",
- params.retain_any_comps, params.drawn_comps);
+ params.retain_any_comps, (uint)(params.drawn_comps));
/* We are in CMYK, the profiles match and overprint is true. Set effective
overprint mode to overprint mode but only if effective has not already
diff --git a/base/gscspace.h b/base/gscspace.h
index b4ef3e07..0c07ccef 100644
--- a/base/gscspace.h
+++ b/base/gscspace.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -218,10 +218,10 @@ typedef ulong gs_separation_name; /* BOGUS */
* names.
*/
typedef int (gs_callback_func_get_colorname_string)
- (const gs_memory_t *mem, gs_separation_name colorname, unsigned char **ppstr, unsigned int *plen);
+ (gs_gstate *pgs, gs_separation_name colorname, unsigned char **ppstr, unsigned int *plen);
typedef enum { SEP_NONE, SEP_ALL, SEP_OTHER } separation_type;
-typedef enum { SEP_ENUM, SEP_MIX, SEP_PURE_RGB, SEP_PURE_CMYK } separation_colors;
+typedef enum { SEP_ENUM, SEP_MIX, SEP_PURE_RGB, SEP_PURE_CMYK, SEP_PURE_SPOT} separation_colors;
typedef struct gs_separation_params_s {
gs_memory_t *mem;
@@ -290,6 +290,8 @@ typedef struct gs_pattern_params_s {
#define cs_DeviceRGB_id 3
#define cs_DeviceCMYK_id 4
+typedef void (*gs_cspace_free_proc_t) (gs_memory_t * mem, void *pcs);
+
/*
* The colorspace object. For pattern and indexed colorspaces, the
* base_space refers to the underlying colorspace. For separation,
@@ -304,6 +306,8 @@ struct gs_color_space_s {
gs_color_space *base_space;
gs_color_space *icc_equivalent;
client_color_space_data_t *pclient_color_space_data;
+ void *interpreter_data;
+ gs_cspace_free_proc_t interpreter_free_cspace_proc;
cmm_profile_t *cmm_icc_profile_data;
union {
gs_device_pixel_params pixel;
@@ -370,6 +374,9 @@ void gs_color_space_restrict_color(gs_client_color *, const gs_color_space *);
/* Communicate to overprint compositor that overprint is not to be used */
int gx_set_no_overprint(gs_gstate* pgs);
+/* Communicate to overprint compositor that only spot colors are to be preserved */
+int gx_set_spot_only_overprint(gs_gstate* pgs);
+
/*
* Get the base space of an Indexed or uncolored Pattern color space, or the
* alternate space of a Separation or DeviceN space. Return NULL if the
diff --git a/base/gscssub.c b/base/gscssub.c
index ca2b7ed5..7891a4e3 100644
--- a/base/gscssub.c
+++ b/base/gscssub.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gscssub.h b/base/gscssub.h
index fe426286..0835c00c 100644
--- a/base/gscssub.h
+++ b/base/gscssub.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsdcolor.h b/base/gsdcolor.h
index 857ba735..778da76b 100644
--- a/base/gsdcolor.h
+++ b/base/gsdcolor.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsdevice.c b/base/gsdevice.c
index 6e3ce83f..ac78af93 100644
--- a/base/gsdevice.c
+++ b/base/gsdevice.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -417,6 +417,11 @@ gs_copydevice2(gx_device ** pnew_dev, const gx_device * dev, bool keep_open,
*/
new_dev->is_open = dev->is_open && keep_open;
fill_dev_proc(new_dev, finish_copydevice, gx_default_finish_copydevice);
+ /* We really want to be able to interrogate the device for capabilities
+ * and/or preferences right from when it is created, so set dev_spec_op
+ * now (if not already set).
+ */
+ fill_dev_proc(new_dev, dev_spec_op, gx_default_dev_spec_op);
code = dev_proc(new_dev, finish_copydevice)(new_dev, dev);
if (code < 0) {
gs_free_object(mem, new_dev, "gs_copydevice(device)");
@@ -1180,7 +1185,7 @@ int gx_device_delete_output_file(const gx_device * dev, const char *fname)
parsed.len = strlen(parsed.fname);
}
if (parsed.iodev)
- code = parsed.iodev->procs.delete_file((gx_io_device *)(&parsed.iodev), (const char *)parsed.fname);
+ code = parsed.iodev->procs.delete_file((gx_io_device *)(parsed.iodev), (const char *)parsed.fname);
else
code = gs_note_error(gs_error_invalidfileaccess);
@@ -1346,3 +1351,33 @@ bool gx_color_info_equal(const gx_device_color_info * p1, const gx_device_color_
return false;
return true;
}
+
+int gx_callout(gx_device *dev, int id, int size, void *data)
+{
+ return gs_lib_ctx_callout(dev->memory, dev->dname,
+ id, size, data);
+}
+
+/* compare two space_params, we can't do this with memcmp since there is padding in the structure */
+int
+gdev_space_params_cmp(const gdev_space_params sp1,
+ const gdev_space_params sp2) {
+ if (sp1.MaxBitmap != sp2.MaxBitmap)
+ return(1);
+ if (sp1.BufferSpace != sp2.BufferSpace)
+ return(1);
+ if (sp1.band.BandWidth != sp2.band.BandWidth)
+ return(1);
+ if (sp1.band.BandHeight != sp2.band.BandHeight)
+ return(1);
+ if (sp1.band.BandBufferSpace != sp2.band.BandBufferSpace)
+ return(1);
+ if (sp1.band.tile_cache_size != sp2.band.tile_cache_size)
+ return(1);
+ if (sp1.params_are_read_only != sp2.params_are_read_only)
+ return(1);
+ if (sp1.banding_type != sp2.banding_type)
+ return(1);
+
+ return(0);
+}
diff --git a/base/gsdevice.h b/base/gsdevice.h
index 27bbf8a6..35f1e38c 100644
--- a/base/gsdevice.h
+++ b/base/gsdevice.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsdevmem.c b/base/gsdevmem.c
index 07e5a6b0..78443bfd 100644
--- a/base/gsdevmem.c
+++ b/base/gsdevmem.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsdll.h b/base/gsdll.h
index 79cbd580..8f0137cb 100644
--- a/base/gsdll.h
+++ b/base/gsdll.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsdllwin.h b/base/gsdllwin.h
index a3bdb0c1..f04dad46 100644
--- a/base/gsdllwin.h
+++ b/base/gsdllwin.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsdparam.c b/base/gsdparam.c
index 70a2305b..a07a7c33 100644
--- a/base/gsdparam.c
+++ b/base/gsdparam.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -216,16 +216,16 @@ int gx_default_get_param(gx_device *dev, char *Param, void *list)
return param_write_bool(plist, ".LockSafetyParams", &dev->LockSafetyParams);
}
if (strcmp(Param, "MaxPatternBitmap") == 0) {
- return param_write_int(plist, "MaxPatternBitmap", &dev->MaxPatternBitmap);
+ return param_write_size_t(plist, "MaxPatternBitmap", &dev->MaxPatternBitmap);
}
if (strcmp(Param, "PageUsesTransparency") == 0) {
return param_write_bool(plist, "PageUsesTransparency", &dev->page_uses_transparency);
}
if (strcmp(Param, "MaxBitmap") == 0) {
- return param_write_long(plist, "MaxBitmap", &(dev->space_params.MaxBitmap));
+ return param_write_size_t(plist, "MaxBitmap", &(dev->space_params.MaxBitmap));
}
if (strcmp(Param, "BandBufferSpace") == 0) {
- return param_write_long(plist, "BandBufferSpace", &dev->space_params.band.BandBufferSpace);
+ return param_write_size_t(plist, "BandBufferSpace", &dev->space_params.band.BandBufferSpace);
}
if (strcmp(Param, "BandHeight") == 0) {
return param_write_int(plist, "BandHeight", &dev->space_params.band.BandHeight);
@@ -234,7 +234,7 @@ int gx_default_get_param(gx_device *dev, char *Param, void *list)
return param_write_int(plist, "BandWidth", &dev->space_params.band.BandWidth);
}
if (strcmp(Param, "BufferSpace") == 0) {
- return param_write_long(plist, "BufferSpace", &dev->space_params.BufferSpace);
+ return param_write_size_t(plist, "BufferSpace", &dev->space_params.BufferSpace);
}
if (strcmp(Param, "InterpolateControl") == 0) {
int interpolate_control = dev->interpolate_control;
@@ -719,13 +719,13 @@ gx_default_get_params(gx_device * dev, gs_param_list * plist)
(code = param_write_bool(plist, "AntidropoutDownscaler",
&dev->color_info.use_antidropout_downscaler)) < 0 ||
(code = param_write_bool(plist, ".LockSafetyParams", &dev->LockSafetyParams)) < 0 ||
- (code = param_write_int(plist, "MaxPatternBitmap", &dev->MaxPatternBitmap)) < 0 ||
+ (code = param_write_size_t(plist, "MaxPatternBitmap", &dev->MaxPatternBitmap)) < 0 ||
(code = param_write_bool(plist, "PageUsesTransparency", &dev->page_uses_transparency)) < 0 ||
- (code = param_write_long(plist, "MaxBitmap", &(dev->space_params.MaxBitmap))) < 0 ||
- (code = param_write_long(plist, "BandBufferSpace", &dev->space_params.band.BandBufferSpace)) < 0 ||
+ (code = param_write_size_t(plist, "MaxBitmap", &(dev->space_params.MaxBitmap))) < 0 ||
+ (code = param_write_size_t(plist, "BandBufferSpace", &dev->space_params.band.BandBufferSpace)) < 0 ||
(code = param_write_int(plist, "BandHeight", &dev->space_params.band.BandHeight)) < 0 ||
(code = param_write_int(plist, "BandWidth", &dev->space_params.band.BandWidth)) < 0 ||
- (code = param_write_long(plist, "BufferSpace", &dev->space_params.BufferSpace)) < 0 ||
+ (code = param_write_size_t(plist, "BufferSpace", &dev->space_params.BufferSpace)) < 0 ||
(code = param_write_int(plist, "InterpolateControl", &dev->interpolate_control)) < 0
)
return code;
@@ -754,7 +754,7 @@ gx_default_get_params(gx_device * dev, gs_param_list * plist)
}
else
param_string_from_string(pagelist, null_str);
- if ((code = param_write_name(plist, "PageList", &pagelist)) < 0)
+ if ((code = param_write_string(plist, "PageList", &pagelist)) < 0)
return code;
temp_bool = dev->ObjectFilter & FILTERIMAGE;
@@ -1406,7 +1406,7 @@ gx_default_put_params(gx_device * dev, gs_param_list * plist)
long ColorValues = (depth >= 32 ? -1 : 1L << depth);
int tab = dev->color_info.anti_alias.text_bits;
int gab = dev->color_info.anti_alias.graphics_bits;
- int mpbm = dev->MaxPatternBitmap;
+ size_t mpbm = dev->MaxPatternBitmap;
int ic = dev->interpolate_control;
bool page_uses_transparency = dev->page_uses_transparency;
gdev_space_params sp = dev->space_params;
@@ -1770,7 +1770,7 @@ nce:
ecode = code;
if ((code = param_read_bool(plist, "AntidropoutDownscaler", &use_antidropout)) < 0)
ecode = code;
- if ((code = param_read_int(plist, "MaxPatternBitmap", &mpbm)) < 0)
+ if ((code = param_read_size_t(plist, "MaxPatternBitmap", &mpbm)) < 0)
ecode = code;
if ((code = param_read_int(plist, "InterpolateControl", &ic)) < 0)
ecode = code;
@@ -1779,7 +1779,7 @@ nce:
ecode = code;
param_signal_error(plist, param_name, ecode);
}
- if ((code = param_read_long(plist, "MaxBitmap", &sp.MaxBitmap)) < 0)
+ if ((code = param_read_size_t(plist, "MaxBitmap", &sp.MaxBitmap)) < 0)
ecode = code;
#define CHECK_PARAM_CASES(member, bad, label)\
@@ -1796,7 +1796,7 @@ label:\
case 1:\
break
- switch (code = param_read_long(plist, (param_name = "BufferSpace"), &sp.BufferSpace)) {
+ switch (code = param_read_size_t(plist, (param_name = "BufferSpace"), &sp.BufferSpace)) {
CHECK_PARAM_CASES(BufferSpace, sp.BufferSpace < 10000, bse);
}
@@ -1808,8 +1808,8 @@ label:\
CHECK_PARAM_CASES(band.BandHeight, sp.band.BandHeight < 0, bhe);
}
- switch (code = param_read_long(plist, (param_name = "BandBufferSpace"), &sp.band.BandBufferSpace)) {
- CHECK_PARAM_CASES(band.BandBufferSpace, sp.band.BandBufferSpace < 0, bbse);
+ switch (code = param_read_size_t(plist, (param_name = "BandBufferSpace"), &sp.band.BandBufferSpace)) {
+ CHECK_PARAM_CASES(band.BandBufferSpace, 0, bbse);
}
@@ -1925,9 +1925,16 @@ label:\
if (code == 0)
dev->DisablePageHandler = temp_bool;
- if ((code = param_read_string(plist, "PageList", &pagelist)) != 1 && pagelist.size > 0) {
+ code = param_read_string(plist, "PageList", &pagelist);
+ if (code < 0)
+ ecode = code;
+ if (code == 0) {
if (dev->PageList)
rc_decrement(dev->PageList, "default put_params PageList");
+ dev->PageList = NULL;
+ }
+
+ if (code == 0 && pagelist.size > 0) {
dev->PageList = (gdev_pagelist *)gs_alloc_bytes(dev->memory->non_gc_memory, sizeof(gdev_pagelist), "structure to hold page list");
if (!dev->PageList)
return gs_note_error(gs_error_VMerror);
diff --git a/base/gsdps1.c b/base/gsdps1.c
index 020eac67..84980d4b 100644
--- a/base/gsdps1.c
+++ b/base/gsdps1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsdsrc.c b/base/gsdsrc.c
index 2cd28871..fcfb9d58 100644
--- a/base/gsdsrc.c
+++ b/base/gsdsrc.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsdsrc.h b/base/gsdsrc.h
index 96efd488..a9afae66 100644
--- a/base/gsdsrc.h
+++ b/base/gsdsrc.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsequivc.c b/base/gsequivc.c
index 7bb3b66f..fabcd331 100644
--- a/base/gsequivc.c
+++ b/base/gsequivc.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -178,7 +178,7 @@ update_ICC_spot_equivalent_cmyk_colors(gx_device * pdev,
name_entry = dev_profile->spotnames->head;
- for (j = 0; j < dev_profile->device_profile[0]->num_comps; j++) {
+ for (j = 0; j < dev_profile->device_profile[GS_DEFAULT_DEVICE_PROFILE]->num_comps; j++) {
client_color.paint.values[j] = 0.0;
}
for (j = 0; j < dev_profile->spotnames->count; j++) {
@@ -518,9 +518,11 @@ capture_spot_equivalent_cmyk_colors(gx_device * pdev, const gs_gstate * pgs,
for the CMYK + OG values. */
if (curr_output_profile->data_cs == gsNCHANNEL) {
- temp_profile.device_profile[0] = temp_state.icc_manager->default_cmyk;
+ temp_profile.device_profile[GS_DEFAULT_DEVICE_PROFILE] =
+ temp_state.icc_manager->default_cmyk;
} else {
- temp_profile.device_profile[0] = curr_output_profile;
+ temp_profile.device_profile[GS_DEFAULT_DEVICE_PROFILE] =
+ curr_output_profile;
}
set_dev_proc(&temp_device, get_profile, gx_default_get_profile);
diff --git a/base/gsequivc.h b/base/gsequivc.h
index 246b4d28..7fddce58 100644
--- a/base/gsequivc.h
+++ b/base/gsequivc.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gserrors.h b/base/gserrors.h
index 39bb4ed5..d27b1c56 100644
--- a/base/gserrors.h
+++ b/base/gserrors.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -102,6 +102,12 @@ enum gs_error_type {
gs_error_NeedInput = -106,
/*
+ * Internal code to all run_string to request that the data is rerun
+ * using run_file.
+ */
+ gs_error_NeedFile = -107,
+
+/*
* Internal code for a normal exit when usage info is displayed.
* This allows Window versions of Ghostscript to pause until
* the message can be read.
diff --git a/base/gsexit.h b/base/gsexit.h
index 27ad869c..226942d9 100644
--- a/base/gsexit.h
+++ b/base/gsexit.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsfcid.c b/base/gsfcid.c
index 3d9d9f90..1dfd2a9b 100644
--- a/base/gsfcid.c
+++ b/base/gsfcid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsfcid2.c b/base/gsfcid2.c
index d81e100e..fe23b070 100644
--- a/base/gsfcid2.c
+++ b/base/gsfcid2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsfcmap.c b/base/gsfcmap.c
index 9efc6dea..32a32fdf 100644
--- a/base/gsfcmap.c
+++ b/base/gsfcmap.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -581,13 +581,14 @@ gs_cmap_ToUnicode_alloc(gs_memory_t *mem, int id, int num_codes, int key_size, i
0, cmap_name, name_len, NULL, 0, &gs_cmap_ToUnicode_procs, mem);
if (code < 0)
return code;
- map = (uchar *)gs_alloc_bytes(mem, num_codes * (value_size + 2),
+ map = (uchar *)gs_alloc_bytes(mem,
+ (size_t)num_codes * (value_size + 2),
"gs_cmap_ToUnicode_alloc");
if (map == NULL) {
gs_cmap_free(*ppcmap, mem);
return_error(gs_error_VMerror);
}
- memset(map, 0, num_codes * (value_size + 2));
+ memset(map, 0, (size_t)num_codes * (value_size + 2));
cmap = (gs_cmap_ToUnicode_t *)*ppcmap;
cmap->glyph_name_data = map;
cmap->CMapType = 2;
@@ -621,13 +622,15 @@ gs_cmap_ToUnicode_realloc(gs_memory_t *mem, int new_value_size, gs_cmap_t **ppcm
uchar *new_ptr, *new_map, *old_map = cmap->glyph_name_data;
int i;
- new_map = (uchar *)gs_alloc_bytes(mem, cmap->num_codes * (new_value_size + 2),
- "gs_cmap_ToUnicode_alloc");
+ new_map = (uchar *)gs_alloc_bytes(mem,
+ (size_t)cmap->num_codes *
+ (new_value_size + 2),
+ "gs_cmap_ToUnicode_alloc");
if (new_map == NULL) {
return_error(gs_error_VMerror);
}
new_ptr = new_map;
- memset(new_map, 0, cmap->num_codes * (new_value_size + 2));
+ memset(new_map, 0, (size_t)cmap->num_codes * (new_value_size + 2));
for (i=0;i<cmap->num_codes;i++) {
memcpy(new_ptr, old_map, cmap->value_size + 2);
diff --git a/base/gsfcmap.h b/base/gsfcmap.h
index 7bc0c72c..73516c3e 100644
--- a/base/gsfcmap.h
+++ b/base/gsfcmap.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsfcmap1.c b/base/gsfcmap1.c
index dd52ad37..7fc3403e 100644
--- a/base/gsfcmap1.c
+++ b/base/gsfcmap1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -17,6 +17,7 @@
/* Adobe-based CMap character decoding */
#include "memory_.h"
#include "string_.h"
+#include "stdint_.h"
#include "gx.h"
#include "gserrors.h"
#include "gsstruct.h"
@@ -46,11 +47,11 @@ ENUM_PTRS_WITH(cmap_lookup_range_enum_ptrs,
case 0:
if (pclr->value_type == CODE_VALUE_GLYPH) {
const byte *pv = pclr->values.data;
- int size = pclr->value_size;
+ int gsize = pclr->value_size;
int k;
- for (k = 0; k < pclr->num_entries; ++k, pv += size) {
- gs_glyph glyph = bytes2int(pv, size);
+ for (k = 0; k < pclr->num_entries; ++k, pv += gsize) {
+ gs_glyph glyph = bytes2int(pv, gsize);
pclr->cmap->mark_glyph(mem, glyph, pclr->cmap->mark_glyph_data);
}
@@ -187,8 +188,8 @@ code_map_decode_next_multidim_regime(const gx_code_map_t * pcmap,
if (gs_debug_c('J')) {
dlprintf("[J]CMDNmr() is called: str=(");
debug_print_string_hex_nomem(str, ssize);
- dlprintf3(") @ 0x%lx ssize=%d, %d ranges to check\n",
- (ulong)str, ssize, pcmap->num_lookup);
+ dlprintf3(") @ "PRI_INTPTR" ssize=%d, %d ranges to check\n",
+ (intptr_t)str, ssize, pcmap->num_lookup);
}
#endif
#endif
diff --git a/base/gsflip.c b/base/gsflip.c
index 7b465e79..b86dcf41 100644
--- a/base/gsflip.c
+++ b/base/gsflip.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsflip.h b/base/gsflip.h
index 0754a528..9bbe8908 100644
--- a/base/gsflip.h
+++ b/base/gsflip.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsfname.c b/base/gsfname.c
index b8aadf21..37acd07c 100644
--- a/base/gsfname.c
+++ b/base/gsfname.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -46,7 +46,8 @@ gs_parse_file_name(gs_parsed_file_name_t * pfn, const char *pname, uint len,
pdelim = memchr(pname + 1, '%', len - 1);
if (pdelim == NULL) /* %device */
dlen = len;
- else if (pdelim[1] == 0) { /* %device% */
+ /* gs strings aren't necessarily null terminated */
+ else if (pdelim[1] == 0 || pdelim - pname == len - 1) { /* %device% */
pdelim = NULL;
dlen = len;
} else {
diff --git a/base/gsfname.h b/base/gsfname.h
index 7f5a6c9b..dcc5f359 100644
--- a/base/gsfname.h
+++ b/base/gsfname.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsfont.c b/base/gsfont.c
index d987ba2a..ba2e90ef 100644
--- a/base/gsfont.c
+++ b/base/gsfont.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -160,8 +160,8 @@ gs_font_finalize(const gs_memory_t *cmem, void *vptr)
gs_font *prev = pfont->prev;
(void)cmem; /* unused */
- if_debug4m('u', cmem, "[u]unlinking font 0x%lx, base=0x%lx, prev=0x%lx, next=0x%lx\n",
- (ulong) pfont, (ulong) pfont->base, (ulong) prev, (ulong) next);
+ if_debug4m('u', cmem, "[u]unlinking font "PRI_INTPTR", base="PRI_INTPTR", prev="PRI_INTPTR", next="PRI_INTPTR"\n",
+ (intptr_t)pfont, (intptr_t)pfont->base, (intptr_t)prev, (intptr_t)next);
/* Notify clients that the font is being freed. */
gs_notify_all(&pfont->notify_list, NULL);
gs_purge_font_from_char_caches(pfont);
@@ -439,8 +439,8 @@ gs_definefont(gs_font_dir * pdir, gs_font * pfont)
return code;
}
font_link_first(&pdir->orig_fonts, pfont);
- if_debug2m('m', pfont->memory, "[m]defining font 0x%lx, next=0x%lx\n",
- (ulong) pfont, (ulong) pfont->next);
+ if_debug2m('m', pfont->memory, "[m]defining font "PRI_INTPTR", next="PRI_INTPTR"\n",
+ (intptr_t)pfont, (intptr_t)pfont->next);
return 0;
}
@@ -507,8 +507,8 @@ gs_makefont(gs_font_dir * pdir, const gs_font * pfont,
dmlprintf1(mem, "[m]XUID(%u)", (uint) (-pbfont->UID.id));
else
dmlprintf(mem, "[m]no UID");
- dmprintf8(mem, ", FontType=%d, base=0x%lx,\n[m] new FontMatrix=[%g %g %g %g %g %g]\n",
- pfont->FontType, (ulong)pfont->base,
+ dmprintf8(mem, ", FontType=%d, base="PRI_INTPTR",\n[m] new FontMatrix=[%g %g %g %g %g %g]\n",
+ pfont->FontType, (intptr_t)pfont->base,
pmat->xx, pmat->xy, pmat->yx, pmat->yy,
pmat->tx, pmat->ty);
}
@@ -529,7 +529,7 @@ gs_makefont(gs_font_dir * pdir, const gs_font * pfont,
pf_out->FontMatrix.ty == newmat.ty
) {
*ppfont = pf_out;
- if_debug1m('m', pfont->memory, "[m]found font=0x%lx\n", (ulong) pf_out);
+ if_debug1m('m', pfont->memory, "[m]found font="PRI_INTPTR"\n", (intptr_t)pf_out);
return 0;
}
can_cache = true;
@@ -557,8 +557,8 @@ gs_makefont(gs_font_dir * pdir, const gs_font * pfont,
* (We can't free it, because there might be
* other references to it.)
*/
- if_debug1m('m', pfont->memory, "[m]discarding font 0x%lx\n",
- (ulong) prev);
+ if_debug1m('m', pfont->memory, "[m]discarding font "PRI_INTPTR"\n",
+ (intptr_t)prev);
if (prev->prev != 0)
prev->prev->next = 0;
else
@@ -615,8 +615,8 @@ gs_makefont(gs_font_dir * pdir, const gs_font * pfont,
} else { /* Prevent garbage pointers. */
pf_out->next = pf_out->prev = 0;
}
- if_debug2m('m', pfont->memory, "[m]new font=0x%lx can_cache=%s\n",
- (ulong) * ppfont, (can_cache ? "true" : "false"));
+ if_debug2m('m', pfont->memory, "[m]new font="PRI_INTPTR" can_cache=%s\n",
+ (intptr_t)*ppfont, (can_cache ? "true" : "false"));
return 1;
}
@@ -771,7 +771,7 @@ gs_purge_font(gs_font * pfont)
else if (pdir->scaled_fonts == pfont)
pdir->scaled_fonts = next;
else { /* Shouldn't happen! */
- lprintf1("purged font 0x%lx not found\n", (ulong) pfont);
+ lprintf1("purged font "PRI_INTPTR" not found\n", (intptr_t)pfont);
}
/* Purge the font from the scaled font cache. */
diff --git a/base/gsfont.h b/base/gsfont.h
index 32920bb2..0c5298e0 100644
--- a/base/gsfont.h
+++ b/base/gsfont.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsfont0.c b/base/gsfont0.c
index 92814c21..875a93a5 100644
--- a/base/gsfont0.c
+++ b/base/gsfont0.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsfont0c.c b/base/gsfont0c.c
index 58a714f0..6d1d1585 100644
--- a/base/gsfont0c.c
+++ b/base/gsfont0c.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsform1.h b/base/gsform1.h
index ef44d7d0..26f3353c 100644
--- a/base/gsform1.h
+++ b/base/gsform1.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsftopts.h b/base/gsftopts.h
index ce7113ef..bcfcb9da 100644
--- a/base/gsftopts.h
+++ b/base/gsftopts.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsfunc.c b/base/gsfunc.c
index 9844b8d7..c45b652e 100644
--- a/base/gsfunc.c
+++ b/base/gsfunc.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -127,7 +127,7 @@ fn_copy_values(const void *pvalues, int count, int size, gs_memory_t *mem)
void *values = gs_alloc_byte_array(mem, count, size, "fn_copy_values");
if (values)
- memcpy(values, pvalues, count * size);
+ memcpy(values, pvalues, (size_t)count * size);
return values;
} else
return 0; /* caller must check */
diff --git a/base/gsfunc.h b/base/gsfunc.h
index 0875b923..59f51464 100644
--- a/base/gsfunc.h
+++ b/base/gsfunc.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsfunc0.c b/base/gsfunc0.c
index 6de41259..133c097f 100644
--- a/base/gsfunc0.c
+++ b/base/gsfunc0.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -399,7 +399,7 @@ fn_Sd_evaluate_general(const gs_function_t * pfn_common, const float *in, float
/* Look up and interpolate the output values. */
{
- ulong factor = bps * pfn->params.n;
+ ulong factor = (ulong)bps * pfn->params.n;
for (i = 0; i < pfn->params.m; factor *= pfn->params.Size[i++]) {
int ipart = (int)encoded[i];
@@ -493,7 +493,7 @@ fn_Sd_evaluate_cubic_cached_1d(const gs_function_Sd_t *pfn, const float *in, flo
int bps = pfn->params.BitsPerSample;
p = &pfn->params.pole[i * pole_step];
- fn_get_samples[pfn->params.BitsPerSample](pfn, i * bps * pfn->params.n, sdata);
+ fn_get_samples[pfn->params.BitsPerSample](pfn, (ulong)i * bps * pfn->params.n, sdata);
for (k = 0; k < pfn->params.n; k++, p++)
*p = fn_Sd_encode(pfn, k, (double)sdata[k]);
}
@@ -1367,6 +1367,10 @@ gs_function_Sd_free_params(gs_function_Sd_params_t * params, gs_memory_t * mem)
gs_free_const_object(mem, params->Encode, "Encode");
params->Encode = NULL;
fn_common_free_params((gs_function_params_t *) params, mem);
+ if (params->DataSource.type == data_source_type_stream && params->DataSource.data.strm != NULL) {
+ s_close_filters(&params->DataSource.data.strm, params->DataSource.data.strm->strm);
+ params->DataSource.data.strm = NULL;
+ }
gs_free_object(mem, params->pole, "gs_function_Sd_free_params");
params->pole = NULL;
gs_free_object(mem, params->array_step, "gs_function_Sd_free_params");
diff --git a/base/gsfunc0.h b/base/gsfunc0.h
index 97726f66..7b7bb4f8 100644
--- a/base/gsfunc0.h
+++ b/base/gsfunc0.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsfunc3.c b/base/gsfunc3.c
index 08d1dc65..eee07a95 100644
--- a/base/gsfunc3.c
+++ b/base/gsfunc3.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsfunc3.h b/base/gsfunc3.h
index a0a64828..068de58c 100644
--- a/base/gsfunc3.h
+++ b/base/gsfunc3.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsfunc4.c b/base/gsfunc4.c
index f71fa63a..7f8da5d1 100644
--- a/base/gsfunc4.c
+++ b/base/gsfunc4.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsfunc4.h b/base/gsfunc4.h
index 63e549e2..2df906a4 100644
--- a/base/gsfunc4.h
+++ b/base/gsfunc4.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsgc.h b/base/gsgc.h
index b07006b0..481009ab 100644
--- a/base/gsgc.h
+++ b/base/gsgc.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsgcache.c b/base/gsgcache.c
index cc0fd50d..c7a35dbe 100644
--- a/base/gsgcache.c
+++ b/base/gsgcache.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsgcache.h b/base/gsgcache.h
index d3600fae..aca563d8 100644
--- a/base/gsgcache.h
+++ b/base/gsgcache.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsgdata.c b/base/gsgdata.c
index 653a05a0..8d254464 100644
--- a/base/gsgdata.c
+++ b/base/gsgdata.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsgdata.h b/base/gsgdata.h
index 64479713..76617310 100644
--- a/base/gsgdata.h
+++ b/base/gsgdata.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsgstate.c b/base/gsgstate.c
index 35ce6b32..d74a6f09 100644
--- a/base/gsgstate.c
+++ b/base/gsgstate.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -148,24 +148,6 @@ gs_gstate_initialize(gs_gstate * pgs, gs_memory_t * mem)
return 0;
}
-/*
- * Make a temporary copy of a gs_gstate. Note that this does not
- * do all the necessary reference counting, etc. However, it does
- * clear out the transparency stack in the destination.
- */
-gs_gstate *
-gs_gstate_copy_temp(const gs_gstate * pgs, gs_memory_t * mem)
-{
- gs_gstate *pgs_copy =
- gs_alloc_struct(mem, gs_gstate, &st_gs_gstate,
- "gs_gstate_copy");
-
- if (pgs_copy) {
- *pgs_copy = *pgs;
- }
- return pgs_copy;
-}
-
/* Increment reference counts to note that an gs_gstate has been copied. */
void
gs_gstate_copied(gs_gstate * pgs)
diff --git a/base/gsgstate.h b/base/gsgstate.h
index 75a2377b..780a561f 100644
--- a/base/gsgstate.h
+++ b/base/gsgstate.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gshsb.c b/base/gshsb.c
index a77b1022..78f623ef 100644
--- a/base/gshsb.c
+++ b/base/gshsb.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gshsb.h b/base/gshsb.h
index 76f8bbca..61f251b2 100644
--- a/base/gshsb.h
+++ b/base/gshsb.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsht.c b/base/gsht.c
index df20e843..5b27b623 100644
--- a/base/gsht.c
+++ b/base/gsht.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -322,7 +322,7 @@ gx_ht_copy_ht_order(gx_ht_order * pdest, gx_ht_order * psrc, gs_memory_t * mem)
memcpy(pdest->levels, psrc->levels, psrc->num_levels * sizeof(uint));
if (pdest->bit_data != 0)
memcpy(pdest->bit_data, psrc->bit_data,
- psrc->num_bits * psrc->procs->bit_data_elt_size);
+ (size_t)psrc->num_bits * psrc->procs->bit_data_elt_size);
pdest->transfer = psrc->transfer;
rc_increment(pdest->transfer);
return 0;
@@ -548,7 +548,7 @@ gx_ht_construct_bits(gx_ht_order * porder)
gx_ht_construct_bit(phb, porder->width, phb->offset);
#ifdef DEBUG
if (gs_debug_c('H')) {
- dmlprintf1(porder->data_memory, "[H]Halftone order bits 0x%lx:\n", (ulong)porder->bit_data);
+ dmlprintf1(porder->data_memory, "[H]Halftone order bits "PRI_INTPTR":\n", (intptr_t)porder->bit_data);
for (i = 0, phb = (gx_ht_bit *)porder->bit_data;
i < porder->num_bits;
i++, phb++)
@@ -1364,7 +1364,7 @@ gx_ht_construct_threshold( gx_ht_order *d_order, gx_device *dev,
shift = d_order->shift;
if (d_order->threshold != NULL) return 0;
- thresh = (byte *)gs_malloc(memory, d_order->width * d_order->full_height, 1,
+ thresh = (byte *)gs_malloc(memory, (size_t)d_order->width * d_order->full_height, 1,
"gx_ht_construct_threshold");
if (thresh == NULL) {
return -1 ; /* error if allocation failed */
diff --git a/base/gsht.h b/base/gsht.h
index 04f9c55e..ae40bdc0 100644
--- a/base/gsht.h
+++ b/base/gsht.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsht1.c b/base/gsht1.c
index 41cc7f51..918fb229 100644
--- a/base/gsht1.c
+++ b/base/gsht1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsht1.h b/base/gsht1.h
index a1036a53..90cba95d 100644
--- a/base/gsht1.h
+++ b/base/gsht1.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gshtscr.c b/base/gshtscr.c
index 7ceb20cf..ab3f5fba 100644
--- a/base/gshtscr.c
+++ b/base/gshtscr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -209,8 +209,8 @@ gs_screen_order_alloc(gx_ht_order *porder, gs_memory_t *mem)
if (!FORCE_STRIP_HALFTONES &&
((ulong)porder->params.W1 * bitmap_raster(porder->params.W) +
- num_levels * sizeof(*porder->levels) +
- porder->params.W * porder->params.W1 * sizeof(gx_ht_bit)) <=
+ (ulong)num_levels * sizeof(*porder->levels) +
+ (ulong)porder->params.W * porder->params.W1 * sizeof(gx_ht_bit)) <=
porder->screen_params.max_size) {
/*
* Allocate an order for the entire tile, but only sample one
@@ -389,11 +389,13 @@ pick_cell_size(gs_screen_halftone * ph, const gs_matrix * pmat, ulong max_size,
/* Compute the corresponding values of F and A. */
if (landscape)
- ar = atan2(p.M * pmat->xy, p.N * pmat->yx),
+ ar = atan2(p.M * (double)pmat->xy,
+ p.N * (double)pmat->yx),
fr = 72.0 * (p.M == 0 ? pmat->xy / p.N * cos(ar) :
pmat->yx / p.M * sin(ar));
else
- ar = atan2(p.N * pmat->xx, p.M * pmat->yy),
+ ar = atan2(p.N * (double)pmat->xx,
+ p.M * (double)pmat->yy),
fr = 72.0 * (p.M == 0 ? pmat->yy / p.N * sin(ar) :
pmat->xx / p.M * cos(ar));
ft = fabs(fr) * rt;
diff --git a/base/gshtx.c b/base/gshtx.c
index 6ac3ccdc..ea7d2e20 100644
--- a/base/gshtx.c
+++ b/base/gshtx.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gshtx.h b/base/gshtx.h
index 950e2024..8a2d94b6 100644
--- a/base/gshtx.h
+++ b/base/gshtx.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsicc.c b/base/gsicc.c
index 6cf4803e..e44fa120 100644
--- a/base/gsicc.c
+++ b/base/gsicc.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -32,6 +32,7 @@
#include "gsicc_manage.h"
#include "gxdevice.h"
#include "gsccolor.h"
+#include "gxdevsop.h"
#define SAVEICCPROFILE 0
@@ -316,7 +317,8 @@ gx_remap_concrete_icc_devicen(const gs_color_space * pcs, const frac * pconc,
up the equivalent CMYK colors for the spot colors that are present.
This allows us to have some sort of composite viewing of the spot
colors as they would colorimetrically appear. */
- code = gsicc_set_devicen_equiv_colors(dev, pgs, dev_profile->device_profile[0]);
+ code = gsicc_set_devicen_equiv_colors(dev, pgs,
+ dev_profile->device_profile[GS_DEFAULT_DEVICE_PROFILE]);
dev_profile->spotnames->equiv_cmyk_set = true;
}
gx_remap_concrete_devicen(pconc, pdc, pgs, dev, select, pcs);
@@ -695,9 +697,17 @@ gx_set_overprint_ICC(const gs_color_space * pcs, gs_gstate * pgs)
"[overprint] gx_set_overprint_ICC. cs_ok = %d is_fill_color = %d overprint = %d stroke_overprint = %d \n",
cs_ok, pgs->is_fill_color, pgs->overprint, pgs->stroke_overprint);
- if (!op || pcinfo->opmode == GX_CINFO_OPMODE_NOT || !cs_ok)
+ if (!op || pcinfo->opmode == GX_CINFO_OPMODE_NOT) {
return gx_set_no_overprint(pgs);
- else
+ } else if (!cs_ok) {
+ /* In this case, we still need to maintain any spot
+ colorant channels. Per Table 7.14. */
+ if (dev_proc(dev, dev_spec_op)(dev, gxdso_supports_devn, NULL, 0)) {
+ return gx_set_spot_only_overprint(pgs);
+ } else {
+ return gx_set_no_overprint(pgs);
+ }
+ } else
return gx_set_overprint_cmyk(pcs, pgs);
}
diff --git a/base/gsicc.h b/base/gsicc.h
index 28347acc..8fa86877 100644
--- a/base/gsicc.h
+++ b/base/gsicc.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsicc_cache.c b/base/gsicc_cache.c
index 713c4ba4..df51e88b 100644
--- a/base/gsicc_cache.c
+++ b/base/gsicc_cache.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -123,8 +123,8 @@ gsicc_cache_new(gs_memory_t *memory)
}
rc_init_free(result, memory->stable_memory, 1, rc_gsicc_link_cache_free);
if_debug2m(gs_debug_flag_icc, memory,
- "[icc] Allocating link cache = 0x%p memory = 0x%p\n",
- result, result->memory);
+ "[icc] Allocating link cache = "PRI_INTPTR" memory = "PRI_INTPTR"\n",
+ (intptr_t)result, (intptr_t)result->memory);
return(result);
}
@@ -135,8 +135,8 @@ rc_gsicc_link_cache_free(gs_memory_t * mem, void *ptr_in, client_name_t cname)
gsicc_link_cache_t *link_cache = (gsicc_link_cache_t * ) ptr_in;
if_debug2m(gs_debug_flag_icc, mem,
- "[icc] Removing link cache = 0x%p memory = 0x%p\n",
- link_cache, link_cache->memory);
+ "[icc] Removing link cache = "PRI_INTPTR" memory = "PRI_INTPTR"\n",
+ (intptr_t)link_cache, (intptr_t)link_cache->memory);
/* NB: freeing the link_cache will call icc_linkcache_finalize */
gs_free_object(mem->stable_memory, link_cache, "rc_gsicc_link_cache_free");
}
@@ -149,8 +149,8 @@ icc_linkcache_finalize(const gs_memory_t *mem, void *ptr)
while (link_cache->head != NULL) {
if (link_cache->head->ref_count != 0) {
- emprintf2(mem, "link at 0x%p being removed, but has ref_count = %d\n",
- link_cache->head, link_cache->head->ref_count);
+ emprintf2(mem, "link at "PRI_INTPTR" being removed, but has ref_count = %d\n",
+ (intptr_t)link_cache->head, link_cache->head->ref_count);
link_cache->head->ref_count = 0; /* force removal */
}
gsicc_remove_link(link_cache->head, mem);
@@ -214,8 +214,8 @@ gsicc_alloc_link_dev(gs_memory_t *memory, cmm_profile_t *src_profile,
result->valid = true;
result->memory = memory->stable_memory;
- if_debug1m('^', result->memory, "[^]icclink 0x%p init = 1\n",
- result);
+ if_debug1m('^', result->memory, "[^]icclink "PRI_INTPTR" init = 1\n",
+ (intptr_t)result);
if (src_profile->profile_handle == NULL) {
src_profile->profile_handle = gsicc_get_profile_handle_buffer(
@@ -304,8 +304,8 @@ gsicc_alloc_link(gs_memory_t *memory, gsicc_hashlink_t hashcode)
}
gx_monitor_enter(result->lock); /* this link is owned by this thread until built and made "valid" */
- if_debug1m('^', result->memory, "[^]icclink 0x%p init = 1\n",
- result);
+ if_debug1m('^', result->memory, "[^]icclink "PRI_INTPTR" init = 1\n",
+ (intptr_t)result);
return result;
}
@@ -520,8 +520,8 @@ gsicc_findcachelink(gsicc_hashlink_t hash, gsicc_link_cache_t *icc_link_cache,
}
/* bump the ref_count since we will be using this one */
curr->ref_count++;
- if_debug3m('^', curr->memory, "[^]%s 0x%p ++ => %d\n",
- "icclink", curr, curr->ref_count);
+ if_debug3m('^', curr->memory, "[^]%s "PRI_INTPTR" ++ => %d\n",
+ "icclink", (intptr_t)curr, curr->ref_count);
while (curr->valid == false) {
gx_monitor_leave(icc_link_cache->lock); /* exit to let other threads run briefly */
gx_monitor_enter(curr->lock); /* wait until we can acquire the lock */
@@ -530,7 +530,7 @@ gsicc_findcachelink(gsicc_hashlink_t hash, gsicc_link_cache_t *icc_link_cache,
/* that was building it failed to be able to complete building it */
/* this is probably a fatal error. MV ??? */
if (curr->valid == false) {
- emprintf1(curr->memory, "link 0x%p lock released, but still not valid.\n", curr); /* Breakpoint here */
+ emprintf1(curr->memory, "link "PRI_INTPTR" lock released, but still not valid.\n", (intptr_t)curr); /* Breakpoint here */
}
gx_monitor_enter(icc_link_cache->lock); /* re-enter to loop and check */
}
@@ -552,12 +552,12 @@ gsicc_remove_link(gsicc_link_t *link, const gs_memory_t *memory)
gsicc_link_cache_t *icc_link_cache = link->icc_link_cache;
if_debug2m(gs_debug_flag_icc, memory,
- "[icc] Removing link = 0x%p memory = 0x%p\n", link,
- memory->stable_memory);
+ "[icc] Removing link = "PRI_INTPTR" memory = "PRI_INTPTR"\n",
+ (intptr_t)link, (intptr_t)memory->stable_memory);
/* NOTE: link->ref_count must be 0: assert ? */
gx_monitor_enter(icc_link_cache->lock);
if (link->ref_count != 0) {
- emprintf2(memory, "link at 0x%p being removed, but has ref_count = %d\n", link, link->ref_count);
+ emprintf2(memory, "link at "PRI_INTPTR" being removed, but has ref_count = %d\n", (intptr_t)link, link->ref_count);
}
curr = icc_link_cache->head;
prev = NULL;
@@ -734,9 +734,8 @@ gsicc_get_link(const gs_gstate *pgs1, gx_device *dev_in,
render_cond.black_point_comp & gsBP_MASK;
return gsicc_get_link_profile(pgs, dev, gs_input_profile,
- dev_profile->device_profile[0],
- rendering_params, memory,
- false);
+ dev_profile->device_profile[GS_DEFAULT_DEVICE_PROFILE],
+ rendering_params, memory, false);
}
} else {
/* In this case we may be wanting for a "unmanaged color"
@@ -755,7 +754,7 @@ gsicc_get_link(const gs_gstate *pgs1, gx_device *dev_in,
/* Set the identity case if we are in that situation */
if (link != NULL) {
if (gs_input_profile->num_comps ==
- dev_profile->device_profile[0]->num_comps) {
+ dev_profile->device_profile[GS_DEFAULT_DEVICE_PROFILE]->num_comps) {
link->is_identity = true;
}
return link;
@@ -787,7 +786,7 @@ gsicc_get_link(const gs_gstate *pgs1, gx_device *dev_in,
gs_input_profile->num_comps);
if (link != NULL) {
if (gs_input_profile->num_comps ==
- dev_profile->device_profile[0]->num_comps) {
+ dev_profile->device_profile[GS_DEFAULT_DEVICE_PROFILE]->num_comps) {
link->is_identity = true;
}
return link;
@@ -859,8 +858,8 @@ gsicc_alloc_link_entry(gsicc_link_cache_t *icc_link_cache,
while (link != NULL ) {
if (link->ref_count == 0) {
/* we will use this one */
- if_debug3m('^', cache_mem, "[^]%s 0x%lx ++ => %d\n",
- "icclink", (ulong)link, link->ref_count);
+ if_debug3m('^', cache_mem, "[^]%s "PRI_INTPTR" ++ => %d\n",
+ "icclink", (intptr_t)link, link->ref_count);
break;
}
link = link->next;
@@ -974,8 +973,8 @@ gsicc_get_link_profile(const gs_gstate *pgs, gx_device *dev,
/* Got a hit, return link (ref_count for the link was already bumped */
if (found_link != NULL) {
if_debug2m(gs_debug_flag_icc, memory,
- "[icc] Found Link = 0x%p, hash = %lld \n",
- found_link, (long long)hash.link_hashcode);
+ "[icc] Found Link = "PRI_INTPTR", hash = %lld \n",
+ (intptr_t)found_link, (long long)hash.link_hashcode);
if_debug2m(gs_debug_flag_icc, memory,
"[icc] input_numcomps = %d, input_hash = %lld \n",
gs_input_profile->num_comps,
@@ -1017,7 +1016,7 @@ gsicc_get_link_profile(const gs_gstate *pgs, gx_device *dev,
/* Set the identity case if we are in that situation */
if (link != NULL) {
if (gs_input_profile->num_comps ==
- dev_profile->device_profile[0]->num_comps) {
+ dev_profile->device_profile[GS_DEFAULT_DEVICE_PROFILE]->num_comps) {
link->is_identity = true;
}
return link;
@@ -1219,8 +1218,8 @@ gsicc_get_link_profile(const gs_gstate *pgs, gx_device *dev,
include_softproof, include_devicelink, pageneutralcolor,
gs_input_profile->data_cs);
if_debug2m(gs_debug_flag_icc, cache_mem,
- "[icc] New Link = 0x%p, hash = %lld \n",
- link, (long long)hash.link_hashcode);
+ "[icc] New Link = "PRI_INTPTR", hash = %lld \n",
+ (intptr_t)link, (long long)hash.link_hashcode);
if_debug2m(gs_debug_flag_icc, cache_mem,
"[icc] input_numcomps = %d, input_hash = %lld \n",
gs_input_profile->num_comps,
@@ -1234,8 +1233,8 @@ gsicc_get_link_profile(const gs_gstate *pgs, gx_device *dev,
/* This could result in an infinite loop if other threads are waiting */
/* for it to be made valid. (see gsicc_findcachelink). */
link->ref_count--; /* this thread no longer using this link entry */
- if_debug2m('^', link->memory, "[^]icclink 0x%p -- => %d\n",
- link, link->ref_count);
+ if_debug2m('^', link->memory, "[^]icclink "PRI_INTPTR" -- => %d\n",
+ (intptr_t)link, link->ref_count);
if (icc_link_cache->cache_full) {
icc_link_cache->cache_full = false;
@@ -1481,8 +1480,8 @@ gsicc_support_named_color(const gs_color_space *pcs, const gs_gstate *pgs)
int k, code, i, num_comp, num_spots=0, num_process=0, num_other=0;
gs_color_space_index type = gs_color_space_get_index(pcs);
char **names = NULL;
- byte *pname;
- uint name_size;
+ byte *pname = NULL; /* Silence compiler warning */
+ uint name_size = 0; /* Silence compiler warning */
bool is_supported;
/* Get the data for the named profile */
@@ -1504,6 +1503,7 @@ gsicc_support_named_color(const gs_color_space *pcs, const gs_gstate *pgs)
num_comp = pcs->params.device_n.num_components;
} else if (type == gs_color_space_index_Separation) {
pname = (byte *)pcs->params.separation.sep_name;
+ name_size = strlen(pcs->params.separation.sep_name);
num_comp = 1;
} else
return false;
@@ -1514,9 +1514,6 @@ gsicc_support_named_color(const gs_color_space *pcs, const gs_gstate *pgs)
pname = (byte *)names[i];
name_size = strlen(names[i]);
}
- else {
- name_size = strlen(pcs->params.separation.sep_name);
- }
/* Classify */
if (strncmp((char *)pname, "None", name_size) == 0 ||
@@ -1730,8 +1727,8 @@ gsicc_release_link(gsicc_link_t *icclink)
icc_link_cache = icclink->icc_link_cache;
gx_monitor_enter(icc_link_cache->lock);
- if_debug2m('^', icclink->memory, "[^]icclink 0x%p -- => %d\n",
- icclink, icclink->ref_count - 1);
+ if_debug2m('^', icclink->memory, "[^]icclink "PRI_INTPTR" -- => %d\n",
+ (intptr_t)icclink, icclink->ref_count - 1);
/* Decrement the reference count */
if (--(icclink->ref_count) == 0) {
@@ -1792,9 +1789,11 @@ gsicc_init_buffer(gsicc_bufferdesc_t *buffer_desc, unsigned char num_chan, unsig
buffer_desc->num_rows = num_rows;
buffer_desc->pixels_per_row = pixels_per_row;
- /* sample endianess is consistent across platforms */
+#if ARCH_IS_BIG_ENDIAN
+ buffer_desc->little_endian = false;
+#else
buffer_desc->little_endian = true;
-
+#endif
}
/* Return the proper component numbers based upon the profiles of the device.
@@ -1804,7 +1803,7 @@ int
gsicc_get_device_profile_comps(const cmm_dev_profile_t *dev_profile)
{
if (dev_profile->link_profile == NULL) {
- return dev_profile->device_profile[0]->num_comps;
+ return dev_profile->device_profile[GS_DEFAULT_DEVICE_PROFILE]->num_comps;
} else {
return dev_profile->link_profile->num_comps_out;
}
diff --git a/base/gsicc_cache.h b/base/gsicc_cache.h
index 4afaef3e..c9b9d0ab 100644
--- a/base/gsicc_cache.h
+++ b/base/gsicc_cache.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsicc_cms.h b/base/gsicc_cms.h
index 1db7c858..9a067093 100644
--- a/base/gsicc_cms.h
+++ b/base/gsicc_cms.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsicc_create.c b/base/gsicc_create.c
index ef464600..3fc8492b 100644
--- a/base/gsicc_create.c
+++ b/base/gsicc_create.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -1176,8 +1176,8 @@ add_lutAtoBtype(unsigned char *input_ptr, gsicc_lutatob *lutatobparts)
memset(curr_ptr,0,4); /* A curves */
} else {
write_bigendian_4bytes(curr_ptr,data_offset);
- mlut_size = lutatobparts->clut->clut_num_entries *
- lutatobparts->clut->clut_word_width * 3;
+ mlut_size = (long)lutatobparts->clut->clut_num_entries *
+ lutatobparts->clut->clut_word_width * 3;
pad_bytes = (4 - mlut_size%4)%4;
data_offset += (mlut_size + pad_bytes + 20);
curr_ptr += 4;
@@ -2491,14 +2491,16 @@ create_clut_v2(gsicc_clut *clut, gsicc_link_t *link, int num_in,
if (bitdepth == 2) {
clut->data_byte = NULL;
clut->data_short = (unsigned short*)gs_alloc_bytes(memory,
- clut->clut_num_entries * num_out * sizeof(unsigned short),
- "create_clut_v2");
+ (size_t)clut->clut_num_entries * num_out *
+ sizeof(unsigned short),
+ "create_clut_v2");
if (clut->data_short == NULL)
return -1;
} else {
clut->data_short = NULL;
clut->data_byte = (byte*)gs_alloc_bytes(memory,
- clut->clut_num_entries * num_out, "create_clut_v2");
+ (size_t)clut->clut_num_entries * num_out,
+ "create_clut_v2");
if (clut->data_byte == NULL)
return -1;
}
diff --git a/base/gsicc_create.h b/base/gsicc_create.h
index 9977af4d..ca84eb3a 100644
--- a/base/gsicc_create.h
+++ b/base/gsicc_create.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsicc_lcms2.c b/base/gsicc_lcms2.c
index 2fc3645c..43a7a93a 100644
--- a/base/gsicc_lcms2.c
+++ b/base/gsicc_lcms2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsicc_lcms2mt.c b/base/gsicc_lcms2mt.c
index ec65fec7..dbb9c4b2 100644
--- a/base/gsicc_lcms2mt.c
+++ b/base/gsicc_lcms2mt.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsicc_manage.c b/base/gsicc_manage.c
index a841df7b..8d28bcf1 100644
--- a/base/gsicc_manage.c
+++ b/base/gsicc_manage.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -1580,7 +1580,7 @@ gsicc_set_device_profile_colorants(gx_device *dev, char *name_str)
/* Create a default name string that we can use */
int total_len;
int kk;
- int num_comps = profile_struct->device_profile[0]->num_comps;
+ int num_comps = profile_struct->device_profile[GS_DEFAULT_DEVICE_PROFILE]->num_comps;
char temp_str[DEFAULT_ICC_COLORANT_LENGTH+2];
/* If names are already set then we do not want to set default ones */
@@ -1837,16 +1837,16 @@ gsicc_verify_device_profiles(gx_device * pdev)
{
int k;
cmm_dev_profile_t *dev_icc = pdev->icc_struct;
- bool is_sep = false;
+ bool check_components = true;
bool can_postrender = false;
bool objects = false;
- if (pdev->procs.dev_spec_op != NULL) {
- is_sep = dev_proc(pdev, dev_spec_op)(pdev, gxdso_supports_devn, NULL, 0);
+ if (dev_proc(pdev, dev_spec_op) != NULL) {
+ check_components = !(dev_proc(pdev, dev_spec_op)(pdev, gxdso_skip_icc_component_validation, NULL, 0));
can_postrender = dev_proc(pdev, dev_spec_op)(pdev, gxdso_supports_iccpostrender, NULL, 0);
}
- if (dev_icc->device_profile[0] == NULL)
+ if (dev_icc->device_profile[GS_DEFAULT_DEVICE_PROFILE] == NULL)
return 0;
if (dev_icc->postren_profile != NULL && dev_icc->link_profile != NULL) {
@@ -1864,7 +1864,7 @@ gsicc_verify_device_profiles(gx_device * pdev)
if (!can_postrender) {
return gs_rethrow(-1, "Post render profile not supported by device");
}
- if (!is_sep) {
+ if (check_components) {
if (dev_icc->postren_profile->num_comps !=
pdev->color_info.num_components) {
return gs_rethrow(-1, "Post render profile does not match the device color model");
@@ -1883,33 +1883,37 @@ gsicc_verify_device_profiles(gx_device * pdev)
if (dev_icc->link_profile == NULL) {
if (!objects) {
- if (!is_sep && dev_icc->device_profile[0]->num_comps !=
+ if (check_components && dev_icc->device_profile[GS_DEFAULT_DEVICE_PROFILE]->num_comps !=
pdev->color_info.num_components)
return gs_rethrow(-1, "Mismatch of ICC profiles and device color model");
else
return 0; /* Currently sep devices have some leeway here */
} else {
- for (k = 1; k < NUM_DEVICE_PROFILES; k++)
- if (!is_sep && dev_icc->device_profile[k] != NULL) {
- if (dev_icc->device_profile[k]->num_comps !=
- pdev->color_info.num_components)
- return gs_rethrow(-1, "Mismatch of object dependent ICC profiles and device color model");
- }
+ if (check_components) {
+ for (k = 1; k < NUM_DEVICE_PROFILES; k++)
+ if (dev_icc->device_profile[k] != NULL) {
+ if (dev_icc->device_profile[k]->num_comps !=
+ pdev->color_info.num_components)
+ return gs_rethrow(-1, "Mismatch of object dependent ICC profiles and device color model");
+ }
+ }
return 0;
}
} else {
/* The input of the device link must match the output of the device
profile and the device link output must match the device color
model */
- if (!is_sep && dev_icc->link_profile->num_comps_out !=
+ if (check_components && dev_icc->link_profile->num_comps_out !=
pdev->color_info.num_components) {
return gs_rethrow(-1, "Mismatch of device link profile and device color model");
}
- for (k = 0; k < NUM_DEVICE_PROFILES; k++) {
- if (!is_sep && dev_icc->device_profile[k] != NULL) {
- if (dev_icc->device_profile[k]->num_comps !=
- dev_icc->link_profile->num_comps) {
- return gs_rethrow(-1, "Mismatch of device link profile and device ICC profile");
+ if (check_components) {
+ for (k = 0; k < NUM_DEVICE_PROFILES; k++) {
+ if (dev_icc->device_profile[k] != NULL) {
+ if (dev_icc->device_profile[k]->num_comps !=
+ dev_icc->link_profile->num_comps) {
+ return gs_rethrow(-1, "Mismatch of device link profile and device ICC profile");
+ }
}
}
}
@@ -2165,7 +2169,7 @@ gsicc_profile_new(stream *s, gs_memory_t *memory, const char* pname,
return NULL;
}
if_debug1m(gs_debug_flag_icc, mem_nongc,
- "[icc] allocating ICC profile = 0x%p\n", result);
+ "[icc] allocating ICC profile = "PRI_INTPTR"\n", (intptr_t)result);
return result;
}
@@ -2176,8 +2180,8 @@ rc_free_icc_profile(gs_memory_t * mem, void *ptr_in, client_name_t cname)
gs_memory_t *mem_nongc = profile->memory;
if_debug2m(gs_debug_flag_icc, mem,
- "[icc] rc decrement profile = 0x%p rc = %ld\n",
- ptr_in, profile->rc.ref_count);
+ "[icc] rc decrement profile = "PRI_INTPTR" rc = %ld\n",
+ (intptr_t)ptr_in, profile->rc.ref_count);
if (profile->rc.ref_count <= 1 ) {
/* Clear out the buffer if it is full */
if (profile->buffer != NULL) {
@@ -2787,31 +2791,31 @@ gsicc_extract_profile(gs_graphics_type_tag_t graphics_type_tag,
case GS_UNKNOWN_TAG:
case GS_UNTOUCHED_TAG:
default:
- (*profile) = profile_struct->device_profile[0];
- *render_cond = profile_struct->rendercond[0];
+ (*profile) = profile_struct->device_profile[GS_DEFAULT_DEVICE_PROFILE];
+ *render_cond = profile_struct->rendercond[GS_DEFAULT_DEVICE_PROFILE];
break;
case GS_PATH_TAG:
- *render_cond = profile_struct->rendercond[1];
- if (profile_struct->device_profile[1] != NULL) {
- (*profile) = profile_struct->device_profile[1];
+ *render_cond = profile_struct->rendercond[GS_GRAPHIC_DEVICE_PROFILE];
+ if (profile_struct->device_profile[GS_GRAPHIC_DEVICE_PROFILE] != NULL) {
+ (*profile) = profile_struct->device_profile[GS_GRAPHIC_DEVICE_PROFILE];
} else {
- (*profile) = profile_struct->device_profile[0];
+ (*profile) = profile_struct->device_profile[GS_DEFAULT_DEVICE_PROFILE];
}
break;
case GS_IMAGE_TAG:
- *render_cond = profile_struct->rendercond[2];
- if (profile_struct->device_profile[2] != NULL) {
- (*profile) = profile_struct->device_profile[2];
+ *render_cond = profile_struct->rendercond[GS_IMAGE_DEVICE_PROFILE];
+ if (profile_struct->device_profile[GS_IMAGE_DEVICE_PROFILE] != NULL) {
+ (*profile) = profile_struct->device_profile[GS_IMAGE_DEVICE_PROFILE];
} else {
- (*profile) = profile_struct->device_profile[0];
+ (*profile) = profile_struct->device_profile[GS_DEFAULT_DEVICE_PROFILE];
}
break;
case GS_TEXT_TAG:
- *render_cond = profile_struct->rendercond[3];
- if (profile_struct->device_profile[3] != NULL) {
- (*profile) = profile_struct->device_profile[3];
+ *render_cond = profile_struct->rendercond[GS_TEXT_DEVICE_PROFILE];
+ if (profile_struct->device_profile[GS_TEXT_DEVICE_PROFILE] != NULL) {
+ (*profile) = profile_struct->device_profile[GS_TEXT_DEVICE_PROFILE];
} else {
- (*profile) = profile_struct->device_profile[0];
+ (*profile) = profile_struct->device_profile[GS_DEFAULT_DEVICE_PROFILE];
}
break;
}
@@ -3010,7 +3014,7 @@ gs_seticcdirectory(const gs_gstate * pgs, gs_param_string * pval)
pname = (char *)gs_alloc_bytes(mem, namelen,
"gs_seticcdirectory");
if (pname == NULL)
- return gs_rethrow(-1, "cannot allocate directory name");
+ return gs_rethrow(gs_error_VMerror, "cannot allocate directory name");
memcpy(pname,pval->data,namelen-1);
pname[namelen-1] = 0;
if (gs_lib_ctx_set_icc_directory(mem, (const char*) pname, namelen) < 0) {
diff --git a/base/gsicc_manage.h b/base/gsicc_manage.h
index c21407e7..a4bde945 100644
--- a/base/gsicc_manage.h
+++ b/base/gsicc_manage.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsicc_monitorcm.c b/base/gsicc_monitorcm.c
index 0a1ef9a5..2e305e9d 100644
--- a/base/gsicc_monitorcm.c
+++ b/base/gsicc_monitorcm.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -264,7 +264,7 @@ gsicc_mcm_transform_general(gx_device *dev, gsicc_link_t *icclink,
if (icclink->hashcode.des_hash == icclink->hashcode.src_hash) {
if (num_bytes_in == num_bytes_out) {
/* The easy case */
- memcpy(outputcolor, inputcolor, num_bytes_in * icclink->num_input);
+ memcpy(outputcolor, inputcolor, (size_t)num_bytes_in * icclink->num_input);
} else {
if (num_bytes_in == 2) {
unsigned short *in_ptr = (unsigned short*) inputcolor;
diff --git a/base/gsicc_nocm.c b/base/gsicc_nocm.c
index b56b7a36..6d23382f 100644
--- a/base/gsicc_nocm.c
+++ b/base/gsicc_nocm.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsicc_profilecache.c b/base/gsicc_profilecache.c
index 0b1411f7..adb4ad1d 100644
--- a/base/gsicc_profilecache.c
+++ b/base/gsicc_profilecache.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -114,8 +114,8 @@ gsicc_add_cs(gs_gstate * pgs, gs_color_space * colorspace, uint64_t dictkey)
rc_increment(colorspace);
result->key = dictkey;
if_debug2m(gs_debug_flag_icc, memory,
- "[icc] Add cs to cache = 0x%p, hash = %"PRIu64"\n",
- result->color_space, (uint64_t)result->key);
+ "[icc] Add cs to cache = "PRI_INTPTR", hash = %"PRIu64"\n",
+ (intptr_t)result->color_space, (uint64_t)result->key);
profile_cache->num_entries++;
}
@@ -129,8 +129,8 @@ gsicc_find_cs(uint64_t key_test, gs_gstate * pgs)
while (curr != NULL ){
if (curr->key == key_test){
if_debug2m(gs_debug_flag_icc, pgs->memory,
- "[icc] Found cs = 0x%p, hash = %"PRIu64"\n",
- curr->color_space, (uint64_t)curr->key);
+ "[icc] Found cs = "PRI_INTPTR", hash = %"PRIu64"\n",
+ (intptr_t)curr->color_space, (uint64_t)curr->key);
/* If not already at head of list, move this one there */
if (curr != profile_cache->head) {
/* We need to move found one to the top of the list. */
@@ -182,8 +182,8 @@ gsicc_remove_cs_entry(gsicc_profile_cache_t *profile_cache)
/* If found again in the source document, it will be regenerated
and added back into the cache. */
if_debug2m(gs_debug_flag_icc, memory,
- "[icc] Remove cs from cache = 0x%p, hash = %"PRIu64"\n",
- curr->color_space, (uint64_t)curr->key);
+ "[icc] Remove cs from cache = "PRI_INTPTR", hash = %"PRIu64"\n",
+ (intptr_t)curr->color_space, (uint64_t)curr->key);
rc_decrement(curr->color_space, "gsicc_remove_cs_entry");
gs_free_object(memory->stable_memory, curr, "gsicc_remove_cs_entry");
}
diff --git a/base/gsicc_profilecache.h b/base/gsicc_profilecache.h
index 43a8bcd0..8a344770 100644
--- a/base/gsicc_profilecache.h
+++ b/base/gsicc_profilecache.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsicc_replacecm.c b/base/gsicc_replacecm.c
index 815b8419..906f2ebb 100644
--- a/base/gsicc_replacecm.c
+++ b/base/gsicc_replacecm.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsimage.c b/base/gsimage.c
index 7b4602fc..d62c76eb 100644
--- a/base/gsimage.c
+++ b/base/gsimage.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -489,8 +489,8 @@ free_row_buffers(gs_image_enum *penum, int num_planes, client_name_t cname)
int i;
for (i = num_planes - 1; i >= 0; --i) {
- if_debug3m('b', penum->memory, "[b]free plane %d row (0x%lx,%u)\n",
- i, (ulong)penum->planes[i].row.data,
+ if_debug3m('b', penum->memory, "[b]free plane %d row ("PRI_INTPTR",%u)\n",
+ i, (intptr_t)penum->planes[i].row.data,
penum->planes[i].row.size);
gs_free_string(gs_image_row_memory(penum), penum->planes[i].row.data,
penum->planes[i].row.size, cname);
@@ -538,10 +538,10 @@ gs_image_next_planes(gs_image_enum * penum,
int pi;
for (pi = 0; pi < num_planes; ++pi)
- dmprintf6(penum->memory, "[b]plane %d source=0x%lx,%u pos=%u data=0x%lx,%u\n",
- pi, (ulong)penum->planes[pi].source.data,
+ dmprintf6(penum->memory, "[b]plane %d source="PRI_INTPTR",%u pos=%u data="PRI_INTPTR",%u\n",
+ pi, (intptr_t)penum->planes[pi].source.data,
penum->planes[pi].source.size, penum->planes[pi].pos,
- (ulong)plane_data[pi].data, plane_data[pi].size);
+ (intptr_t)plane_data[pi].data, plane_data[pi].size);
}
#endif
for (i = 0; i < num_planes; ++i) {
@@ -582,9 +582,9 @@ gs_image_next_planes(gs_image_enum * penum,
gs_resize_string(mem, old_data, old_size, raster,
"gs_image_next(row)"));
- if_debug5m('b', mem, "[b]plane %d row (0x%lx,%u) => (0x%lx,%u)\n",
- i, (ulong)old_data, old_size,
- (ulong)row, raster);
+ if_debug5m('b', mem, "[b]plane %d row ("PRI_INTPTR",%u) => ("PRI_INTPTR",%u)\n",
+ i, (intptr_t)old_data, old_size,
+ (intptr_t)row, raster);
if (row == 0) {
code = gs_note_error(gs_error_VMerror);
free_row_buffers(penum, i, "gs_image_next(row)");
diff --git a/base/gsimage.h b/base/gsimage.h
index f7c5b0a3..29cf9f81 100644
--- a/base/gsimage.h
+++ b/base/gsimage.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsimpath.c b/base/gsimpath.c
index 2cbc8416..073dffe4 100644
--- a/base/gsimpath.c
+++ b/base/gsimpath.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsinit.c b/base/gsinit.c
index f7c0bdb7..e80353d7 100644
--- a/base/gsinit.c
+++ b/base/gsinit.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsio.h b/base/gsio.h
index 222b71c7..8857bb09 100644
--- a/base/gsio.h
+++ b/base/gsio.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsiodev.c b/base/gsiodev.c
index 1619f46a..7b405947 100644
--- a/base/gsiodev.c
+++ b/base/gsiodev.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -305,13 +305,13 @@ iodev_os_fclose(gx_io_device * iodev, gp_file * file)
static int
os_delete(gx_io_device * iodev, const char *fname)
{
- return (unlink(fname) == 0 ? 0 : gs_error_ioerror);
+ return (gp_unlink(iodev->memory, fname) == 0 ? 0 : gs_error_ioerror);
}
static int
os_rename(gx_io_device * iodev, const char *from, const char *to)
{
- return (rename(from, to) == 0 ? 0 : gs_error_ioerror);
+ return (gp_rename(iodev->memory, from, to) == 0 ? 0 : gs_error_ioerror);
}
static int
diff --git a/base/gsiodevs.c b/base/gsiodevs.c
index 32f26133..1e459701 100644
--- a/base/gsiodevs.c
+++ b/base/gsiodevs.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsiodisk.c b/base/gsiodisk.c
index 24f53426..5a127e1b 100644
--- a/base/gsiodisk.c
+++ b/base/gsiodisk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsioram.c b/base/gsioram.c
index e21e3207..40cdb91e 100644
--- a/base/gsioram.c
+++ b/base/gsioram.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsiorom.c b/base/gsiorom.c
index 6516568a..767a35cf 100644
--- a/base/gsiorom.c
+++ b/base/gsiorom.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -412,3 +412,40 @@ romfs_enumerate_next(gs_memory_t * mem, file_enum *pfen, char *ptr, uint maxlen)
romfs_enumerate_close(mem, pfen);
return ~(uint)0;
}
+
+int
+romfs_file_len(gs_memory_t * mem, const char *fname)
+{
+ extern const uint32_t *gs_romfs[];
+ extern const time_t gs_romfs_buildtime;
+ const uint32_t *node_scan = gs_romfs[0], *node = NULL;
+ uint32_t filelen, blocks;
+ int i;
+ char *filename;
+ uint namelen = strlen(fname);
+
+ /* a build time of zero indicates we have the "dummy" romfs
+ * used when COMPILE_INITS==0 - returning a specific error here
+ * gives us a quick way to check for that.
+ */
+ if (gs_romfs_buildtime == (time_t)0) {
+ return_error(gs_error_unregistered);
+ }
+
+ /* scan the inodes to find the requested file */
+ for (i=0; node_scan != 0; i++, node_scan = gs_romfs[i]) {
+ filelen = get_u32_big_endian(node_scan) & 0x7fffffff; /* ignore compression bit */
+ blocks = (filelen+ROMFS_BLOCKSIZE-1)/ ROMFS_BLOCKSIZE;
+ filename = (char *)(&(node_scan[1+(2*blocks)]));
+ if ((namelen == strlen(filename)) &&
+ (strncmp(filename, fname, namelen) == 0)) {
+ node = node_scan;
+ break;
+ }
+ }
+ /* inode points to the file (or NULL if not found */
+ if (node == NULL)
+ return_error(gs_error_undefinedfilename);
+
+ return (int)filelen;
+}
diff --git a/base/gsiorom.h b/base/gsiorom.h
index 06e8c37d..90f9ef02 100644
--- a/base/gsiorom.h
+++ b/base/gsiorom.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsipar3x.h b/base/gsipar3x.h
index 77c595c9..2cf6e3d9 100644
--- a/base/gsipar3x.h
+++ b/base/gsipar3x.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsiparam.h b/base/gsiparam.h
index af9044b9..8fc9172c 100644
--- a/base/gsiparam.h
+++ b/base/gsiparam.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsiparm3.h b/base/gsiparm3.h
index 9229b5d8..14a249ec 100644
--- a/base/gsiparm3.h
+++ b/base/gsiparm3.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsiparm4.h b/base/gsiparm4.h
index d2a479aa..c9f0e704 100644
--- a/base/gsiparm4.h
+++ b/base/gsiparm4.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsjconf.h b/base/gsjconf.h
index 74f33a33..18de9026 100644
--- a/base/gsjconf.h
+++ b/base/gsjconf.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsjmorec.h b/base/gsjmorec.h
index 4c4ee3c5..2d2cb051 100644
--- a/base/gsjmorec.h
+++ b/base/gsjmorec.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gslib.c b/base/gslib.c
index 151da9a1..ee21b5d8 100644
--- a/base/gslib.c
+++ b/base/gslib.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -930,7 +930,7 @@ test10(gs_gstate * pgs, gs_memory_t * mem)
gs_param_int_array HWSa;
int HWSize[2];
float HWResolution[2], PageSize[2];
- long MaxBitmap;
+ size_t MaxBitmap;
int code;
gx_device *dev = gs_currentdevice(pgs);
float xlate_x, xlate_y;
@@ -972,13 +972,13 @@ test10(gs_gstate * pgs, gs_memory_t * mem)
}
emprintf3(mem, "PageSize[%d] = [ %f, %f ]\n", PSa.size,
PSa.data[0], PSa.data[1]);
- code = param_read_long((gs_param_list *) & list,
- "MaxBitmap", &MaxBitmap);
+ code = param_read_size_t((gs_param_list *) & list,
+ "MaxBitmap", &MaxBitmap);
if (code < 0) {
lprintf1("reading MaxBitmap failed! code = %d\n", code);
gs_abort(mem);
}
- emprintf1(mem, "MaxBitmap = %ld\n", MaxBitmap);
+ emprintf1(mem, "MaxBitmap = %"PRIi64"\n", MaxBitmap);
/* Switch to param list functions to "write" */
gs_c_param_list_write(&list, mem);
/* Always set the PageSize. */
@@ -1015,8 +1015,8 @@ test10(gs_gstate * pgs, gs_memory_t * mem)
code = param_write_int_array((gs_param_list *) & list,
"HWSize", &HWSa);
MaxBitmap = 1000000L;
- code = param_write_long((gs_param_list *) & list,
- "MaxBitmap", &MaxBitmap);
+ code = param_write_size_t((gs_param_list *) & list,
+ "MaxBitmap", &MaxBitmap);
}
gs_c_param_list_read(&list);
code = gs_putdeviceparams(dev, (gs_param_list *) & list);
diff --git a/base/gslib.h b/base/gslib.h
index b1065a37..2291fbca 100644
--- a/base/gslib.h
+++ b/base/gslib.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gslibctx.c b/base/gslibctx.c
index fbfd9143..63dfbe2e 100644
--- a/base/gslibctx.c
+++ b/base/gslibctx.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -86,7 +86,7 @@ gs_lib_ctx_set_icc_directory(const gs_memory_t *mem_gc, const char* pname,
result = (char*) gs_alloc_bytes(p_ctx_mem, dir_namelen+1,
"gs_lib_ctx_set_icc_directory");
if (result == NULL) {
- return -1;
+ return gs_error_VMerror;
}
strcpy(result, pname);
p_ctx->profiledir = result;
@@ -388,6 +388,7 @@ void gs_lib_ctx_fin(gs_memory_t *mem)
gs_memory_t *ctx_mem;
int refs, i;
gs_fs_list_t *fs;
+ gs_callout_list_t *entry;
if (!mem || !mem->gs_lib_ctx)
return;
@@ -419,6 +420,7 @@ void gs_lib_ctx_fin(gs_memory_t *mem)
#ifdef WITH_CAL
cal_fin(ctx->core->cal_ctx, ctx->core->memory);
#endif
+ gs_purge_scratch_files(ctx->core->memory);
gs_purge_control_paths(ctx->core->memory, gs_permit_file_reading);
gs_purge_control_paths(ctx->core->memory, gs_permit_file_writing);
gs_purge_control_paths(ctx->core->memory, gs_permit_file_control);
@@ -430,6 +432,13 @@ void gs_lib_ctx_fin(gs_memory_t *mem)
fs = next;
}
+ entry = ctx->core->callouts;
+ while (entry) {
+ gs_callout_list_t *next = entry->next;
+ gs_free_object(mem->non_gc_memory, entry, "gs_callout_list_t");
+ entry = next;
+ }
+
for (i = 0; i < ctx->core->argc; i++)
gs_free_object(ctx->core->memory, ctx->core->argv[i], "gs_lib_ctx_arg");
gs_free_object(ctx->core->memory, ctx->core->argv, "gs_lib_ctx_args");
@@ -486,7 +495,7 @@ int outwrite(const gs_memory_t *mem, const char *str, int len)
code = gp_fwrite(str, 1, len, core->fstdout2);
gp_fflush(core->fstdout2);
} else if (core->stdout_fn) {
- return (*core->stdout_fn)(core->caller_handle, str, len);
+ return (*core->stdout_fn)(core->std_caller_handle, str, len);
} else {
code = fwrite(str, 1, len, core->fstdout);
fflush(core->fstdout);
@@ -522,7 +531,7 @@ int errwrite(const gs_memory_t *mem, const char *str, int len)
return 0;
core = ctx->core;
if (core->stderr_fn)
- return (*core->stderr_fn)(core->caller_handle, str, len);
+ return (*core->stderr_fn)(core->std_caller_handle, str, len);
code = fwrite(str, 1, len, core->fstderr);
fflush(core->fstderr);
@@ -638,7 +647,7 @@ gs_add_outputfile_control_path(gs_memory_t *mem, const char *fname)
char *fp, f[gp_file_name_sizeof];
const int pipe = 124; /* ASCII code for '|' */
const int len = strlen(fname);
- int i;
+ int i, code;
/* Be sure the string copy will fit */
if (len >= gp_file_name_sizeof)
@@ -649,8 +658,6 @@ gs_add_outputfile_control_path(gs_memory_t *mem, const char *fname)
rewrite_percent_specifiers(f);
for (i = 0; i < len; i++) {
if (f[i] == pipe) {
- int code;
-
fp = &f[i + 1];
/* Because we potentially have to check file permissions at two levels
for the output file (gx_device_open_output_file and the low level
@@ -661,11 +668,17 @@ gs_add_outputfile_control_path(gs_memory_t *mem, const char *fname)
code = gs_add_control_path(mem, gs_permit_file_writing, f);
if (code < 0)
return code;
+ code = gs_add_control_path(mem, gs_permit_file_control, f);
+ if (code < 0)
+ return code;
break;
}
if (!IS_WHITESPACE(f[i]))
break;
}
+ code = gs_add_control_path(mem, gs_permit_file_control, fp);
+ if (code < 0)
+ return code;
return gs_add_control_path(mem, gs_permit_file_writing, fp);
}
@@ -675,7 +688,7 @@ gs_remove_outputfile_control_path(gs_memory_t *mem, const char *fname)
char *fp, f[gp_file_name_sizeof];
const int pipe = 124; /* ASCII code for '|' */
const int len = strlen(fname);
- int i;
+ int i, code;
/* Be sure the string copy will fit */
if (len >= gp_file_name_sizeof)
@@ -685,8 +698,6 @@ gs_remove_outputfile_control_path(gs_memory_t *mem, const char *fname)
/* Try to rewrite any %d (or similar) in the string */
for (i = 0; i < len; i++) {
if (f[i] == pipe) {
- int code;
-
fp = &f[i + 1];
/* Because we potentially have to check file permissions at two levels
for the output file (gx_device_open_output_file and the low level
@@ -697,11 +708,17 @@ gs_remove_outputfile_control_path(gs_memory_t *mem, const char *fname)
code = gs_remove_control_path(mem, gs_permit_file_writing, f);
if (code < 0)
return code;
+ code = gs_remove_control_path(mem, gs_permit_file_control, f);
+ if (code < 0)
+ return code;
break;
}
if (!IS_WHITESPACE(f[i]))
break;
}
+ code = gs_remove_control_path(mem, gs_permit_file_control, fp);
+ if (code < 0)
+ return code;
return gs_remove_control_path(mem, gs_permit_file_writing, fp);
}
@@ -727,6 +744,12 @@ gs_add_explicit_control_path(gs_memory_t *mem, const char *arg, gs_path_control_
int
gs_add_control_path_len(const gs_memory_t *mem, gs_path_control_t type, const char *path, size_t len)
{
+ return gs_add_control_path_len_flags(mem, type, path, len, 0);
+}
+
+int
+gs_add_control_path_len_flags(const gs_memory_t *mem, gs_path_control_t type, const char *path, size_t len, int flags)
+{
gs_path_control_set_t *control;
unsigned int n, i;
gs_lib_ctx_core_t *core;
@@ -766,33 +789,34 @@ gs_add_control_path_len(const gs_memory_t *mem, gs_path_control_t type, const ch
n = control->num;
for (i = 0; i < n; i++)
{
- if (strncmp(control->paths[i], buffer, rlen) == 0 &&
- control->paths[i][rlen] == 0) {
+ if (strncmp(control->entry[i].path, buffer, rlen) == 0 &&
+ control->entry[i].path[rlen] == 0) {
gs_free_object(core->memory, buffer, "gs_add_control_path_len");
return 0; /* Already there! */
}
}
if (control->num == control->max) {
- char **p;
+ gs_path_control_entry_t *p;
n = control->max * 2;
if (n == 0) {
n = 4;
- p = (char **)gs_alloc_bytes(core->memory, sizeof(*p)*n, "gs_lib_ctx(paths)");
+ p = (gs_path_control_entry_t *)gs_alloc_bytes(core->memory, sizeof(*p)*n, "gs_lib_ctx(entries)");
} else
- p = (char **)gs_resize_object(core->memory, control->paths, sizeof(*p)*n, "gs_lib_ctx(paths)");
+ p = (gs_path_control_entry_t *)gs_resize_object(core->memory, control->entry, sizeof(*p)*n, "gs_lib_ctx(entries)");
if (p == NULL) {
gs_free_object(core->memory, buffer, "gs_add_control_path_len");
return gs_error_VMerror;
}
- control->paths = p;
+ control->entry = p;
control->max = n;
}
n = control->num;
- control->paths[n] = buffer;
- control->paths[n][len] = 0;
+ control->entry[n].path = buffer;
+ control->entry[n].path[len] = 0;
+ control->entry[n].flags = flags;
control->num++;
return 0;
@@ -801,15 +825,24 @@ gs_add_control_path_len(const gs_memory_t *mem, gs_path_control_t type, const ch
int
gs_add_control_path(const gs_memory_t *mem, gs_path_control_t type, const char *path)
{
- if (path == NULL)
- return 0;
+ return gs_add_control_path_len_flags(mem, type, path, strlen(path), 0);
+}
- return gs_add_control_path_len(mem, type, path, strlen(path));
+int
+gs_add_control_path_flags(const gs_memory_t *mem, gs_path_control_t type, const char *path, int flags)
+{
+ return gs_add_control_path_len_flags(mem, type, path, strlen(path), flags);
}
int
gs_remove_control_path_len(const gs_memory_t *mem, gs_path_control_t type, const char *path, size_t len)
{
+ return gs_remove_control_path_len_flags(mem, type, path, len, 0);
+}
+
+int
+gs_remove_control_path_len_flags(const gs_memory_t *mem, gs_path_control_t type, const char *path, size_t len, int flags)
+{
gs_path_control_set_t *control;
unsigned int n, i;
gs_lib_ctx_core_t *core;
@@ -848,17 +881,18 @@ gs_remove_control_path_len(const gs_memory_t *mem, gs_path_control_t type, const
n = control->num;
for (i = 0; i < n; i++) {
- if (strncmp(control->paths[i], buffer, len) == 0 &&
- control->paths[i][len] == 0)
+ if (control->entry[i].flags == flags &&
+ strncmp(control->entry[i].path, buffer, len) == 0 &&
+ control->entry[i].path[len] == 0)
break;
}
gs_free_object(core->memory, buffer, "gs_remove_control_path_len");
if (i == n)
return 0;
- gs_free_object(core->memory, control->paths[i], "gs_lib_ctx(path)");
+ gs_free_object(core->memory, control->entry[i].path, "gs_lib_ctx(path)");
for (;i < n-1; i++)
- control->paths[i] = control->paths[i+1];
+ control->entry[i] = control->entry[i+1];
control->num = n-1;
return 0;
@@ -870,14 +904,23 @@ gs_remove_control_path(const gs_memory_t *mem, gs_path_control_t type, const cha
if (path == NULL)
return 0;
- return gs_remove_control_path_len(mem, type, path, strlen(path));
+ return gs_remove_control_path_len_flags(mem, type, path, strlen(path), 0);
+}
+
+int
+gs_remove_control_path_flags(const gs_memory_t *mem, gs_path_control_t type, const char *path, int flags)
+{
+ if (path == NULL)
+ return 0;
+
+ return gs_remove_control_path_len_flags(mem, type, path, strlen(path), flags);
}
void
gs_purge_control_paths(const gs_memory_t *mem, gs_path_control_t type)
{
gs_path_control_set_t *control;
- unsigned int n, i;
+ unsigned int n, in, out;
gs_lib_ctx_core_t *core;
if (mem == NULL || mem->gs_lib_ctx == NULL ||
@@ -899,13 +942,70 @@ gs_purge_control_paths(const gs_memory_t *mem, gs_path_control_t type)
}
n = control->num;
- for (i = 0; i < n; i++) {
- gs_free_object(core->memory, control->paths[i], "gs_lib_ctx(path)");
+ for (in = out = 0; in < n; in++) {
+ if (control->entry[in].flags & gs_path_control_flag_is_scratch_file) {
+ /* Don't purge scratch files! */
+ control->entry[out++] = control->entry[in];
+ } else
+ gs_free_object(core->memory, control->entry[in].path, "gs_lib_ctx(path)");
+ }
+ control->num = out;
+ if (out == 0) {
+ gs_free_object(core->memory, control->entry, "gs_lib_ctx(paths)");
+ control->entry = NULL;
+ control->max = 0;
+ }
+}
+
+void
+gs_purge_scratch_files(const gs_memory_t *mem)
+{
+ gs_path_control_set_t *control;
+ gs_path_control_t type;
+ int n, in, out;
+ gs_lib_ctx_core_t *core;
+
+ if (mem == NULL || mem->gs_lib_ctx == NULL ||
+ (core = mem->gs_lib_ctx->core) == NULL)
+ return;
+
+ for (type = gs_permit_file_reading; type <= gs_permit_file_control; type++)
+ {
+ switch(type) {
+ default:
+ case gs_permit_file_reading:
+ control = &core->permit_reading;
+ break;
+ case gs_permit_file_writing:
+ control = &core->permit_writing;
+ break;
+ case gs_permit_file_control:
+ control = &core->permit_control;
+ break;
+ }
+
+ n = control->num;
+ for (in = out = 0; in < n; in++) {
+ if ((control->entry[in].flags & gs_path_control_flag_is_scratch_file) == 0) {
+ /* Only purge scratch files! */
+ control->entry[out++] = control->entry[in];
+ } else {
+ if (type == gs_permit_file_reading) {
+ /* Call gp_unlink_impl, as we don't want gp_unlink
+ * to go looking in the lists we are currently
+ * manipulating! */
+ gp_unlink_impl(core->memory, control->entry[in].path);
+ }
+ gs_free_object(core->memory, control->entry[in].path, "gs_lib_ctx(path)");
+ }
+ }
+ control->num = out;
+ if (out == 0) {
+ gs_free_object(core->memory, control->entry, "gs_lib_ctx(paths)");
+ control->entry = NULL;
+ control->max = 0;
+ }
}
- gs_free_object(core->memory, control->paths, "gs_lib_ctx(paths)");
- control->paths = NULL;
- control->num = 0;
- control->max = 0;
}
void
@@ -971,7 +1071,7 @@ gs_remove_fs(const gs_memory_t *mem,
return;
pfs = &core->fs;
- while (pfs)
+ while (*pfs)
{
gs_fs_list_t *fs = *pfs;
if (fs->fs.open_file == rfs->open_file &&
@@ -1073,7 +1173,7 @@ gs_lib_ctx_stash_sanitized_arg(gs_lib_ctx_t *ctx, const char *arg)
core = ctx->core;
if (elide)
len = p-arg;
- else
+ else
len = strlen(arg);
if (core->arg_max == core->argc) {
@@ -1179,3 +1279,71 @@ int gs_lib_ctx_get_args(gs_lib_ctx_t *ctx, const char * const **argv)
*argv = (const char * const *)core->argv;
return core->argc;
}
+
+int gs_lib_ctx_register_callout(gs_memory_t *mem, gs_callout_fn fn, void *arg)
+{
+ gs_lib_ctx_core_t *core;
+ gs_callout_list_t *entry;
+
+ if (mem == NULL || mem->gs_lib_ctx == NULL ||
+ mem->gs_lib_ctx->core == NULL || fn == NULL)
+ return 0;
+
+ core = mem->gs_lib_ctx->core;
+ entry = (gs_callout_list_t *)gs_alloc_bytes(core->memory,
+ sizeof(*entry),
+ "gs_callout_list_t");
+ if (entry == NULL)
+ return_error(gs_error_VMerror);
+ entry->next = core->callouts;
+ entry->callout = fn;
+ entry->handle = arg;
+ core->callouts = entry;
+
+ return 0;
+}
+
+void gs_lib_ctx_deregister_callout(gs_memory_t *mem, gs_callout_fn fn, void *arg)
+{
+ gs_lib_ctx_core_t *core;
+ gs_callout_list_t **entry;
+
+ if (mem == NULL || mem->gs_lib_ctx == NULL ||
+ mem->gs_lib_ctx->core == NULL || fn == NULL)
+ return;
+
+ core = mem->gs_lib_ctx->core;
+ entry = &core->callouts;
+ while (*entry) {
+ if ((*entry)->callout == fn && (*entry)->handle == arg) {
+ gs_callout_list_t *next = (*entry)->next;
+ gs_free_object(core->memory, *entry, "gs_callout_list_t");
+ *entry = next;
+ } else {
+ entry = &(*entry)->next;
+ }
+ }
+}
+
+int gs_lib_ctx_callout(gs_memory_t *mem, const char *dev_name,
+ int id, int size, void *data)
+{
+ gs_lib_ctx_core_t *core;
+ gs_callout_list_t *entry;
+
+ if (mem == NULL || mem->gs_lib_ctx == NULL || mem->gs_lib_ctx->core == NULL)
+ return -1;
+
+ core = mem->gs_lib_ctx->core;
+ entry = core->callouts;
+ while (entry) {
+ int code = entry->callout(mem->gs_lib_ctx->top_of_system,
+ entry->handle, dev_name, id, size, data);
+ if (code >= 0)
+ return code;
+ if (code != gs_error_unknownerror)
+ return code;
+ entry = entry->next;
+ }
+ return -1;
+}
diff --git a/base/gslibctx.h b/base/gslibctx.h
index 79bc9da8..9f814b5c 100644
--- a/base/gslibctx.h
+++ b/base/gslibctx.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -38,9 +38,14 @@ typedef struct gs_font_dir_s gs_font_dir;
typedef int (*client_check_file_permission_t) (gs_memory_t *mem, const char *fname, const int len, const char *permission);
typedef struct {
- unsigned int max;
- unsigned int num;
- char **paths;
+ char *path;
+ int flags;
+} gs_path_control_entry_t;
+
+typedef struct {
+ unsigned int max;
+ unsigned int num;
+ gs_path_control_entry_t *entry;
} gs_path_control_set_t;
typedef struct {
@@ -81,6 +86,14 @@ typedef struct gs_fs_list_s {
struct gs_fs_list_s *next;
} gs_fs_list_t;
+typedef int (*gs_callout_fn)(void *, void *, const char *, int, int, void *);
+
+typedef struct gs_callout_list_s {
+ struct gs_callout_list_s *next;
+ gs_callout_fn callout;
+ void *handle;
+} gs_callout_list_t;
+
typedef struct {
void *monitor;
int refs;
@@ -89,10 +102,12 @@ typedef struct {
FILE *fstdout;
FILE *fstderr;
gp_file *fstdout2; /* for redirecting %stdout and diagnostics */
- bool stdout_is_redirected; /* to stderr or fstdout2 */
- bool stdout_to_stderr;
- bool stdin_is_interactive;
- void *caller_handle; /* identifies caller of GS DLL/shared object */
+ int stdout_is_redirected; /* to stderr or fstdout2 */
+ int stdout_to_stderr;
+ int stdin_is_interactive;
+ void *default_caller_handle; /* identifies caller of GS DLL/shared object */
+ void *std_caller_handle;
+ void *poll_caller_handle;
void *custom_color_callback; /* pointer to color callback structure */
int (GSDLLCALL *stdin_fn)(void *caller_handle, char *buf, int len);
int (GSDLLCALL *stdout_fn)(void *caller_handle, const char *str, int len);
@@ -102,7 +117,7 @@ typedef struct {
/* True if we are emulating CPSI. Ideally this would be in the imager
* state, but this can't be done due to problems detecting changes in it
* for the clist based devices. */
- bool CPSI_mode;
+ int CPSI_mode;
int scanconverter;
int act_on_uel;
@@ -116,6 +131,8 @@ typedef struct {
* all builds. */
void *cal_ctx;
+ gs_callout_list_t *callouts;
+
/* Stashed args */
int arg_max;
int argc;
@@ -134,7 +151,7 @@ typedef struct gs_lib_ctx_s
*/
gs_gc_root_ptr name_table_root;
/* Define whether dictionaries expand automatically when full. */
- bool dict_auto_expand; /* ps dictionary: false level 1 true level 2 or 3 */
+ int dict_auto_expand; /* ps dictionary: false level 1 true level 2 or 3 */
/* A table of local copies of the IODevices */
struct gx_io_device_s **io_device_table;
int io_device_table_count;
@@ -143,7 +160,7 @@ typedef struct gs_lib_ctx_s
client_check_file_permission_t client_check_file_permission;
/* Define the default value of AccurateScreens that affects setscreen
and setcolorscreen. */
- bool screen_accurate_screens;
+ int screen_accurate_screens;
uint screen_min_screen_levels;
/* Accuracy vs. performance for ICC color */
uint icc_color_accuracy;
@@ -192,6 +209,12 @@ void *gs_lib_ctx_get_cms_context( const gs_memory_t *mem );
void gs_lib_ctx_set_cms_context( const gs_memory_t *mem, void *cms_context );
int gs_lib_ctx_get_act_on_uel( const gs_memory_t *mem );
+int gs_lib_ctx_register_callout(gs_memory_t *mem, gs_callout_fn, void *arg);
+void gs_lib_ctx_deregister_callout(gs_memory_t *mem, gs_callout_fn, void *arg);
+int gs_lib_ctx_callout(gs_memory_t *mem, const char *dev_name,
+ int id, int size, void *data);
+
+
#ifndef GS_THREADSAFE
/* HACK to get at non garbage collection memory pointer
*
@@ -230,9 +253,13 @@ void sjpxd_destroy(gs_memory_t *mem);
typedef enum {
gs_permit_file_reading = 0,
gs_permit_file_writing = 1,
- gs_permit_file_control = 2,
+ gs_permit_file_control = 2
} gs_path_control_t;
+enum {
+ gs_path_control_flag_is_scratch_file = 1
+};
+
int
gs_add_control_path(const gs_memory_t *mem, gs_path_control_t type, const char *path);
@@ -240,6 +267,12 @@ int
gs_add_control_path_len(const gs_memory_t *mem, gs_path_control_t type, const char *path, size_t path_len);
int
+gs_add_control_path_flags(const gs_memory_t *mem, gs_path_control_t type, const char *path, int flags);
+
+int
+gs_add_control_path_len_flags(const gs_memory_t *mem, gs_path_control_t type, const char *path, size_t path_len, int flags);
+
+int
gs_add_outputfile_control_path(gs_memory_t *mem, const char *fname);
int
@@ -254,10 +287,19 @@ gs_remove_control_path(const gs_memory_t *mem, gs_path_control_t type, const cha
int
gs_remove_control_path_len(const gs_memory_t *mem, gs_path_control_t type, const char *path, size_t path_len);
+int
+gs_remove_control_path_flags(const gs_memory_t *mem, gs_path_control_t type, const char *path, int flags);
+
+int
+gs_remove_control_path_len_flags(const gs_memory_t *mem, gs_path_control_t type, const char *path, size_t path_len, int flags);
+
void
gs_purge_control_paths(const gs_memory_t *mem, gs_path_control_t type);
void
+gs_purge_scratch_files(const gs_memory_t *mem);
+
+void
gs_activate_path_control(gs_memory_t *mem, int enable);
int
diff --git a/base/gsline.c b/base/gsline.c
index 80997be5..5107e5db 100644
--- a/base/gsline.c
+++ b/base/gsline.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsline.h b/base/gsline.h
index d76ff30a..b2fa402b 100644
--- a/base/gsline.h
+++ b/base/gsline.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gslparam.h b/base/gslparam.h
index 8cea1b93..c4245bf2 100644
--- a/base/gslparam.h
+++ b/base/gslparam.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsmalloc.c b/base/gsmalloc.c
index 971976a0..58047c9b 100644
--- a/base/gsmalloc.c
+++ b/base/gsmalloc.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -152,8 +152,8 @@ heap_available()
for (n = 0; n < max_malloc_probes; n++) {
if ((probes[n] = malloc(malloc_probe_size)) == 0)
break;
- if_debug2('a', "[a]heap_available probe[%d]=0x%lx\n",
- n, (ulong) probes[n]);
+ if_debug2('a', "[a]heap_available probe[%d]="PRI_INTPTR"\n",
+ n, (intptr_t) probes[n]);
avail += malloc_probe_size;
}
while (n)
@@ -221,8 +221,8 @@ gs_heap_alloc_bytes(gs_memory_t * mem, size_t size, client_name_t cname)
gs_alloc_fill(ptr, gs_alloc_fill_alloc, size);
#ifdef DEBUG
if (gs_debug_c('a') || msg != ok_msg)
- dmlprintf6(mem, "[a+]gs_malloc(%s)(%"PRIuSIZE") = 0x%lx: %s, used=%ld, max=%ld\n",
- client_name_string(cname), size, (ulong) ptr, msg, mmem->used, mmem->max_used);
+ dmlprintf6(mem, "[a+]gs_malloc(%s)(%"PRIuSIZE") = "PRI_INTPTR": %s, used=%"PRIuSIZE", max=%"PRIuSIZE"\n",
+ client_name_string(cname), size, (intptr_t)ptr, msg, mmem->used, mmem->max_used);
#endif
return ptr;
#undef set_msg
@@ -279,9 +279,18 @@ gs_heap_resize_object(gs_memory_t * mem, void *obj, size_t new_num_elements,
return obj;
if (mmem->monitor)
gx_monitor_enter(mmem->monitor); /* Exclusive access */
+ if (new_size > mmem->limit - sizeof(gs_malloc_block_t)) {
+ /* too large to allocate; also avoids overflow. */
+ if (mmem->monitor)
+ gx_monitor_leave(mmem->monitor); /* Done with exclusive access */
+ return 0;
+ }
new_ptr = (gs_malloc_block_t *) gs_realloc(ptr, old_size, new_size);
- if (new_ptr == 0)
+ if (new_ptr == 0) {
+ if (mmem->monitor)
+ gx_monitor_leave(mmem->monitor); /* Done with exclusive access */
return 0;
+ }
if (new_ptr->prev)
new_ptr->prev->next = new_ptr;
else
@@ -316,17 +325,17 @@ gs_heap_free_object(gs_memory_t * mem, void *ptr, client_name_t cname)
gs_memory_type_ptr_t pstype;
struct_proc_finalize((*finalize));
- if_debug3m('a', mem, "[a-]gs_free(%s) 0x%lx(%"PRIuSIZE")\n",
- client_name_string(cname), (ulong) ptr,
+ if_debug3m('a', mem, "[a-]gs_free(%s) "PRI_INTPTR"(%"PRIuSIZE")\n",
+ client_name_string(cname), (intptr_t)ptr,
(ptr == 0 ? 0 : ((gs_malloc_block_t *) ptr)[-1].size));
if (ptr == 0)
return;
pstype = ((gs_malloc_block_t *) ptr)[-1].type;
finalize = pstype->finalize;
if (finalize != 0) {
- if_debug3m('u', mem, "[u]finalizing %s 0x%lx (%s)\n",
+ if_debug3m('u', mem, "[u]finalizing %s "PRI_INTPTR" (%s)\n",
struct_type_name_string(pstype),
- (ulong) ptr, client_name_string(cname));
+ (intptr_t)ptr, client_name_string(cname));
(*finalize) (mem, ptr);
}
if (mmem->monitor)
@@ -394,8 +403,8 @@ gs_heap_free_object(gs_memory_t * mem, void *ptr, client_name_t cname)
}
if (mmem->monitor)
gx_monitor_leave(mmem->monitor); /* Done with exclusive access */
- lprintf2("%s: free 0x%lx not found!\n",
- client_name_string(cname), (ulong) ptr);
+ lprintf2("%s: free "PRI_INTPTR" not found!\n",
+ client_name_string(cname), (intptr_t) ptr);
free((char *)((gs_malloc_block_t *) ptr - 1));
}
#endif
@@ -410,8 +419,8 @@ gs_heap_resize_string(gs_memory_t * mem, byte * data, size_t old_num, size_t new
client_name_t cname)
{
if (gs_heap_object_type(mem, data) != &st_bytes)
- lprintf2("%s: resizing non-string 0x%lx!\n",
- client_name_string(cname), (ulong) data);
+ lprintf2("%s: resizing non-string "PRI_INTPTR"!\n",
+ client_name_string(cname), (intptr_t)data);
return gs_heap_resize_object(mem, data, new_num, cname);
}
static void
@@ -501,8 +510,8 @@ gs_heap_free_all(gs_memory_t * mem, uint free_mask, client_name_t cname)
for (; bp != 0; bp = np) {
np = bp->next;
- if_debug3m('a', mem, "[a]gs_heap_free_all(%s) 0x%lx(%"PRIuSIZE")\n",
- client_name_string(bp->cname), (ulong) (bp + 1),
+ if_debug3m('a', mem, "[a]gs_heap_free_all(%s) "PRI_INTPTR"(%"PRIuSIZE")\n",
+ client_name_string(bp->cname), (intptr_t)(bp + 1),
bp->size);
gs_alloc_fill(bp + 1, gs_alloc_fill_free, bp->size);
free(bp);
diff --git a/base/gsmalloc.h b/base/gsmalloc.h
index 1f2f5b2b..44374c03 100644
--- a/base/gsmalloc.h
+++ b/base/gsmalloc.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsmatrix.c b/base/gsmatrix.c
index 6403d0e9..6e70fa6e 100644
--- a/base/gsmatrix.c
+++ b/base/gsmatrix.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsmatrix.h b/base/gsmatrix.h
index 30088211..ba365da1 100644
--- a/base/gsmatrix.h
+++ b/base/gsmatrix.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsmchunk.c b/base/gsmchunk.c
index f890de0e..33c45cd4 100644
--- a/base/gsmchunk.c
+++ b/base/gsmchunk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -219,7 +219,7 @@ gs_memory_chunk_wrap(gs_memory_t **wrapped, /* chunk allocator init */
cmem->defer_free_list = NULL;
#ifdef DEBUG_CHUNK_PRINT
- dmlprintf1(non_gc_target, "New chunk %p\n", cmem);
+ dmlprintf1(non_gc_target, "New chunk "PRI_INTPTR"\n", (intptr_t)cmem);
#endif
/* Init the chunk management values */
@@ -334,7 +334,7 @@ static int dump_free_loc(gs_memory_t *mem, chunk_free_node_t *node, int depth, v
else
dmlprintf(mem, "\\");
}
- dmlprintf3(mem, "%p+%x->%p\n", node, node->size, ((byte *)node)+node->size);
+ dmlprintf3(mem, PRI_INTPTR"+%x->"PRI_INTPTR"\n", (intptr_t)node, node->size, (intptr_t)((byte *)node)+node->size);
#endif
CHUNK_ASSERT(mem, *limit < (void *)node);
*limit = ((byte *)node)+node->size;
@@ -361,7 +361,7 @@ static int dump_free_size(gs_memory_t *mem, chunk_free_node_t *node, int depth,
else
dmlprintf(mem, "\\");
}
- dmlprintf3(mem, "%p+%x->%p\n", node, node->size, ((byte *)node)+node->size);
+ dmlprintf3(mem, PRI_INTPTR"+%x->"PRI_INTPTR"\n", (intptr_t)node, node->size, (intptr_t)((byte *)node)+node->size);
#endif
CHUNK_ASSERT(mem, *size < node->size || (*size == node->size && *addr < (void *)node));
*size = node->size;
@@ -380,13 +380,13 @@ gs_memory_chunk_dump_memory(const gs_memory_t *mem)
uint total = 0;
#ifdef DEBUG_CHUNK_PRINT
- dmlprintf1(cmem->target, "Chunk %p:\n", cmem);
+ dmlprintf1(cmem->target, "Chunk "PRI_INTPTR":\n", (intptr_t)cmem);
#ifdef DEBUG_CHUNK_PRINT_SLABS
{
chunk_slab_t *slab;
dmlprintf(cmem->target, "Slabs\n");
for (slab = cmem->slabs; slab != NULL; slab = slab->next)
- dmlprintf1(cmem->target, " %p\n", slab);
+ dmlprintf1(cmem->target, " "PRI_INTPTR"\n", (intptr_t)slab);
}
#endif
dmlprintf(cmem->target, "Locs:\n");
@@ -778,9 +778,11 @@ chunk_obj_alloc(gs_memory_t *mem, uint size, gs_memory_type_ptr_t type, client_n
#ifdef DEBUG_CHUNK_PRINT
#ifdef DEBUG_SEQ
- dmlprintf4(cmem->target, "Event %x: malloc(chunk=%p, size=%x, cname=%s)\n", cmem->sequence, cmem, newsize, cname);
+ dmlprintf4(cmem->target, "Event %x: malloc(chunk="PRI_INTPTR", size=%x, cname=%s)\n",
+ cmem->sequence, (intptr_t)cmem, newsize, cname);
#else
- dmlprintf3(cmem->target, "malloc(chunk=%p, size=%x, cname=%s)\n", cmem, newsize, cname);
+ dmlprintf3(cmem->target, "malloc(chunk="PRI_INTPTR", size=%x, cname=%s)\n",
+ (intptr_t)cmem, newsize, cname);
#endif
#endif
@@ -949,13 +951,15 @@ chunk_obj_alloc(gs_memory_t *mem, uint size, gs_memory_type_ptr_t type, client_n
obj->sequence = cmem->sequence;
#endif
if (gs_debug_c('A'))
- dmlprintf3(mem, "[a+]chunk_obj_alloc (%s)(%u) = 0x%lx: OK.\n",
- client_name_string(cname), size, (ulong) obj);
+ dmlprintf3(mem, "[a+]chunk_obj_alloc (%s)(%u) = "PRI_INTPTR": OK.\n",
+ client_name_string(cname), size, (intptr_t) obj);
#ifdef DEBUG_CHUNK_PRINT
#ifdef DEBUG_SEQ
- dmlprintf5(cmem->target, "Event %x: malloced(chunk=%p, addr=%p, size=%x, cname=%s)\n", obj->sequence, cmem, obj, obj->size, cname);
+ dmlprintf5(cmem->target, "Event %x: malloced(chunk="PRI_INTPTR", addr="PRI_INTPTR", size=%x, cname=%s)\n",
+ obj->sequence, (intptr_t)cmem, (intptr_t)obj, obj->size, cname);
#else
- dmlprintf4(cmem->target, "malloced(chunk=%p, addr=%p, size=%x, cname=%s)\n", cmem, obj, obj->size, cname);
+ dmlprintf4(cmem->target, "malloced(chunk="PRI_INTPTR", addr="PRI_INTPTR", size=%x, cname=%s)\n",
+ (intptr_t)cmem, (intptr_t)obj, obj->size, cname);
#endif
#endif
#ifdef DEBUG_CHUNK
@@ -1076,9 +1080,11 @@ chunk_free_object(gs_memory_t *mem, void *ptr, client_name_t cname)
#ifdef DEBUG_CHUNK_PRINT
#ifdef DEBUG_SEQ
cmem->sequence++;
- dmlprintf6(cmem->target, "Event %x: free(chunk=%p, addr=%p, size=%x, num=%x, cname=%s)\n", cmem->sequence, cmem, obj, obj->size, obj->sequence, cname);
+ dmlprintf6(cmem->target, "Event %x: free(chunk="PRI_INTPTR", addr="PRI_INTPTR", size=%x, num=%x, cname=%s)\n",
+ cmem->sequence, (intptr_t)cmem, (intptr_t)obj, obj->size, obj->sequence, cname);
#else
- dmlprintf4(cmem->target, "free(chunk=%p, addr=%p, size=%x, cname=%s)\n", cmem, obj, obj->size, cname);
+ dmlprintf4(cmem->target, "free(chunk="PRI_INTPTR", addr="PRI_INTPTR", size=%x, cname=%s)\n",
+ (intptr_t)cmem, (intptr_t)obj, obj->size, cname);
#endif
#endif
@@ -1089,8 +1095,8 @@ chunk_free_object(gs_memory_t *mem, void *ptr, client_name_t cname)
}
/* finalize may change the head_**_chunk doing free of stuff */
- if_debug3m('A', cmem->target, "[a-]chunk_free_object(%s) 0x%lx(%u)\n",
- client_name_string(cname), (ulong) ptr, obj->size);
+ if_debug3m('A', cmem->target, "[a-]chunk_free_object(%s) "PRI_INTPTR"(%u)\n",
+ client_name_string(cname), (intptr_t)ptr, obj->size);
if (SINGLE_OBJECT_CHUNK(obj->size - obj->padding)) {
gs_free_object(cmem->target, obj, "chunk_free_object(single object)");
diff --git a/base/gsmchunk.h b/base/gsmchunk.h
index 8a200422..50200e7a 100644
--- a/base/gsmchunk.h
+++ b/base/gsmchunk.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsmd5.c b/base/gsmd5.c
index ecd10ba3..db8c6ed8 100644
--- a/base/gsmd5.c
+++ b/base/gsmd5.c
@@ -1,5 +1,5 @@
/*
- Copyright (C) 1999-2018 Artifex Software, Inc.
+ Copyright (C) 1999-2020 Artifex Software, Inc.
All rights reserved.
This software is provided 'as-is', without any express or implied
diff --git a/base/gsmd5.h b/base/gsmd5.h
index b159afb8..61305928 100644
--- a/base/gsmd5.h
+++ b/base/gsmd5.h
@@ -1,5 +1,5 @@
/*
- Copyright (C) 1999-2018 Artifex Software, Inc.
+ Copyright (C) 1999-2020 Artifex Software, Inc.
All rights reserved.
This software is provided 'as-is', without any express or implied
diff --git a/base/gsmdebug.h b/base/gsmdebug.h
index 2b332c5a..5c9c8762 100644
--- a/base/gsmdebug.h
+++ b/base/gsmdebug.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsmemory.c b/base/gsmemory.c
index d84474b9..99a801f5 100644
--- a/base/gsmemory.c
+++ b/base/gsmemory.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -16,6 +16,7 @@
/* Generic allocator support */
#include "memory_.h"
+#include "stdint_.h"
#include "gdebug.h"
#include "gstypes.h"
#include "gsmemory.h"
@@ -106,8 +107,8 @@ gs_resize_struct_array(gs_memory_t *mem, void *obj, size_t num_elements,
return gs_alloc_struct_array(mem, num_elements, void, pstype, cname);
#ifdef DEBUG
if (gs_object_type(mem, obj) != pstype) {
- lprintf3("resize_struct_array 0x%lx, type was 0x%lx, expected 0x%lx!\n",
- (ulong)obj, (ulong)gs_object_type(mem, obj), (ulong)pstype);
+ lprintf3("resize_struct_array "PRI_INTPTR", type was "PRI_INTPTR", expected "PRI_INTPTR"!\n",
+ (intptr_t)obj, (intptr_t)gs_object_type(mem, obj), (intptr_t)pstype);
return 0;
}
#endif
@@ -241,7 +242,7 @@ rc_object_type_name(const void *vp, const rc_header *prc)
dist = (const char *)&dist - (const char *)vp;
if (dist < 10000 && dist > -10000)
return "(on stack)";
- if ((ulong)pstype < 0x10000 || (long)pstype < 0)
+ if ((uintptr_t)pstype < 0x10000 || (uintptr_t)pstype < 0)
return "(anomalous)";
}
return client_name_string(gs_struct_type_name(pstype));
@@ -251,29 +252,29 @@ rc_object_type_name(const void *vp, const rc_header *prc)
void
rc_trace_init_free(const void *vp, const rc_header *prc)
{
- dmprintf3(prc->memory, "[^]%s 0x%lx init = %ld\n",
- rc_object_type_name(vp, prc), (ulong)vp, (long)prc->ref_count);
+ dmprintf3(prc->memory, "[^]%s "PRI_INTPTR" init = %ld\n",
+ rc_object_type_name(vp, prc), (intptr_t)vp, (long)prc->ref_count);
}
void
rc_trace_free_struct(const void *vp, const rc_header *prc, client_name_t cname)
{
- dmprintf3(prc->memory, "[^]%s 0x%lx => free (%s)\n",
+ dmprintf3(prc->memory, "[^]%s "PRI_INTPTR" => free (%s)\n",
rc_object_type_name(vp, prc),
- (ulong)vp, client_name_string(cname));
+ (intptr_t)vp, client_name_string(cname));
}
void
rc_trace_increment(const void *vp, const rc_header *prc)
{
- dmprintf3(prc->memory, "[^]%s 0x%lx ++ => %ld\n",
+ dmprintf3(prc->memory, "[^]%s "PRI_INTPTR" ++ => %ld\n",
rc_object_type_name(vp, prc),
- (ulong)vp, (long)prc->ref_count);
+ (intptr_t)vp, (long)prc->ref_count);
}
void
rc_trace_adjust(const void *vp, const rc_header *prc, int delta, const char *cname)
{
- dmprintf5(prc->memory, "[^]%s 0x%lx %+d => %ld (%s)\n",
+ dmprintf5(prc->memory, "[^]%s "PRI_INTPTR" %+d => %ld (%s)\n",
rc_object_type_name(vp, prc),
- (ulong)vp, delta, (long)(prc->ref_count + delta), cname);
+ (intptr_t)vp, delta, (long)(prc->ref_count + delta), cname);
}
#endif /* DEBUG */
@@ -297,8 +298,8 @@ ENUM_PTRS_BEGIN_PROC(basic_enum_ptrs)
/* with number of elements 0 and allocation not passing 'element' */
if (size == 0) {
#ifdef DEBUG
- dmprintf2(mem, " basic_enum_ptrs: Attempt to enum 0 size structure at 0x%lx, type: %s\n",
- (ulong)vptr, pstype->sname);
+ dmprintf2(mem, " basic_enum_ptrs: Attempt to enum 0 size structure at "PRI_INTPTR", type: %s\n",
+ (intptr_t)vptr, pstype->sname);
#endif
return 0;
}
@@ -309,8 +310,8 @@ ENUM_PTRS_BEGIN_PROC(basic_enum_ptrs)
#ifdef DEBUG
/* some extra checking to make sure we aren't out of bounds */
if (ppe->offset > size - sizeof(void *)) {
- dmprintf4(mem, " basic_enum_ptrs: Attempt to enum ptr with offset=%d beyond size=%d: structure at 0x%lx, type: %s\n",
- ppe->offset, size, (ulong)vptr, pstype->sname);
+ dmprintf4(mem, " basic_enum_ptrs: Attempt to enum ptr with offset=%d beyond size=%d: structure at "PRI_INTPTR", type: %s\n",
+ ppe->offset, size, (intptr_t)vptr, pstype->sname);
return 0;
}
#endif
diff --git a/base/gsmemory.h b/base/gsmemory.h
index a5d3ad3d..375c2fb7 100644
--- a/base/gsmemory.h
+++ b/base/gsmemory.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsmemraw.h b/base/gsmemraw.h
index 0ce847e5..7782ca07 100644
--- a/base/gsmemraw.h
+++ b/base/gsmemraw.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsmemret.c b/base/gsmemret.c
index 667a0f68..505f1f40 100644
--- a/base/gsmemret.c
+++ b/base/gsmemret.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsmemret.h b/base/gsmemret.h
index e7acad08..c689bcfb 100644
--- a/base/gsmemret.h
+++ b/base/gsmemret.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsmisc.c b/base/gsmisc.c
index 35e36220..f0604ef3 100644
--- a/base/gsmisc.c
+++ b/base/gsmisc.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -63,7 +63,7 @@ int outprintf(const gs_memory_t *mem, const char *fmt, ...)
va_start(args, fmt);
count = vsnprintf(buf, sizeof(buf), fmt, args);
- if (count >= sizeof(buf) || count < 0) { /* C99 || MSVC */
+ if (count < 0 || count >= sizeof(buf)) { /* MSVC || C99 */
outwrite(mem, buf, sizeof(buf) - 1);
outwrite(mem, msg_truncated, sizeof(msg_truncated) - 1);
} else {
@@ -82,7 +82,7 @@ int errprintf_nomem(const char *fmt, ...)
va_start(args, fmt);
count = vsnprintf(buf, sizeof(buf), fmt, args);
- if (count >= sizeof(buf) || count < 0) { /* C99 || MSVC */
+ if (count < 0 || count >= sizeof(buf)) { /* MSVC || C99*/
errwrite_nomem(buf, sizeof(buf) - 1);
errwrite_nomem(msg_truncated, sizeof(msg_truncated) - 1);
} else {
@@ -101,7 +101,7 @@ int errprintf(const gs_memory_t *mem, const char *fmt, ...)
va_start(args, fmt);
count = vsnprintf(buf, sizeof(buf), fmt, args);
- if (count >= sizeof(buf) || count < 0) { /* C99 || MSVC */
+ if (count < 0 || count >= sizeof(buf)) { /* MSVC || C99 */
errwrite(mem, buf, sizeof(buf) - 1);
errwrite(mem, msg_truncated, sizeof(msg_truncated) - 1);
} else {
@@ -222,15 +222,22 @@ dmprintf_file_only(const gs_memory_t *mem,const char *file)
dpfm(mem, dprintf_file_only_format, dprintf_file_tail(file));
}
#endif
+
+/* This calculation is also performed for pdfwrite to manufacture the Producer string
+ * in PDF output. The code is in ghostpdl/devices/vector/gdevpdfu.c pdf_store_default_Producer().
+ * Should we change this calculation both sets of code need to be updated.
+ */
void
printf_program_ident(const gs_memory_t *mem, const char *program_name, long revision_number)
{
if (program_name)
outprintf(mem, (revision_number ? "%s " : "%s"), program_name);
if (revision_number) {
- int fpart = revision_number % 100;
+ int major = (int)(revision_number / 1000);
+ int minor = (int)(revision_number - (major * 1000)) / 10;
+ int patch = revision_number % 10;
- outprintf(mem, "%d.%02d", (int)(revision_number / 100), fpart);
+ outprintf(mem, "%d.%02d.%d", major, minor, patch);
}
}
void
@@ -241,9 +248,11 @@ emprintf_program_ident(const gs_memory_t *mem,
if (program_name) {
epfm(mem, (revision_number ? "%s " : "%s"), program_name);
if (revision_number) {
- int fpart = revision_number % 100;
+ int major = (int)(revision_number / 1000);
+ int minor = (int)(revision_number - (major * 1000)) / 10;
+ int patch = revision_number % 10;
- epfm(mem, "%d.%02d", (int)(revision_number / 100), fpart);
+ epfm(mem, "%d.%02d.%d", major, minor, patch);
}
epfm(mem, ": ");
}
@@ -328,7 +337,7 @@ int gs_throw_imp(const char *func, const char *file, int line, int op, int code,
if (op == 3)
errprintf_nomem(" %s:%d: %s(): %s\n", file, line, func, msg);
- if (count >= sizeof(msg) || count < 0) { /* C99 || MSVC */
+ if (count < 0 || count >= sizeof(msg)) { /* MSVC || C99 */
errwrite_nomem(msg_truncated, sizeof(msg_truncated) - 1);
}
return code;
@@ -555,7 +564,7 @@ debug_dump_bytes(const gs_memory_t *mem, const byte * from, const byte * to, con
while (p != to) {
const byte *q = min(p + 16, to);
- dmprintf1(mem, "0x%lx:", (ulong) p);
+ dmprintf1(mem, PRI_INTPTR, (intptr_t)p);
while (p != q)
dmprintf1(mem, " %02x", *p++);
dmputc(mem, '\n');
@@ -609,7 +618,7 @@ debug_print_string_hex(const gs_memory_t *mem, const byte * chrs, uint len)
BEGIN\
ulong *fp_ = (ulong *)&first_arg - 2;\
for (; fp_ && (fp_[1] & 0xff000000) == 0x08000000; fp_ = (ulong *)*fp_)\
- dprintf2(" fp=0x%lx ip=0x%lx\n", (ulong)fp_, fp_[1]);\
+ dprintf2(" fp="PRI_INTPTR" ip=0x%lx\n", (intptr_t)fp_, fp_[1]);\
END
#endif
diff --git a/base/gsnamecl.c b/base/gsnamecl.c
index 6c8df106..6de40ac1 100644
--- a/base/gsnamecl.c
+++ b/base/gsnamecl.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsnamecl.h b/base/gsnamecl.h
index 88343c06..d9acfb7a 100644
--- a/base/gsnamecl.h
+++ b/base/gsnamecl.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsncdummy.c b/base/gsncdummy.c
index 58654b94..352f9379 100644
--- a/base/gsncdummy.c
+++ b/base/gsncdummy.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -252,7 +252,7 @@ client_pantone_install_Separation(client_custom_color_params_t * pparam,
/*
* Get the character string and length for the component name.
*/
- pcs->params.separation.get_colorname_string(dev->memory, name,
+ pcs->params.separation.get_colorname_string(pgs, name,
&pname, &name_size);
/*
* Compare the colorant name to those in our PANTONE color list.
@@ -323,7 +323,7 @@ client_pantone_install_DeviceN(client_custom_color_params_t * pparam,
/*
* Get the character string and length for the component name.
*/
- pcs->params.device_n.get_colorname_string(dev->memory, names[i],
+ pcs->params.device_n.get_colorname_string(pgs, names[i],
&pname, &name_size);
/*
* Postscript does not include /None as a color component but it is
diff --git a/base/gsncdummy.h b/base/gsncdummy.h
index f6912b29..2b9acd59 100644
--- a/base/gsncdummy.h
+++ b/base/gsncdummy.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsnogc.c b/base/gsnogc.c
index d36588d3..717179ee 100644
--- a/base/gsnogc.c
+++ b/base/gsnogc.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsnogc.h b/base/gsnogc.h
index 5f468b01..7c61bafb 100644
--- a/base/gsnogc.h
+++ b/base/gsnogc.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsnotify.c b/base/gsnotify.c
index b54ccae6..f4544073 100644
--- a/base/gsnotify.c
+++ b/base/gsnotify.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsnotify.h b/base/gsnotify.h
index 548dfcd5..608a2c20 100644
--- a/base/gsnotify.h
+++ b/base/gsnotify.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsovrc.c b/base/gsovrc.c
index 3a60a865..38ad867c 100644
--- a/base/gsovrc.c
+++ b/base/gsovrc.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsovrc.h b/base/gsovrc.h
index ccef5f5c..39f0e890 100644
--- a/base/gsovrc.h
+++ b/base/gsovrc.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gspaint.c b/base/gspaint.c
index 13836061..a4dc31d8 100644
--- a/base/gspaint.c
+++ b/base/gspaint.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -497,7 +497,7 @@ do_stroke(gs_gstate * pgs)
}
gs_setlinewidth(pgs, new_width);
scale_dash_pattern(pgs, scale);
- gs_setflat(pgs, orig_flatness * scale);
+ gs_setflat(pgs, (double)(orig_flatness * scale));
/*
* The alpha-buffer device requires that we fill the
* entire path as a single unit.
@@ -607,8 +607,23 @@ static int do_fill_stroke(gs_gstate *pgs, int rule, int *restart)
/* It is either our first time, or the stroke was a pattern and
we are coming back from the error if restart < 1 (0 is first
time, 1 stroke is set, and we only need to finish out fill */
- if (pgs->is_fill_color)
- gs_swapcolors_quick(pgs);
+ if (pgs->is_fill_color) {
+ /* if the fill_color is a pattern, make sure the tile is locked so that */
+ /* it does not get evicted as the stroke color is loaded. */
+ if (gx_dc_is_pattern1_color(gs_currentdevicecolor_inline(pgs))) {
+ gs_id id;
+
+ if(gs_currentdevicecolor_inline(pgs)->colors.pattern.p_tile != NULL) {
+ id = gs_currentdevicecolor_inline(pgs)->colors.pattern.p_tile->id;
+ code = gx_pattern_cache_entry_set_lock(pgs, id, true);
+ } else {
+ code = 0;
+ }
+ if (code < 0)
+ return code; /* lock failed -- tile not in cache? */
+ }
+ gs_swapcolors_quick(pgs); /* switch to the stroke color */
+ }
if (*restart < 1) {
@@ -642,9 +657,14 @@ static int do_fill_stroke(gs_gstate *pgs, int rule, int *restart)
return code;
/* If this was a pattern color, make sure and lock it in the pattern_cache */
if (gx_dc_is_pattern1_color(gs_currentdevicecolor_inline(pgs))) {
- gs_id id = gs_currentdevicecolor_inline(pgs)->colors.pattern.p_tile->id;
+ gs_id id;
- code = gx_pattern_cache_entry_set_lock(pgs, id, true);
+ if(gs_currentdevicecolor_inline(pgs)->colors.pattern.p_tile != NULL) {
+ id = gs_currentdevicecolor_inline(pgs)->colors.pattern.p_tile->id;
+ code = gx_pattern_cache_entry_set_lock(pgs, id, true);
+ } else {
+ code = 0;
+ }
if (code < 0)
return code; /* lock failed -- tile not in cache? */
}
@@ -730,7 +750,7 @@ static int do_fill_stroke(gs_gstate *pgs, int rule, int *restart)
goto out;
gs_setlinewidth(pgs, new_width);
scale_dash_pattern(pgs, scale);
- gs_setflat(pgs, orig_flatness * scale);
+ gs_setflat(pgs, (double)(orig_flatness * scale));
pgs->log_op = orig_lop;
} else
acode = 0;
@@ -742,13 +762,33 @@ static int do_fill_stroke(gs_gstate *pgs, int rule, int *restart)
gs_setflat(pgs, orig_flatness);
acode = alpha_buffer_release(pgs, code >= 0);
}
+ if (pgs->is_fill_color) {
+ /* The color _should_ be the fill color, so make sure it is unlocked */
+ if (gx_dc_is_pattern1_color(gs_currentdevicecolor_inline(pgs))) {
+ gs_id id;
+
+ if(gs_currentdevicecolor_inline(pgs)->colors.pattern.p_tile != NULL) {
+ id = gs_currentdevicecolor_inline(pgs)->colors.pattern.p_tile->id;
+ code = gx_pattern_cache_entry_set_lock(pgs, id, false);
+ } else {
+ code = 0;
+ }
+ if (code < 0)
+ return code; /* lock failed -- tile not in cache? */
+ }
+ }
out:
if (gx_dc_is_pattern1_color(gs_altdevicecolor_inline(pgs))) {
- gs_id id = gs_altdevicecolor_inline(pgs)->colors.pattern.p_tile->id;
-
- rcode = gx_pattern_cache_entry_set_lock(pgs, id, false);
- if (rcode < 0)
- return rcode; /* unlock failed -- shouldn't be possible */
+ gs_id id;
+
+ if (gs_altdevicecolor_inline(pgs)->colors.pattern.p_tile != NULL) {
+ id = gs_altdevicecolor_inline(pgs)->colors.pattern.p_tile->id;
+ rcode = gx_pattern_cache_entry_set_lock(pgs, id, false);
+ if (rcode < 0)
+ return rcode; /* unlock failed -- shouldn't be possible */
+ } else {
+ code = 0;
+ }
}
if (code >= 0 && acode < 0)
code = acode;
diff --git a/base/gspaint.h b/base/gspaint.h
index c95b6b48..214c6e52 100644
--- a/base/gspaint.h
+++ b/base/gspaint.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsparam.c b/base/gsparam.c
index 80cb0b2a..a5741565 100644
--- a/base/gsparam.c
+++ b/base/gsparam.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -178,6 +178,20 @@ param_coerce_typed(gs_param_typed_value * pvalue, gs_param_type req_type,
switch (pvalue->type /* actual type */ ) {
case gs_param_type_int:
switch (req_type) {
+ case gs_param_type_i64:
+ {
+ int64_t i64 = (int64_t)pvalue->value.i;
+ pvalue->value.i64 = i64;
+ goto ok;
+ }
+ case gs_param_type_size_t:
+ {
+ size_t z = (size_t)pvalue->value.i;
+ if (pvalue->value.i < 0)
+ return gs_error_rangecheck;
+ pvalue->value.z = z;
+ goto ok;
+ }
case gs_param_type_long:
{
long l = (long)pvalue->value.i;
@@ -196,14 +210,31 @@ param_coerce_typed(gs_param_typed_value * pvalue, gs_param_type req_type,
break;
case gs_param_type_long:
switch (req_type) {
+ case gs_param_type_i64:
+ {
+ int64_t i64 = (int64_t)pvalue->value.l;
+ pvalue->value.i64 = i64;
+ goto ok;
+ }
+ case gs_param_type_size_t:
+ {
+ size_t z = (size_t)pvalue->value.l;
+ if (pvalue->value.l < 0
+#if ARCH_SIZEOF_SIZE_T < ARCH_SIZEOF_LONG
+ || pvalue->value.l != (long)z
+#endif
+ )
+ return_error(gs_error_rangecheck);
+ pvalue->value.z = z;
+ goto ok;
+ }
case gs_param_type_int:
{
- int int1;
+ int int1 = (int)pvalue->value.l;
#if ARCH_SIZEOF_INT < ARCH_SIZEOF_LONG
- if (pvalue->value.l != (int)pvalue->value.l)
+ if (pvalue->value.l != (long)int1)
return_error(gs_error_rangecheck);
#endif
- int1 = (int)pvalue->value.l;
pvalue->value.i = int1;
goto ok;
}
@@ -217,6 +248,95 @@ param_coerce_typed(gs_param_typed_value * pvalue, gs_param_type req_type,
break;
}
break;
+ case gs_param_type_i64:
+ switch (req_type) {
+ case gs_param_type_size_t:
+ {
+ size_t z = (size_t)pvalue->value.i64;
+ if (pvalue->value.i64 < 0
+#if ARCH_SIZEOF_SIZE_T < 8 /* sizeof(int64_t) */
+ || pvalue->value.i64 != (int64_t)z
+#endif
+ )
+ return_error(gs_error_rangecheck);
+ pvalue->value.z = z;
+ goto ok;
+ }
+ case gs_param_type_long:
+ {
+ long l = (long)pvalue->value.i64;
+#if ARCH_SIZEOF_LONG < 8 /* sizeof(int64_t) */
+ if (pvalue->value.i64 != (int64_t)l)
+ return_error(gs_error_rangecheck);
+#endif
+ pvalue->value.l = l;
+ goto ok;
+ }
+ case gs_param_type_int:
+ {
+ int int1 = (int)pvalue->value.l;
+#if ARCH_SIZEOF_INT < 8 /* sizeof(int64_t) */
+ if (pvalue->value.i64 != (int)int1)
+ return_error(gs_error_rangecheck);
+#endif
+ pvalue->value.i = int1;
+ goto ok;
+ }
+ case gs_param_type_float:
+ {
+ float fl = (float)pvalue->value.i64;
+ pvalue->value.f = fl;
+ goto ok;
+ }
+ default:
+ break;
+ }
+ break;
+ case gs_param_type_size_t:
+ switch (req_type) {
+ case gs_param_type_i64:
+ {
+ int64_t i64 = (int64_t)pvalue->value.z;
+ if (i64 < 0
+#if 8 /* sizeof(int64_t) */ < ARCH_SIZEOF_SIZE_T
+ /* Unlikely, but let's plan for the day when we need 128bit addressing :) */
+ || pvalue->value.z != (size_t)i64
+#endif
+ )
+ return_error(gs_error_rangecheck);
+ pvalue->value.i64 = i64;
+ goto ok;
+ }
+ case gs_param_type_long:
+ {
+ long l = (long)pvalue->value.i64;
+#if ARCH_SIZEOF_LONG < 8 /* sizeof(int64_t) */
+ if (pvalue->value.i64 != (int64_t)l)
+ return_error(gs_error_rangecheck);
+#endif
+ pvalue->value.l = l;
+ goto ok;
+ }
+ case gs_param_type_int:
+ {
+ int int1 = (int)pvalue->value.l;
+#if ARCH_SIZEOF_INT < 8 /* sizeof(int64_t) */
+ if (pvalue->value.i64 != (int)int1)
+ return_error(gs_error_rangecheck);
+#endif
+ pvalue->value.i = int1;
+ goto ok;
+ }
+ case gs_param_type_float:
+ {
+ float fl = (float)pvalue->value.i64;
+ pvalue->value.f = fl;
+ goto ok;
+ }
+ default:
+ break;
+ }
+ break;
case gs_param_type_string:
if (req_type == gs_param_type_name)
goto ok;
@@ -321,6 +441,16 @@ param_read_long(gs_param_list * plist, gs_param_name pkey, long *pvalue)
RETURN_READ_TYPED(l, gs_param_type_long);
}
int
+param_read_i64(gs_param_list * plist, gs_param_name pkey, int64_t *pvalue)
+{
+ RETURN_READ_TYPED(i64, gs_param_type_i64);
+}
+int
+param_read_size_t(gs_param_list * plist, gs_param_name pkey, size_t *pvalue)
+{
+ RETURN_READ_TYPED(z, gs_param_type_size_t);
+}
+int
param_read_float(gs_param_list * plist, gs_param_name pkey, float *pvalue)
{
RETURN_READ_TYPED(f, gs_param_type_float);
@@ -397,6 +527,16 @@ param_write_long(gs_param_list * plist, gs_param_name pkey, const long *pvalue)
RETURN_WRITE_TYPED(l, gs_param_type_long);
}
int
+param_write_i64(gs_param_list * plist, gs_param_name pkey, const int64_t *pvalue)
+{
+ RETURN_WRITE_TYPED(i64, gs_param_type_i64);
+}
+int
+param_write_size_t(gs_param_list * plist, gs_param_name pkey, const size_t *pvalue)
+{
+ RETURN_WRITE_TYPED(z, gs_param_type_size_t);
+}
+int
param_write_float(gs_param_list * plist, gs_param_name pkey,
const float *pvalue)
{
diff --git a/base/gsparam.h b/base/gsparam.h
index 0f474c26..3b0aaa21 100644
--- a/base/gsparam.h
+++ b/base/gsparam.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -20,6 +20,7 @@
# define gsparam_INCLUDED
#include "gsstype.h"
+#include "stdint_.h"
/*
* Several interfaces use parameter dictionaries to communicate sets of
@@ -47,7 +48,7 @@ typedef const char *gs_param_name;
typedef enum {
/* Scalar */
gs_param_type_null, gs_param_type_bool, gs_param_type_int,
- gs_param_type_long, gs_param_type_float,
+ gs_param_type_long, gs_param_type_size_t, gs_param_type_i64, gs_param_type_float,
/* Homogenous collection */
gs_param_type_string, gs_param_type_name,
gs_param_type_int_array, gs_param_type_float_array,
@@ -98,8 +99,8 @@ typedef gs_param_collection gs_param_array;
* Define the sizes of the various parameter value types, indexed by type.
*/
#define GS_PARAM_TYPE_SIZES(dict_size)\
- 0, sizeof(bool), sizeof(int), sizeof(long), sizeof(float),\
- sizeof(gs_param_string), sizeof(gs_param_string),\
+ 0, sizeof(bool), sizeof(int), sizeof(long), sizeof(size_t), sizeof(int64_t),\
+ sizeof(float), sizeof(gs_param_string), sizeof(gs_param_string),\
sizeof(gs_param_int_array), sizeof(gs_param_float_array),\
sizeof(gs_param_string_array), sizeof(gs_param_string_array),\
(dict_size), (dict_size), (dict_size)
@@ -108,8 +109,8 @@ typedef gs_param_collection gs_param_array;
* to by the various value types.
*/
#define GS_PARAM_TYPE_BASE_SIZES(dict_elt_size)\
- 0, sizeof(bool), sizeof(int), sizeof(long), sizeof(float),\
- 1, 1, sizeof(int), sizeof(float),\
+ 0, sizeof(bool), sizeof(int), sizeof(long), sizeof(size_t), sizeof(int64_t),\
+ sizeof(float), 1, 1, sizeof(int), sizeof(float),\
sizeof(gs_param_string), sizeof(gs_param_string),\
(dict_elt_size), (dict_elt_size), (dict_elt_size)
@@ -122,6 +123,8 @@ extern const byte gs_param_type_base_sizes[];
bool b;\
int i;\
long l;\
+ size_t z;\
+ int64_t i64;\
float f;\
gs_param_string s;\
gs_param_string n;\
@@ -190,10 +193,8 @@ typedef enum {
* union means 'beginning of enumeration'.
*/
typedef union gs_param_enumerator_s {
- int intval;
- long longval;
- void *pvoid;
- char *pchar;
+ int intval; /* Used by the ref stack param list to index a stack */
+ void *pvoid; /* Used by the C param list to walk a linked list */
} gs_param_enumerator_t;
typedef gs_param_string gs_param_key_t;
@@ -402,6 +403,10 @@ int param_read_int(gs_param_list *, gs_param_name, int *);
int param_write_int(gs_param_list *, gs_param_name, const int *);
int param_read_long(gs_param_list *, gs_param_name, long *);
int param_write_long(gs_param_list *, gs_param_name, const long *);
+int param_read_i64(gs_param_list *, gs_param_name, int64_t *);
+int param_write_i64(gs_param_list *, gs_param_name, const int64_t *);
+int param_read_size_t(gs_param_list *, gs_param_name, size_t *);
+int param_write_size_t(gs_param_list *, gs_param_name, const size_t *);
int param_read_float(gs_param_list *, gs_param_name, float *);
int param_write_float(gs_param_list *, gs_param_name, const float *);
int param_read_string(gs_param_list *, gs_param_name, gs_param_string *);
@@ -556,4 +561,20 @@ void gs_c_param_list_write_more(gs_c_param_list *); /* switch back to writing, n
void gs_c_param_list_read(gs_c_param_list *); /* switch to reading */
void gs_c_param_list_release(gs_c_param_list *);
+/* Given a string to parse (a list of key/value pairs), parse it and add
+ * what we find to the supplied param list. Note that p is corrupted
+ * by the processing. */
+int gs_param_list_add_tokens(gs_param_list *plist, char *p);
+
+/* Given a key, and a string representing a single (maybe complex) value
+ * to parse, parse it and add what we find to the supplied param list. */
+int gs_param_list_add_parsed_value(gs_param_list *plist, gs_param_name key, const char *p);
+
+/* Given a key and a pointer to some storage (value), retrieve the
+ * value corresponding to the key from the list. If the storage is
+ * non-null, store a text version of the value there. Return the number
+ * of bytes required for the text version (including terminator) in the
+ * address pointed to be len. */
+int gs_param_list_to_string(gs_param_list *plist, gs_param_name key, char *value, int *len);
+
#endif /* gsparam_INCLUDED */
diff --git a/base/gsparam2.c b/base/gsparam2.c
index 05202c77..cafd9041 100644
--- a/base/gsparam2.c
+++ b/base/gsparam2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -43,7 +43,7 @@ gs_param_list_puts(stream *dest, gs_param_list *list)
gs_param_enumerator_t key_enum;
gs_param_key_t key;
char *string_key = gs_alloc_bytes(dest->memory, MAX_PARAM_KEY + 1, "gs_param_list_puts(string_key)");
-
+
if (!string_key) {
return_error(gs_error_VMerror);
}
@@ -100,6 +100,8 @@ gs_param_list_puts(stream *dest, gs_param_list *list)
case gs_param_type_bool:
case gs_param_type_int:
case gs_param_type_long:
+ case gs_param_type_size_t:
+ case gs_param_type_i64:
case gs_param_type_float:
sput_bytes(dest, (byte *)&value.value, value_top_sizeof);
case gs_param_type_null:
@@ -207,7 +209,7 @@ gs_param_list_gets(stream *src, gs_param_list *list, gs_memory_t *mem)
{
int code = 0;
char *string_key = gs_alloc_bytes(dest->memory, MAX_PARAM_KEY + 1, "gs_param_list_gets(string_key)");
-
+
if (!string_key) {
return_error(gs_error_VMerror);
}
@@ -247,6 +249,8 @@ gs_param_list_gets(stream *src, gs_param_list *list, gs_memory_t *mem)
case gs_param_type_bool:
case gs_param_type_int:
case gs_param_type_long:
+ case gs_param_type_size_t:
+ case gs_param_type_i64:
case gs_param_type_float:
code = sget_bytes(src, (byte *)&typed.value, value_top_sizeof);
case gs_param_type_null:
diff --git a/base/gsparaml.c b/base/gsparaml.c
new file mode 100644
index 00000000..d7e5fcdb
--- /dev/null
+++ b/base/gsparaml.c
@@ -0,0 +1,1048 @@
+/* Copyright (C) 2001-2020 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., 1305 Grant Avenue - Suite 200, Novato,
+ CA 94945, U.S.A., +1(415)492-9861, for further information.
+*/
+
+
+/* gsparaml.c - Handling of reading lists of params from strings */
+
+#include <stdlib.h>
+#include "gsparam.h"
+#include "gserrors.h"
+#include "string_.h"
+
+static int
+add_tokens(gs_param_list *plist, gs_param_name key, char **pp, uint *dict_count);
+
+static int
+walk_number(char **p, bool *is_integer)
+{
+ char *p1 = *p;
+ bool integer = true;
+
+ if (*p1 == '+')
+ p1++;
+ while (*p1 == ' ')
+ p1++;
+ while (*p1 == '-')
+ p1++;
+ while (*p1 == ' ')
+ p1++;
+ if (*p1 == 0 || ((*p1 < '0' || *p1 > '9') && (*p1 != '.')))
+ return -1;
+ while ((*p1 >= '0' && *p1 <= '9') || *p1 == '.') {
+ if (*p1 == '.') {
+ if (!integer) /* Can't cope with multiple .'s */
+ return -1;
+ integer = false;
+ }
+
+ p1++;
+ }
+ /* Allow for exponent form. */
+ if (*p1 == 'e' || *p1 == 'E') {
+ p1++;
+ if (*p1 == '-')
+ p1++;
+ if (*p1 < '0' || *p1 > '9')
+ return -1;
+ while (*p1 >= '0' && *p1 <= '9')
+ p1++;
+ }
+
+ *is_integer = integer;
+ *p = p1;
+
+ return 0;
+}
+
+/* Delimiter chars, as taken from pdf spec. Any of these characters
+ * ends a token. */
+static int
+ends_token(const char *p)
+{
+ return (*p == 0 ||
+ *p == 9 ||
+ *p == 10 ||
+ *p == 12 ||
+ *p == 13 ||
+ *p == 32 ||
+ *p == '/' ||
+ *p == '%' ||
+ *p == '<' || *p == '>' ||
+ *p == '[' || *p == ']' ||
+ *p == '{' || *p == '}' ||
+ *p == '(' || *p == ')');
+}
+
+/* Dictionaries are surprisingly easy, we just make a param_dict
+ * and then call the existing routine to parse the string and
+ * add tokens to the parameter list contained in the dictionary.
+ */
+static int
+process_dict(gs_memory_t *mem, gs_c_param_list *plist, gs_param_name key, char **p)
+{
+ gs_param_dict dict;
+ int code, code2;
+
+ /* We are implicitly relying on that fact that we're working to
+ * C param lists, not ref param lists here, as C param lists don't
+ * need the size up front, but ref param lists do. This makes the
+ * recursion MUCH simpler. */
+ code = param_begin_write_dict((gs_param_list *)plist, key, &dict, false);
+ if (code < 0)
+ return code;
+
+ gs_param_list_set_persistent_keys(dict.list, false);
+
+ dict.size = 0;
+ code = add_tokens(dict.list, NULL, p, &dict.size);
+ (*p) += 2;
+ code2 = param_end_write_dict((gs_param_list *)plist, key, &dict);
+ return code < 0 ? code : code2;
+}
+
+static int
+process_dict_or_hexstring(gs_memory_t *mem, gs_c_param_list *plist, gs_param_name key, char **p)
+{
+ char *p1 = *p, *src, *dest, data;
+ int i;
+ gs_param_string ps;
+
+ if (p1[1] == '<') {
+ *p += 2;
+ return process_dict(mem, plist, key, p);
+ }
+
+ dest = p1;
+ src = p1+1;
+ while (*src && *src != '>') {
+ data = 0;
+ for (i=0;i<2;i++) {
+ if (*src >= '0' && *src <= '9') {
+ data = (data << 4);
+ data += (*src - '0');
+ } else if (*src >= 'A' && *src <= 'F') {
+ data = (data << 4);
+ data += (*src - 'A' + 10);
+ } else if (*src >= 'a' && *src <= 'f') {
+ data = (data << 4);
+ data += (*src - 'a' + 10);
+ } else {
+ return -1;
+ }
+ src++;
+ }
+ *dest++ = data;
+ }
+
+ if (*src == 0)
+ return -1;
+
+ *p = src + 1;
+
+ ps.data = (const byte *)p1;
+ ps.size = dest - p1;
+ ps.persistent = false;
+ return param_write_string((gs_param_list *)plist, key, &ps);
+}
+
+/* On entry, p points to the '/'. Because we need to null terminate
+ * to cope with reading the key of key/value pairs, we move all the
+ * chars back by 1, overwriting the '/' to give us room. This avoids
+ * us relying on trailing whitespace. */
+static int
+process_name(gs_memory_t *mem, gs_c_param_list *plist, gs_param_name *key, char **p)
+{
+ char *out = *p;
+ char *in = *p + 1;
+ char *start = out;
+ gs_param_string ps;
+
+ while (!ends_token(in)) {
+ if (*in == '#') {
+ int v;
+ if (in[1] >= '0' && in[1] <= '9')
+ v = (in[1] - '0')<<4;
+ else if (in[1] >= 'a' && in[1] <= 'f')
+ v = (in[1] - 'a' + 10)<<4;
+ else if (in[1] >= 'A' && in[1] <= 'F')
+ v = (in[1] - 'a' + 10)<<4;
+ else
+ return -1;
+ if (in[2] >= '0' && in[2] <= '9')
+ v += (in[2] - '0');
+ else if (in[2] >= 'a' && in[2] <= 'f')
+ v += (in[2] - 'a' + 10);
+ else if (in[2] >= 'A' && in[2] <= 'F')
+ v += (in[2] - 'a' + 10);
+ else
+ return -1;
+ if (v == 0)
+ return -1;
+ *out++ = v;
+ in += 3;
+ continue;
+ }
+ *out++ = *in++;
+ }
+
+ /* Null terminate (in case it's the '*key = NULL' case below) */
+ *out = 0;
+ *p = in;
+
+ if (*key == NULL)
+ *key = (gs_param_name)start;
+ else {
+ ps.data = (const byte *)start;
+ ps.size = out - start;
+ ps.persistent = false;
+ param_write_name((gs_param_list *)plist, *key, &ps);
+ *key = NULL;
+ }
+ return 0;
+}
+
+static int
+process_string(gs_memory_t *mem, gs_c_param_list *plist, gs_param_name key, char **p)
+{
+ char *p1 = *p;
+ char *start = p1 + 1;
+ gs_param_string ps;
+
+ while (*p1 && *p1 != ')')
+ p1++;
+
+ if (*p1 == 0)
+ return -1;
+
+ *p = p1 + 1; /* Resume after the ')' */
+
+ ps.data = (const byte *)start;
+ ps.size = p1-start;
+ ps.persistent = false;
+ return param_write_string((gs_param_list *)plist, key, &ps);
+}
+
+/* Arrays are *way* more complicated than dicts :-(
+ * We have 4 different kinds of arrays; name, string, int and float.
+ * It seems that parameter arrays can only contain homogenous data, it
+ * all has to be of the same type. This complicates matters because we
+ * can't know in advance what the type is!
+ *
+ * So we only handle 3 types of array; int, float and string. Anything
+ * which isn't one of those either gets converted to a string or (arrays
+ * and dictionaries) throws an error.
+ *
+ * For numbers, we look at the first element, if it's an integer we make
+ * an int array, otherwise we make a float array. If we start an int array
+ * and later encounter a float, we make a new float array, copy the existing
+ * integers into it (converting to floats) and throw away the old int array.
+ *
+ * Otherwise if we encounter an object whose type doesn't match the array we
+ * created we throw an error.
+ */
+static int
+process_array(gs_memory_t *mem, gs_c_param_list *plist, gs_param_name key, char **p)
+{
+ int code = 0;
+ gs_param_type array_type = gs_param_type_null;
+ int index = 0, array_max = 0;
+ char *start = *p + 1, *p1 = start;
+ gs_param_string *parray = 0L;
+ char *array_data = 0x00;
+ gs_param_string_array string_array;
+ gs_param_int_array int_array;
+ gs_param_float_array float_array;
+
+ p1 = start;
+
+ while (*p1 != ']' && code == 0) {
+ switch (*p1) {
+ case ' ':
+ p1++;
+ break;
+
+ /* We used to parse 'false' and 'true' here, but they ended
+ * up as string params, rather that bools, thus making
+ * [ false ] and [ (false) ] parse to the be the same thing.
+ * That feels wrong, so we've removed the code until param
+ * lists actually support arrays of bools. */
+
+ case '<':
+ if (array_type != gs_param_type_null && array_type != gs_param_type_string_array) {
+ code = gs_error_typecheck;
+ break;
+ }
+ if (index == array_max) {
+ int new_max = array_max * 2;
+ if (new_max == 0)
+ new_max = 32;
+ if (array_data == NULL) {
+ array_data = (char *)gs_alloc_bytes(mem, sizeof(gs_param_string) * new_max, "param string array in param parsing");
+ } else {
+ char *new_array = (char *)gs_resize_object(mem, array_data, sizeof(gs_param_string) * new_max, "param string array in param parsing");
+ if (new_array == NULL) {
+ code = gs_error_VMerror;
+ break;
+ }
+ array_data = new_array;
+ }
+ array_max = new_max;
+ array_type = gs_param_type_string_array;
+ }
+ if (*(p1+1) == '<') {
+ code = gs_error_typecheck;
+ break;
+ /* dictionary inside an array, not supported */
+ } else {
+ char *src, *dest;
+ char data = 0;
+ int i;
+
+ parray = (gs_param_string *)array_data;
+ src = dest = ++p1;
+ parray[index].data = (const byte *)p1;
+ while (*src && *src != '>') {
+ data = 0;
+ for (i=0;i<2;i++) {
+ if (*src >= '0' && *src <= '9') {
+ data = (data << 4);
+ data += (*src - '0');
+ } else if (*src >= 'A' && *src <= 'F') {
+ data = (data << 4);
+ data += (*src - 'A' + 10);
+ } else if (*src >= 'a' && *src <= 'f') {
+ data = (data << 4);
+ data += (*src - 'a' + 10);
+ } else {
+ goto return_minus_one;
+ }
+ src++;
+ }
+ *dest++ = data;
+ }
+ parray[index].size = dest - p1;
+ parray[index++].persistent = false;
+ p1 = src;
+ }
+ break;
+
+ case '/':
+ if (array_type != gs_param_type_null && array_type != gs_param_type_name_array) {
+ code = gs_error_typecheck;
+ break;
+ }
+ if (index == array_max) {
+ int new_max = array_max * 2;
+ if (new_max == 0)
+ new_max = 32;
+ if (array_data == NULL) {
+ array_data = (char *)gs_alloc_bytes(mem, sizeof(gs_param_string) * new_max, "param string array in param parsing");
+ } else {
+ char *new_array = (char *)gs_resize_object(mem, array_data, sizeof(gs_param_string) * new_max, "param string array in param parsing");
+ if (new_array == NULL) {
+ code = gs_error_VMerror;
+ break;
+ }
+ array_data = new_array;
+ }
+ array_max = new_max;
+ array_type = gs_param_type_name_array;
+ }
+ parray = (gs_param_string *)array_data;
+ parray[index].data = (const byte *)++p1;
+ while (!ends_token(p1))
+ p1++;
+ parray[index].size = p1 - (char *)(parray[index].data);
+ if (parray[index].size == 0)
+ goto return_minus_one;
+ parray[index++].persistent = false;
+ break;
+
+ case '(':
+ if (array_type != gs_param_type_null && array_type != gs_param_type_string_array) {
+ code = gs_error_typecheck;
+ break;
+ }
+ if (index == array_max) {
+ int new_max = array_max * 2;
+ if (new_max == 0)
+ new_max = 32;
+ if (array_data == NULL) {
+ array_data = (char *)gs_alloc_bytes(mem, sizeof(gs_param_string) * new_max, "param string array in param parsing");
+ } else {
+ char *new_array = (char *)gs_resize_object(mem, array_data, sizeof(gs_param_string) * new_max, "param string array in param parsing");
+ if (new_array == NULL) {
+ code = gs_error_VMerror;
+ break;
+ }
+ array_data = new_array;
+ }
+ array_max = new_max;
+ array_type = gs_param_type_string_array;
+ }
+ parray = (gs_param_string *)array_data;
+ parray[index].data = (const byte *)p1;
+ while (*p1 && *p1 != ')')
+ p1++;
+ if (*p1 == 0)
+ goto return_minus_one;
+ parray[index].size = p1 - (char *)(parray[index].data);
+ parray[index++].persistent = false;
+ break;
+ case '[':
+ /* Nested arrays, not supported */
+ code = gs_error_typecheck;
+ break;
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9':
+ case '.':
+ case '+':
+ case '-':
+ if (array_type == gs_param_type_string_array) {
+ code = gs_error_typecheck;
+ break;
+ } else {
+ bool integer;
+ const char *start = p1;
+ char c;
+ float *floats;
+ int *ints, i;
+
+ code = walk_number(&p1, &integer);
+ if (code < 0)
+ break;
+
+ if (array_type == gs_param_type_int_array && !integer) {
+ ints = (int *)array_data;
+ floats = (float *)gs_alloc_bytes(mem, sizeof(float) * array_max, "param string array in param parsing");
+ if (floats == NULL){
+ code = gs_error_VMerror;
+ break;
+ }
+ array_type = gs_param_type_float_array;
+ for (i=0;i<index;i++){
+ floats[i] = (float)(ints[i]);
+ }
+ gs_free_object(mem, ints, "param string array in param parsing");
+ array_data = (char *)floats;
+ }
+ if (index == array_max) {
+ union { float f; int i; } size_me;
+ int new_max = array_max * 2;
+ if (new_max == 0) {
+ new_max = 32;
+ array_type = integer ? gs_param_type_int_array : gs_param_type_float_array;
+ }
+ if (array_data == NULL) {
+ array_data = (char *)gs_alloc_bytes(mem, sizeof(size_me) * new_max, "param string array in param parsing");
+ } else {
+ char *new_array = (char *)gs_resize_object(mem, array_data, sizeof(size_me) * new_max, "param string array in param parsing");
+ if (new_array == NULL) {
+ code = gs_error_VMerror;
+ break;
+ }
+ array_data = new_array;
+ }
+ array_max = new_max;
+ }
+ c = *p1;
+ *p1 = 0;
+ if (array_type == gs_param_type_int_array) {
+ ints = (int *)array_data;
+ ints[index++] = (int)atol(start);
+ } else {
+ floats = (float *)array_data;
+ floats[index++] = (float)atof(start);
+ }
+ *p1 = c;
+ }
+ break;
+ default:
+ code = gs_error_typecheck;
+ break;
+ }
+ }
+ if (0) {
+return_minus_one:
+ code = -1;
+ }
+
+ /* Now we have to deal with adding the array to the parm list, there are
+ * (of course!) different calls for each array type....
+ */
+ if (code >= 0)
+ {
+ *p = p1 + 1;
+ switch(array_type) {
+ case gs_param_type_string_array:
+ string_array.data = (const gs_param_string *)array_data;
+ string_array.persistent = 0;
+ string_array.size = index;
+ code = param_write_string_array((gs_param_list *)plist, key, &string_array);
+ break;
+ case gs_param_type_name_array:
+ string_array.data = (const gs_param_string *)array_data;
+ string_array.persistent = 0;
+ string_array.size = index;
+ code = param_write_name_array((gs_param_list *)plist, key, &string_array);
+ break;
+ case gs_param_type_int_array:
+ int_array.data = (const int *)array_data;
+ int_array.persistent = 0;
+ int_array.size = index;
+ code = param_write_int_array((gs_param_list *)plist, key, &int_array);
+ break;
+ case gs_param_type_float_array:
+ float_array.data = (const float *)array_data;
+ float_array.persistent = 0;
+ float_array.size = index;
+ code = param_write_float_array((gs_param_list *)plist, key, &float_array);
+ break;
+
+ default:
+ break;
+ }
+ }
+
+ /* And now we can throw away the array data, we copied it to the param list. */
+ gs_free_object(mem, array_data, "param string array in param parsing");
+
+ return code;
+}
+
+/* We rely on the fact that we can overwrite, then restore *end here. */
+static int
+process_number(gs_memory_t *mem, gs_c_param_list *plist, gs_param_name key, char **p)
+{
+ bool integer;
+ const char *start = *p;
+ char c;
+ int code = walk_number(p, &integer);
+
+ if (code < 0)
+ return code;
+
+ /* Hacky. Null terminate so that atof/atol don't overrun. This is
+ * safe because at worst p points to the null terminator byte, and
+ * we can safely overwrite end for a moment. Ick. */
+ c = **p;
+ **p = 0;
+ if (!integer) {
+ float f = (float)atof(start);
+ code = param_write_float((gs_param_list *)plist, key, (float *)&f);
+ } else {
+ /* FIXME: Should probably really be int64_t here rather than int? */
+ long i = atol(start);
+ code = param_write_long((gs_param_list *)plist, key, &i);
+ }
+ **p = c;
+
+ return code;
+}
+
+static int
+add_tokens(gs_param_list *plist, gs_param_name key, char **pp, uint *dict_count)
+{
+ char *p = *pp;
+ int code = 0;
+ /* If single == true, then we are looking for a single value,
+ * otherwise it's a list of key/value pairs */
+ int single = (key != NULL);
+ /* If single_done, then we've read our single value. Any non
+ * whitespace we read is an error. */
+ int single_done = 0;
+ bool f = false, t = true;
+
+ while (*p) {
+ switch (*p) {
+ case ' ':
+ p++;
+ break;
+ case 'f':
+ if (single_done || key == NULL)
+ return -1;
+ if (strncmp(p, "false", 5) != 0)
+ return -1;
+ if (!ends_token(p+5))
+ return -1;
+ code = param_write_bool((gs_param_list *)plist, key, &f);
+ if (code >= 0 && dict_count != NULL)
+ (*dict_count)++;
+ p += 5;
+ single_done = single;
+ key = NULL;
+ break;
+ case 't':
+ if (single_done || key == NULL)
+ return -1;
+ if (strncmp(p, "true", 4) != 0)
+ return -1;
+ if (!ends_token(p+4))
+ return -1;
+ code = param_write_bool((gs_param_list *)plist, key, &t);
+ if (code >= 0 && dict_count != NULL)
+ (*dict_count)++;
+ p += 4;
+ single_done = single;
+ key = NULL;
+ break;
+ case '<':
+ if (single_done || key == NULL)
+ return -1;
+ code = process_dict_or_hexstring(plist->memory, (gs_c_param_list *)plist, key, &p);
+ if (code >= 0 && dict_count != NULL)
+ (*dict_count)++;
+ single_done = single;
+ key = NULL;
+ break;
+ case '/':
+ {
+ int have_key = (key != NULL);
+ if (single_done)
+ return -1;
+ code = process_name(plist->memory, (gs_c_param_list *)plist, &key, &p);
+ if (code >= 0 && have_key && dict_count != NULL)
+ (*dict_count)++;
+ if (have_key) {
+ single_done = single;
+ key = NULL;
+ }
+ break;
+ }
+ case '(':
+ if (single_done || key == NULL)
+ return -1;
+ code = process_string(plist->memory, (gs_c_param_list *)plist, key, &p);
+ if (code >= 0 && dict_count != NULL)
+ (*dict_count)++;
+ single_done = single;
+ key = NULL;
+ break;
+ case '[':
+ if (single_done || key == NULL)
+ return -1;
+ code = process_array(plist->memory, (gs_c_param_list *)plist, key, &p);
+ if (code >= 0 && dict_count != NULL)
+ (*dict_count)++;
+ single_done = single;
+ key = NULL;
+ break;
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9':
+ case '.':
+ if (single_done || key == NULL)
+ return -1;
+ code = process_number(plist->memory, (gs_c_param_list *)plist, key, &p);
+ if (code >= 0 && dict_count != NULL)
+ (*dict_count)++;
+ single_done = single;
+ key = NULL;
+ break;
+ case '>':
+ if (dict_count != NULL && p[1] == '>') {
+ if (key != NULL)
+ return -1;
+ *pp = p;
+ return 0;
+ }
+ return -1;
+ default:
+ return -1;
+ break;
+ }
+ if (code < 0)
+ return code;
+ }
+
+ return 0;
+}
+
+/* Given a string to parse (a list of key/value pairs), parse it and add
+ * what we find to the supplied param list.
+ */
+int gs_param_list_add_tokens(gs_param_list *plist, char *p)
+{
+ char *r = p;
+ return add_tokens(plist, NULL, &r, NULL);
+}
+
+/* Given a key, and a string representing a single (maybe complex) value
+ * to parse, parse it and add what we find to the supplied param list.
+ */
+int gs_param_list_add_parsed_value(gs_param_list *plist, gs_param_name key, const char *p)
+{
+ size_t len;
+ char *q, *r;
+ int code;
+
+ /* Treat NULL as the empty string. */
+ if (p == NULL)
+ return 0;
+
+ len = strlen(p) + 1;
+ q = (char *)gs_alloc_bytes(plist->memory, len, "gs_param_list_add_parsed_value");
+ if (q == NULL)
+ return_error(gs_error_VMerror);
+ memcpy(q, p, len);
+
+ r = q;
+ code = add_tokens(plist, key, &r, NULL);
+
+ gs_free_object(plist->memory, q, "gs_param_list_add_parsed_value");
+
+ return code;
+}
+
+typedef struct {
+ char *value;
+ int *len;
+ char last;
+} outstate;
+
+static void
+out_string(outstate *out, const char *str)
+{
+ int slen = str ? (int)strlen(str) : 0;
+
+ if (slen == 0)
+ return;
+
+ if (out->last != 0 && out->last != ')' && out->last != '>' &&
+ out->last != '[' && out->last != ']' && out->last != '}' &&
+ *str != '(' && *str != ')' && *str != '<' && *str != '>' &&
+ *str != '[' && *str != ']' && *str != '{' && *str != '}' &&
+ *str != '/') {
+ /* We need to insert some whitespace */
+ *out->len += 1;
+ if (out->value != NULL) {
+ *out->value++ = ' ';
+ *out->value = 0;
+ }
+ }
+
+ *out->len += slen;
+ out->last = str[slen-1];
+ if (out->value != NULL) {
+ memcpy(out->value, str, slen);
+ out->value += slen;
+ *out->value = 0;
+ }
+}
+
+static void
+string_to_string(const char *data, int len, outstate *out)
+{
+ int i;
+ char text[4];
+ const char *d = data;
+
+ /* Check to see if we have any awkward chars */
+ for (i = len; i != 0; i--) {
+ if (*d < 32 || *d >= 127 || *d == ')')
+ break;
+ d++;
+ }
+
+ /* No awkward chars, do it the easy way. */
+ if (i == 0) {
+ d = data;
+ out_string(out, "(");
+ out->last = 0;
+ text[1] = 0;
+ for (i = len; i != 0; i--) {
+ text[0] = *d++;
+ out->last = 0;
+ out_string(out, text);
+ }
+ out->last = 0;
+ out_string(out, ")");
+ return;
+ }
+
+ /* Output as hexstring */
+ out_string(out, "<");
+ text[2] = 0;
+ for (i = 0; i < len; i++) {
+ text[0] = "0123456789ABCDEF"[(*data >> 4) & 15];
+ text[1] = "0123456789ABCDEF"[(*data++) & 15];
+ out->last = 0;
+ out_string(out, text);
+ }
+ out_string(out, ">");
+}
+
+static void
+name_to_string(const char *data, int len, outstate *out)
+{
+ int i;
+ char text[4];
+
+ out_string(out, "/");
+ text[3] = 0;
+ for (i = 0; i < len; i++) {
+ char c = *data++;
+ if (c > 32 && c < 127 && c != '/' && c != '#' &&
+ c != '<' && c != '>' &&
+ c != '[' && c != ']' &&
+ c != '(' && c != ')' &&
+ c != '{' && c != '}') {
+ text[0] = c;
+ text[1] = 0;
+ } else {
+ text[0] = '#';
+ text[1] = "0123456789ABCDEF"[(c >> 4) & 15];
+ text[2] = "0123456789ABCDEF"[c & 15];
+ }
+ out->last = 0;
+ out_string(out, text);
+ }
+}
+
+static void
+int_array_to_string(gs_param_int_array ia, outstate *out)
+{
+ int i;
+ char text[32];
+
+ out_string(out, "[");
+ for (i = 0; i < ia.size; i++) {
+ gs_sprintf(text, "%d", ia.data[i]);
+ out_string(out, text);
+ }
+ out_string(out, "]");
+}
+
+static void
+print_float(char *text, float f)
+{
+ /* We attempt to tidy up %f's somewhat unpredictable output
+ * here, so rather than printing 0.10000000 we print 0.1 */
+ char *p = text;
+ int frac = 0;
+ gs_sprintf(text, "%f", f);
+ /* Find the terminator, or 'e' to spot exponent mode. */
+ while (*p && *p != 'e' && *p != 'E') {
+ if (*p == '.')
+ frac = 1;
+ p++;
+ }
+ /* If we've hit the terminator, and passed a '.' at some point
+ * we know we potentially have a tail to tidy up. */
+ if (*p == 0 && frac) {
+ p--;
+ /* Clear a trail of 0's. */
+ while (*p == '0')
+ *p-- = 0;
+ /* If we cleared the entire fractional part, remove the . */
+ if (*p == '.') {
+ /* Allow for -.0000 => -0 rather than - */
+ if (p == text || p[-1] < '0' || p[-1] > '9')
+ *p = '0', p[1] = 0;
+ else
+ p[0] = 0;
+ }
+ }
+}
+
+static void
+float_array_to_string(gs_param_float_array fa, outstate *out)
+{
+ int i;
+ char text[32];
+
+ out_string(out, "[");
+ for (i = 0; i < fa.size; i++) {
+ print_float(text, fa.data[i]);
+ out_string(out, text);
+ }
+ out_string(out, "]");
+}
+
+static void
+string_array_to_string(gs_param_string_array sa, outstate *out)
+{
+ int i;
+
+ out_string(out, "[");
+ for (i = 0; i < sa.size; i++) {
+ string_to_string((const char *)sa.data[i].data, sa.data[i].size, out);
+ }
+ out_string(out, "]");
+}
+
+static void
+name_array_to_string(gs_param_string_array na, outstate *out)
+{
+ int i;
+
+ out_string(out, "[");
+ for (i = 0; i < na.size; i++) {
+ name_to_string((const char *)na.data[i].data, na.data[i].size, out);
+ }
+ out_string(out, "]");
+}
+
+static int to_string(gs_param_list *plist, gs_param_name key, outstate *out);
+
+static int
+out_dict(gs_param_collection *dict, outstate *out)
+{
+ gs_param_list *plist = dict->list;
+ gs_param_enumerator_t enumerator;
+ gs_param_key_t key;
+ int code;
+
+ out_string(out, "<<");
+
+ param_init_enumerator(&enumerator);
+ while ((code = param_get_next_key(plist, &enumerator, &key)) == 0) {
+ char string_key[256]; /* big enough for any reasonable key */
+
+ if (key.size > sizeof(string_key) - 1) {
+ code = gs_note_error(gs_error_rangecheck);
+ break;
+ }
+ memcpy(string_key, key.data, key.size);
+ string_key[key.size] = 0;
+ name_to_string((char *)key.data, key.size, out);
+ code = to_string(plist, string_key, out);
+ if (code < 0)
+ break;
+ }
+
+ out_string(out, ">>");
+ if (code == 1)
+ code = 0;
+
+ return code;
+}
+
+static int
+to_string(gs_param_list *plist, gs_param_name key, outstate *out)
+{
+ int code = 0;
+ gs_param_typed_value pvalue;
+
+ pvalue.type = gs_param_type_any;
+ code = param_read_typed(plist, key, &pvalue);
+ if (code < 0)
+ return code;
+ if (code > 0)
+ return_error(gs_error_undefined);
+ switch (pvalue.type) {
+ case gs_param_type_null:
+ out_string(out, "null");
+ break;
+ case gs_param_type_bool:
+ if (pvalue.value.b)
+ out_string(out, "true");
+ else
+ out_string(out, "false");
+ break;
+ case gs_param_type_int:
+ {
+ char text[32];
+ gs_sprintf(text, "%d", pvalue.value.i);
+ out_string(out, text);
+ break;
+ }
+ case gs_param_type_i64:
+ {
+ char text[32];
+ gs_sprintf(text, "%"PRId64, pvalue.value.i64);
+ out_string(out, text);
+ break;
+ }
+ case gs_param_type_long:
+ {
+ char text[32];
+ gs_sprintf(text, "%ld", pvalue.value.l);
+ out_string(out, text);
+ break;
+ }
+ case gs_param_type_size_t:
+ {
+ char text[32];
+ gs_sprintf(text, "%"PRIdSIZE, pvalue.value.z);
+ out_string(out, text);
+ break;
+ }
+ case gs_param_type_float:
+ {
+ char text[32];
+ print_float(text, pvalue.value.f);
+ out_string(out, text);
+ break;
+ }
+ case gs_param_type_dict:
+ code = out_dict(&pvalue.value.d, out);
+ break;
+ case gs_param_type_dict_int_keys:
+ return -1;
+ case gs_param_type_array:
+ return -1;
+ case gs_param_type_string:
+ string_to_string((char *)pvalue.value.s.data, pvalue.value.s.size, out);
+ break;
+ case gs_param_type_name:
+ name_to_string((char *)pvalue.value.n.data, pvalue.value.n.size, out);
+ break;
+ case gs_param_type_int_array:
+ int_array_to_string(pvalue.value.ia, out);
+ break;
+ case gs_param_type_float_array:
+ float_array_to_string(pvalue.value.fa, out);
+ break;
+ case gs_param_type_string_array:
+ string_array_to_string(pvalue.value.sa, out);
+ break;
+ case gs_param_type_name_array:
+ name_array_to_string(pvalue.value.na, out);
+ break;
+ default:
+ return -1;
+ }
+
+ return code;
+}
+
+int gs_param_list_to_string(gs_param_list *plist, gs_param_name key, char *value, int *len)
+{
+ outstate out;
+
+ out.value = value;
+ out.len = len;
+ out.last = 0;
+ *len = 1; /* Always space for the terminator. */
+ if (value)
+ *value = 0;
+ return to_string(plist, key, &out);
+}
diff --git a/base/gsparams.c b/base/gsparams.c
index 4e5adab3..b7c06251 100644
--- a/base/gsparams.c
+++ b/base/gsparams.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -141,6 +141,8 @@ gs_param_list_serialize(
case gs_param_type_bool:
case gs_param_type_int:
case gs_param_type_long:
+ case gs_param_type_size_t:
+ case gs_param_type_i64:
case gs_param_type_float:
wb_put_bytes((byte *) & value.value, value_top_sizeof, &write_buf);
break;
@@ -259,6 +261,8 @@ gs_param_list_unserialize(
case gs_param_type_bool:
case gs_param_type_int:
case gs_param_type_long:
+ case gs_param_type_size_t:
+ case gs_param_type_i64:
case gs_param_type_float:
break;
diff --git a/base/gsparams.h b/base/gsparams.h
index d08c0b45..676e5743 100644
--- a/base/gsparams.h
+++ b/base/gsparams.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsparamx.c b/base/gsparamx.c
index 9be57e76..266da47f 100644
--- a/base/gsparamx.c
+++ b/base/gsparamx.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsparamx.h b/base/gsparamx.h
index 59cc2730..f73cc18c 100644
--- a/base/gsparamx.h
+++ b/base/gsparamx.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gspath.c b/base/gspath.c
index 2080d2c4..02d4c54b 100644
--- a/base/gspath.c
+++ b/base/gspath.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gspath.h b/base/gspath.h
index 1a868f0c..0d1ac9e8 100644
--- a/base/gspath.h
+++ b/base/gspath.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gspath1.c b/base/gspath1.c
index c4a4812f..96d19d5d 100644
--- a/base/gspath1.c
+++ b/base/gspath1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gspath2.h b/base/gspath2.h
index bb7c2bec..b0cf8bb3 100644
--- a/base/gspath2.h
+++ b/base/gspath2.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gspcolor.c b/base/gspcolor.c
index e96331b1..7efa2900 100644
--- a/base/gspcolor.c
+++ b/base/gspcolor.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -77,7 +77,6 @@ gs_pattern_common_init(gs_pattern_template_t * ppat,
ppat->type = type;
ppat->PatternType = type->PatternType;
uid_set_invalid(&ppat->uid);
- ppat->client_data = 0; /* for GC */
}
/* Generic makepattern */
@@ -117,6 +116,8 @@ gs_make_pattern_common(gs_client_color *pcc,
gs_concat(saved, pmat);
code = gs_newpath(saved);
pinst->saved = saved;
+ pinst->client_data = NULL; /* for GC */
+ pinst->notify_free = NULL; /* No custom free calllback initially */
pcc->pattern = pinst;
pcc->pattern->pattern_id = gs_next_ids(mem, 1);
return code;
@@ -129,6 +130,9 @@ rc_free_pattern_instance(gs_memory_t * mem, void *pinst_void,
{
gs_pattern_instance_t *pinst = pinst_void;
+ if (pinst->notify_free != NULL)
+ (*pinst->notify_free) ((gs_memory_t *)mem, pinst);
+
gs_gstate_free(pinst->saved);
rc_free_struct_only(mem, pinst_void, cname);
}
diff --git a/base/gspcolor.h b/base/gspcolor.h
index d813217c..5673fae8 100644
--- a/base/gspcolor.h
+++ b/base/gspcolor.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -53,8 +53,7 @@ typedef struct gs_pattern_type_s gs_pattern_type_t;
#define gs_pattern_template_common\
const gs_pattern_type_t *type;\
int PatternType; /* copied from the type structure */\
- gs_uid uid;\
- void *client_data /* additional data for rendering */
+ gs_uid uid
typedef struct gs_pattern_template_s {
gs_pattern_template_common;
@@ -63,17 +62,21 @@ typedef struct gs_pattern_template_s {
/* The descriptor is public for subclassing. */
extern_st(st_pattern_template);
#define public_st_pattern_template() /* in gspcolor.c */\
- gs_public_st_ptrs2(st_pattern_template, gs_pattern_template_t,\
+ gs_public_st_ptrs1(st_pattern_template, gs_pattern_template_t,\
"gs_pattern_template_t", pattern_template_enum_ptrs,\
- pattern_template_reloc_ptrs, uid.xvalues, client_data)
+ pattern_template_reloc_ptrs, uid.xvalues)
#define st_pattern_template_max_ptrs 2
+typedef void (*gs_pinst_free_proc_t) (gs_memory_t * mem, void *pinst);
+
/* Definition of Pattern instances. */
#define gs_pattern_instance_common\
rc_header rc;\
/* Following are set by makepattern */\
const gs_pattern_type_t *type; /* from template */\
gs_gstate *saved;\
+ void *client_data; /* additional data for rendering */\
+ gs_pinst_free_proc_t notify_free;\
gs_id pattern_id
struct gs_pattern_instance_s {
gs_pattern_instance_common;
@@ -82,9 +85,9 @@ struct gs_pattern_instance_s {
/* The following is public for subclassing. */
extern_st(st_pattern_instance);
#define public_st_pattern_instance() /* in gspcolor.c */\
- gs_public_st_ptrs1(st_pattern_instance, gs_pattern_instance_t,\
+ gs_public_st_ptrs2(st_pattern_instance, gs_pattern_instance_t,\
"gs_pattern_instance_t", pattern_instance_enum_ptrs,\
- pattern_instance_reloc_ptrs, saved)
+ pattern_instance_reloc_ptrs, saved, client_data)
#define st_pattern_instance_max_ptrs 1
/* ---------------- Procedures ---------------- */
diff --git a/base/gspenum.h b/base/gspenum.h
index 18811173..b021acd8 100644
--- a/base/gspenum.h
+++ b/base/gspenum.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gspmdrv.c b/base/gspmdrv.c
index 73a8bd0d..78281b17 100644
--- a/base/gspmdrv.c
+++ b/base/gspmdrv.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gspmdrv.h b/base/gspmdrv.h
index 41bbe1bb..e0c20c6e 100644
--- a/base/gspmdrv.h
+++ b/base/gspmdrv.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gspmdrv.rc b/base/gspmdrv.rc
index 9215e460..de6eae11 100644
--- a/base/gspmdrv.rc
+++ b/base/gspmdrv.rc
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -27,7 +27,7 @@ BEGIN
ICON ID_GSPMDRV, ID_GSPMDRV, 8, 56, 20, 16, WS_GROUP
LTEXT "Ghostscript Presentation Manager Driver", -1, 34, 64, 210, 8
LTEXT GSPMDRV_VERSION, -1, 34, 56, 210, 8
- LTEXT "Copyright (C) 1992, 1993, 2001-2018 Artifex Software Inc.", -1, 34, 48, 210, 8
+ LTEXT "Copyright (C) 1992, 1993, 2001-2020 Artifex Software Inc.", -1, 34, 48, 210, 8
LTEXT "All rights reserved", -1, 34, 40, 210, 8
PUSHBUTTON "OK", DID_OK, 105, 8, 40, 14
END
diff --git a/base/gsptype1.c b/base/gsptype1.c
index 7d4714f4..92b1f278 100644
--- a/base/gsptype1.c
+++ b/base/gsptype1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -718,10 +718,14 @@ gs_pattern1_set_color(const gs_client_color * pcc, gs_gstate * pgs)
pcs = pcs->base_space;
return pcs->type->set_overprint(pcs, pgs);
} else {
- gs_overprint_params_t params;
+ gs_overprint_params_t params = {0};
params.retain_any_comps = false;
params.effective_opm = pgs->color[0].effective_opm = 0;
+ params.op_state = OP_STATE_NONE;
+ params.is_fill_color = false;
+ params.idle = false;
+
return gs_gstate_update_overprint(pgs, &params);
}
}
@@ -766,6 +770,15 @@ typedef struct pixmap_info_s {
void (*free_proc)(gs_memory_t *, void *, client_name_t);
} pixmap_info;
+void *
+gs_get_pattern_client_data(const gs_client_color * pcc)
+{
+ const gs_pattern_instance_t *pinst = pcc->pattern;
+
+ return (pinst == 0 || pinst->type != &gs_pattern1_type ? 0 :
+ (void *)pinst->client_data);
+}
+
gs_private_st_suffix_add1(st_pixmap_info,
pixmap_info,
"pixmap info. struct",
@@ -778,26 +791,16 @@ gs_private_st_suffix_add1(st_pixmap_info,
#define st_pixmap_info_max_ptrs (1 + st_tile_bitmap_max_ptrs)
/*
- * Free routine for pattern instances created from pixmaps. This overwrites
- * the free procedure originally stored in the pattern instance, and stores
- * the pointer to that procedure in the pixmap_info structure. This procedure
- * will call the original procedure, then free the pixmap_info structure.
+ * Free routine for pattern instances created from pixmaps.
*
* Note that this routine does NOT release the data in the original pixmap;
* that remains the responsibility of the client.
*/
-static void
-free_pixmap_pattern(
- gs_memory_t * pmem,
- void * pvpinst,
- client_name_t cname
-)
+static void pixmap_free_notify (gs_memory_t * mem, void *vpinst)
{
- gs_pattern1_instance_t *pinst = (gs_pattern1_instance_t *)pvpinst;
- pixmap_info *ppmap = pinst->templat.client_data;
+ gs_pattern1_instance_t *pinst = (gs_pattern1_instance_t *)vpinst;
- ppmap->free_proc(pmem, pvpinst, cname);
- gs_free_object(pmem, ppmap, cname);
+ gs_free_object(mem, pinst->client_data, "pixmap_free_notify");
}
/*
@@ -808,10 +811,10 @@ static int bitmap_paint(gs_image_enum * pen, gs_data_image_t * pim,
static int
mask_PaintProc(const gs_client_color * pcolor, gs_gstate * pgs)
{
- const pixmap_info *ppmap = gs_getpattern(pcolor)->client_data;
+ int code;
+ const pixmap_info *ppmap = (pixmap_info *)gs_get_pattern_client_data(pcolor);
const gs_depth_bitmap *pbitmap = &(ppmap->bitmap);
- gs_image_enum *pen =
- gs_image_enum_alloc(gs_gstate_memory(pgs), "mask_PaintProc");
+ gs_image_enum *pen = gs_image_enum_alloc(gs_gstate_memory(pgs), "mask_PaintProc");
gs_image1_t mask;
if (pen == 0)
@@ -820,12 +823,14 @@ mask_PaintProc(const gs_client_color * pcolor, gs_gstate * pgs)
mask.Width = pbitmap->size.x;
mask.Height = pbitmap->size.y;
gs_image_init(pen, &mask, false, false, pgs);
- return bitmap_paint(pen, (gs_data_image_t *) & mask, pbitmap, pgs);
+ code = bitmap_paint(pen, (gs_data_image_t *) & mask, pbitmap, pgs);
+ gs_free_object(gs_gstate_memory(pgs), pen, "mask_PaintProc");
+ return code;
}
static int
image_PaintProc(const gs_client_color * pcolor, gs_gstate * pgs)
{
- const pixmap_info *ppmap = gs_getpattern(pcolor)->client_data;
+ const pixmap_info *ppmap = gs_get_pattern_client_data(pcolor);
const gs_depth_bitmap *pbitmap = &(ppmap->bitmap);
gs_image_enum *pen =
gs_image_enum_alloc(gs_gstate_memory(pgs), "image_PaintProc");
@@ -896,6 +901,7 @@ image_PaintProc(const gs_client_color * pcolor, gs_gstate * pgs)
(gs_data_image_t *)&image,
pgs )) >= 0 &&
(code = bitmap_paint(pen, (gs_data_image_t *) & image, pbitmap, pgs)) >= 0) {
+ gs_free_object(gs_gstate_memory(pgs), pen, "image_PaintProc");
return gs_grestore(pgs);
}
/* Failed above, need to undo the gsave */
@@ -922,7 +928,7 @@ bitmap_paint(gs_image_enum * pen, gs_data_image_t * pim,
else
for (n = pim->Height; n > 0 && code >= 0; dp += raster, --n)
code = gs_image_next(pen, dp, nbytes, &used);
- code1 = gs_image_cleanup_and_free_enum(pen, pgs);
+ code1 = gs_image_cleanup(pen, pgs);
if (code >= 0 && code1 < 0)
code = code1;
return code;
@@ -939,7 +945,7 @@ int pixmap_high_level_pattern(gs_gstate * pgs)
gs_color_space *pcs;
gs_pattern1_instance_t *pinst =
(gs_pattern1_instance_t *)gs_currentcolor(pgs)->pattern;
- const pixmap_info *ppmap = ppat->client_data;
+ const pixmap_info *ppmap = (const pixmap_info *)gs_get_pattern_client_data((const gs_client_color *)&pdc->ccolor);
code = gx_pattern_cache_add_dummy_entry(pgs, pinst, pgs->device->color_info.depth);
if (code < 0)
@@ -1132,7 +1138,6 @@ gs_makepixmappattern(
pat.XStep = (float)pbitmap->size.x;
pat.YStep = (float)pbitmap->size.y;
pat.PaintProc = (mask ? pixmap_remap_mask_pattern : pixmap_remap_image_pattern);
- pat.client_data = ppmap;
/* set the ctm to be the identity */
gs_currentmatrix(pgs, &smat);
@@ -1158,9 +1163,8 @@ gs_makepixmappattern(
if (!mask && (white_index >= (1 << pbitmap->pix_depth)))
pinst->uses_mask = false;
- /* overwrite the free procedure for the pattern instance */
- ppmap->free_proc = pinst->rc.free;
- pinst->rc.free = free_pixmap_pattern;
+ pinst->client_data = ppmap;
+ pinst->notify_free = pixmap_free_notify;
/*
* Since the PaintProcs don't reference the saved color space or
@@ -1645,7 +1649,7 @@ typedef struct gx_dc_serialized_tile_s {
} gx_dc_serialized_tile_t;
enum {
- TILE_IS_LOCKED = 0x80000000,
+ TILE_IS_LOCKED = (int)0x80000000,
TILE_HAS_OVERLAP = 0x40000000,
TILE_IS_SIMPLE = 0x20000000,
TILE_USES_TRANSP = 0x10000000,
@@ -1664,9 +1668,9 @@ gx_dc_pattern_write_raster(gx_color_tile *ptile, int64_t offset, byte *data,
int left = *psize;
int64_t offset1 = offset;
- size_b = sizeof(gx_strip_bitmap) +
+ size_b = (int)sizeof(gx_strip_bitmap) +
ptile->tbits.size.y * ptile->tbits.raster * ptile->tbits.num_planes;
- size_c = ptile->tmask.data ? sizeof(gx_strip_bitmap) + ptile->tmask.size.y * ptile->tmask.raster : 0;
+ size_c = ptile->tmask.data ? (int)sizeof(gx_strip_bitmap) + ptile->tmask.size.y * ptile->tmask.raster : 0;
if (data == NULL) {
*psize = sizeof(gx_dc_serialized_tile_t) + size_b + size_c;
return 0;
@@ -2117,8 +2121,22 @@ gx_dc_pattern_read(
/* the following works for raster or clist patterns */
cache_space_needed = buf.size_b + buf.size_c;
}
+
+ /* Free up any unlocked patterns if needed */
gx_pattern_cache_ensure_space((gs_gstate *)pgs, cache_space_needed);
+ /* If the pattern tile is already in the cache, make sure it isn't locked */
+ /* The lock will be reset below, but the read logic needs to finish loading the pattern. */
+ ptile = &(pgs->pattern_cache->tiles[buf.id % pgs->pattern_cache->num_tiles]);
+ if (ptile->id != gs_no_id && ptile->is_locked) {
+ /* we shouldn't have miltiple tiles locked, but check if OK before unlocking */
+ if (ptile->id != buf.id)
+ return_error(gs_error_unregistered); /* can't unlock some other tile in this slot */
+ code = gx_pattern_cache_entry_set_lock((gs_gstate *)pgs, buf.id, false); /* make sure not locked */
+ if (code < 0)
+ return code; /* can't happen since we call ensure_space above, but Coverity doesn't know that */
+ }
+ /* get_entry will free the tile in the cache slot if it isn't empty */
code = gx_pattern_cache_get_entry((gs_gstate *)pgs, /* Break 'const'. */
buf.id, &ptile);
if (code < 0)
diff --git a/base/gsptype1.h b/base/gsptype1.h
index 46126d43..f1602d36 100644
--- a/base/gsptype1.h
+++ b/base/gsptype1.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -82,6 +82,7 @@ void gs_pattern1_init(gs_pattern1_template_t *);
int gs_makepattern(gs_client_color *, const gs_client_pattern *,
const gs_matrix *, gs_gstate *, gs_memory_t *);
const gs_client_pattern *gs_getpattern(const gs_client_color *);
+void *gs_get_pattern_client_data(const gs_client_color *);
/* Check device color for Pattern Type 1. */
bool gx_dc_is_pattern1_color(const gx_device_color *pdevc);
diff --git a/base/gsptype2.c b/base/gsptype2.c
index 6573dee9..1181fccc 100644
--- a/base/gsptype2.c
+++ b/base/gsptype2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsptype2.h b/base/gsptype2.h
index 040ffcf0..fb8ae014 100644
--- a/base/gsptype2.h
+++ b/base/gsptype2.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsrect.h b/base/gsrect.h
index 365f2bdb..5aa9bd0e 100644
--- a/base/gsrect.h
+++ b/base/gsrect.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsrefct.h b/base/gsrefct.h
index a9c7f029..a88c19a4 100644
--- a/base/gsrefct.h
+++ b/base/gsrefct.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -151,7 +151,7 @@ rc_free_proc(rc_free_struct_only);
# define rc_check_(vp)\
BEGIN\
if (gs_debug_c('?') && (vp)->rc.ref_count < 0)\
- lprintf2("0x%lx has ref_count of %ld!\n", (ulong)(vp),\
+ lprintf2(PRI_INTPTR" has ref_count of %ld!\n", (intptr_t)(vp),\
(vp)->rc.ref_count);\
END
#else
diff --git a/base/gsromfs0.c b/base/gsromfs0.c
index ad9d6d0d..fc30e3bc 100644
--- a/base/gsromfs0.c
+++ b/base/gsromfs0.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsrop.c b/base/gsrop.c
index b810c433..f78ae09c 100644
--- a/base/gsrop.c
+++ b/base/gsrop.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsrop.h b/base/gsrop.h
index 300a6069..2cbf5201 100644
--- a/base/gsrop.h
+++ b/base/gsrop.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsroprun.c b/base/gsroprun.c
index 445dd55f..3b65cddb 100644
--- a/base/gsroprun.c
+++ b/base/gsroprun.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -104,7 +104,7 @@ static void record(int rop)
#define TEMPLATE_NAME invert_rop_run1
#define SPECIFIC_ROP 0x55
#define SPECIFIC_CODE(O,D,S,T) do { O = ~D; } while (0)
-#define MM_SETUP() __m128i mm_constant_ones = _mm_cmpeq_epi32(mm_constant_ones, mm_constant_ones);
+#define MM_SETUP() static __m128i mm_constant_zeros; __m128i mm_constant_ones = _mm_cmpeq_epi32(mm_constant_zeros, mm_constant_zeros);
#define MM_SPECIFIC_CODE(O,D,S,T) do { _mm_storeu_si128(O,_mm_xor_si128(_mm_loadu_si128(D),mm_constant_ones)); } while (0 == 1)
#define S_CONST
#define T_CONST
@@ -153,7 +153,7 @@ static void invert_rop_run1(rop_run_op *op, byte *d, int len)
#define TEMPLATE_NAME invert_rop_run8
#define SPECIFIC_ROP 0x55
#define SPECIFIC_CODE(O,D,S,T) do { O = ~D; } while (0)
-#define MM_SETUP() __m128i mm_constant_ones = _mm_cmpeq_epi32(mm_constant_ones, mm_constant_ones);
+#define MM_SETUP() static __m128i mm_constant_zeros; __m128i mm_constant_ones = _mm_cmpeq_epi32(mm_constant_zeros, mm_constant_zeros);
#define MM_SPECIFIC_CODE(O,D,S,T) do { _mm_storeu_si128(O,_mm_xor_si128(_mm_loadu_si128(D),mm_constant_ones)); } while (0 == 1)
#define S_CONST
#define T_CONST
diff --git a/base/gsroprun1.h b/base/gsroprun1.h
index 251a2076..e44b77ad 100644
--- a/base/gsroprun1.h
+++ b/base/gsroprun1.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsroprun24.h b/base/gsroprun24.h
index 8baddb89..0afd02d8 100644
--- a/base/gsroprun24.h
+++ b/base/gsroprun24.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsroprun8.h b/base/gsroprun8.h
index f579903e..fdc1e5e2 100644
--- a/base/gsroprun8.h
+++ b/base/gsroprun8.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsropt.h b/base/gsropt.h
index d99c587b..65c6da87 100644
--- a/base/gsropt.h
+++ b/base/gsropt.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsroptab.c b/base/gsroptab.c
index 03091709..d768dd04 100644
--- a/base/gsroptab.c
+++ b/base/gsroptab.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsserial.c b/base/gsserial.c
index 6900e678..4eda39d1 100644
--- a/base/gsserial.c
+++ b/base/gsserial.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsserial.h b/base/gsserial.h
index a07120df..c30407b1 100644
--- a/base/gsserial.h
+++ b/base/gsserial.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsshade.c b/base/gsshade.c
index e6d036f5..50c72216 100644
--- a/base/gsshade.c
+++ b/base/gsshade.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsshade.h b/base/gsshade.h
index 8027cef5..55d7a46b 100644
--- a/base/gsshade.h
+++ b/base/gsshade.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gssprintf.h b/base/gssprintf.h
index cfd2e333..e71fa434 100644
--- a/base/gssprintf.h
+++ b/base/gssprintf.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsstate.c b/base/gsstate.c
index e48192ce..898b879e 100644
--- a/base/gsstate.c
+++ b/base/gsstate.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -22,7 +22,6 @@
#include "gsutil.h" /* for gs_next_ids */
#include "gzstate.h"
#include "gxcspace.h" /* here for gscolor2.h */
-#include "gsalpha.h"
#include "gscolor2.h"
#include "gscoord.h" /* for gs_initmatrix */
#include "gscie.h"
@@ -37,8 +36,10 @@
#include "gzcpath.h"
#include "gsovrc.h"
#include "gxcolor2.h"
+#include "gscolor3.h" /* for gs_smoothness() */
#include "gxpcolor.h"
#include "gsicc_manage.h"
+#include "gxdevsop.h"
/* Forward references */
static gs_gstate *gstate_alloc(gs_memory_t *, client_name_t,
@@ -232,7 +233,6 @@ gs_gstate_alloc(gs_memory_t * mem)
code = gs_nulldevice(pgs);
if (code < 0)
goto fail;
- gs_setalpha(pgs, 1.0);
gs_setfillconstantalpha(pgs, 1.0);
gs_setstrokeconstantalpha(pgs, 1.0);
gs_setalphaisshape(pgs, false);
@@ -319,8 +319,8 @@ gs_gsave(gs_gstate * pgs)
if (pgs->show_gstate == pgs)
pgs->show_gstate = pnew->show_gstate = pnew;
pgs->level++;
- if_debug2m('g', pgs->memory, "[g]gsave -> 0x%lx, level = %d\n",
- (ulong) pnew, pgs->level);
+ if_debug2m('g', pgs->memory, "[g]gsave -> "PRI_INTPTR", level = %d\n",
+ (intptr_t)pnew, pgs->level);
return 0;
}
@@ -378,8 +378,8 @@ gs_grestore_only(gs_gstate * pgs)
void *pdata = pgs->client_data;
void *sdata;
- if_debug2m('g', pgs->memory, "[g]grestore 0x%lx, level was %d\n",
- (ulong) saved, pgs->level);
+ if_debug2m('g', pgs->memory, "[g]grestore "PRI_INTPTR", level was %d\n",
+ (intptr_t)saved, pgs->level);
if (!saved)
return 1;
sdata = saved->client_data;
@@ -593,8 +593,11 @@ gs_gstate_update_overprint(gs_gstate * pgs, const gs_overprint_params_t * pparam
pgs->memory,
NULL);
if (code >= 0 || code == gs_error_handled){
- if (ovptdev != dev)
+ if (ovptdev != dev) {
gx_set_device_only(pgs, ovptdev);
+ /* Get rid of extra reference */
+ rc_decrement(ovptdev, "gs_gstate_update_overprint(ovptdev)");
+ }
code = 0;
}
}
@@ -635,11 +638,36 @@ gs_do_set_overprint(gs_gstate * pgs)
else {
gx_device* dev = pgs->device;
cmm_dev_profile_t* dev_profile;
+ gs_color_space_index pcs_index = gs_color_space_get_index(pcs);
dev_proc(dev, get_profile)(dev, &dev_profile);
- if (!dev_profile->sim_overprint || dev_profile->device_profile[0]->data_cs != gsCMYK)
+ if (!dev_profile->sim_overprint)
return code;
+ /* Transparency device that supports spots and where we have
+ sep or devicen colors needs special consideration if the device
+ is in a additive blend mode. This could
+ be written more compactly, but it would be unreadable. */
+ if (dev_proc(dev, dev_spec_op)(dev, gxdso_pdf14_sep_device, NULL, 0) &&
+ (dev->color_info.polarity != GX_CINFO_POLARITY_SUBTRACTIVE) &&
+ (pcs_index == gs_color_space_index_DeviceN ||
+ pcs_index == gs_color_space_index_Separation)) {
+ if (pcs_index == gs_color_space_index_Separation) {
+ if (!(pcs->params.separation.color_type == SEP_MIX ||
+ pcs->params.separation.color_type == SEP_ENUM)) {
+ /* Sep color is not a spot color. We can't do OP and trans */
+ return code;
+ }
+ }
+ if (pcs_index == gs_color_space_index_DeviceN) {
+ if (pcs->params.device_n.color_type != SEP_PURE_SPOT) {
+ /* DeviceN has process colors We can't do OP and trans. */
+ return code;
+ }
+ }
+
+ }
+
/* The spaces that do not allow opm (e.g. ones that are not ICC or DeviceCMYK)
will blow away any true setting later. But we have to be prepared
in case this is a CMYK ICC space for example. Hence we set effective mode
@@ -915,7 +943,46 @@ gs_initgraphics(gs_gstate * pgs)
}
pgs->in_cachedevice = 0;
+ code = gs_settextspacing(pgs, (double)0.0);
+ if (code < 0)
+ goto exit;
+ code = gs_settextleading(pgs, (double)0.0);
+ if (code < 0)
+ goto exit;
+
+ gs_settextrenderingmode(pgs, 0);
+
+ code = gs_setwordspacing(pgs, (double)0.0);
+ if (code < 0)
+ goto exit;
+ code = gs_settexthscaling(pgs, (double)100.0);
+ if (code < 0)
+ goto exit;
+
+ gs_setaccuratecurves(pgs, true);
+
+ code = gs_setstrokeconstantalpha(pgs, 1.0);
+ if (code < 0)
+ goto exit;
+ code = gs_setfillconstantalpha(pgs, 1.0);
+ if (code < 0)
+ goto exit;
+ code = gs_setalphaisshape(pgs, 0);
+ if (code < 0)
+ goto exit;
+ code = gs_setblendmode(pgs, BLEND_MODE_Compatible);
+ if (code < 0)
+ goto exit;
+ code = gs_settextknockout(pgs, true);
+ if (code < 0)
+ goto exit;
+ code = gs_setsmoothness(pgs, 0.02); /* Match gs code */
+ if (code < 0)
+ goto exit;
+
return 0;
+exit:
+ return code;
}
/* setfilladjust */
@@ -980,6 +1047,13 @@ gs_currenttextspacing(const gs_gstate *pgs)
int
gs_settextspacing(gs_gstate *pgs, double Tc)
{
+ int code = 0;
+ gs_fixed_point dxy;
+
+ code = gs_distance_transform2fixed(&pgs->ctm, Tc, 1, &dxy);
+ if (code < 0)
+ return code;
+
pgs->textspacing = (float)Tc;
return 0;
}
@@ -1279,7 +1353,7 @@ gstate_clone(gs_gstate * pfrom, gs_memory_t * mem, client_name_t cname,
return pgs;
fail:
if (pdata != NULL)
- (*pfrom->client_procs.free) (pdata, mem);
+ (*pfrom->client_procs.free) (pdata, mem, pgs);
memset(pgs->color, 0, 2*sizeof(gs_gstate_color));
gs_free_object(mem, pgs->line_params.dash.pattern, cname);
GSTATE_ASSIGN_PARTS(pgs, &parts);
@@ -1333,15 +1407,15 @@ gstate_free_contents(gs_gstate * pgs)
gx_cpath_free(pgs->view_clip, cname);
pgs->view_clip = NULL;
}
+ if (pgs->client_data != 0)
+ (*pgs->client_procs.free) (pgs->client_data, mem, pgs);
+ pgs->client_data = 0;
gs_swapcolors_quick(pgs);
cs_adjust_counts_icc(pgs, -1);
gs_swapcolors_quick(pgs);
cs_adjust_counts_icc(pgs, -1);
pgs->color[0].color_space = 0;
pgs->color[1].color_space = 0;
- if (pgs->client_data != 0)
- (*pgs->client_procs.free) (pgs->client_data, mem);
- pgs->client_data = 0;
gs_free_object(mem, pgs->line_params.dash.pattern, cname);
pgs->line_params.dash.pattern = 0;
gstate_free_parts(pgs, mem, cname); /* this also clears pointers to freed elements */
diff --git a/base/gsstate.h b/base/gsstate.h
index bf843074..4a4fe260 100644
--- a/base/gsstate.h
+++ b/base/gsstate.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsstrl.h b/base/gsstrl.h
index 8a5141aa..4b745e22 100644
--- a/base/gsstrl.h
+++ b/base/gsstrl.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsstrtok.h b/base/gsstrtok.h
index a49b84c0..8dded3d3 100644
--- a/base/gsstrtok.h
+++ b/base/gsstrtok.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsstruct.h b/base/gsstruct.h
index 3ef66410..a517a62d 100644
--- a/base/gsstruct.h
+++ b/base/gsstruct.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -146,8 +146,8 @@ struct gs_gc_root_s {
/* Print a root debugging message. */
#define if_debug_root(c, mem, msg, rp)\
- if_debug4m(c, mem, "%s 0x%lx: 0x%lx -> 0x%lx\n",\
- msg, (ulong)(rp), (ulong)(rp)->p, (ulong)*(rp)->p)
+ if_debug4m(c, mem, "%s "PRI_INTPTR": "PRI_INTPTR" -> "PRI_INTPTR"\n",\
+ msg, (intptr_t)(rp), (intptr_t)(rp)->p, (intptr_t)*(rp)->p)
/*
* We don't want to tie the allocator to using a single garbage collector,
diff --git a/base/gsstype.h b/base/gsstype.h
index 4642db17..c3548fdd 100644
--- a/base/gsstype.h
+++ b/base/gsstype.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gstext.c b/base/gstext.c
index c1fea18f..bb258d39 100644
--- a/base/gstext.c
+++ b/base/gstext.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -340,7 +340,9 @@ gs_text_begin(gs_gstate * pgs, const gs_text_params_t * text,
cmm_dev_profile_t* dev_profile;
dev_proc(dev, get_profile)(dev, &dev_profile);
- if (dev_profile->sim_overprint && dev_profile->device_profile[0]->data_cs == gsCMYK) {
+ if (dev_profile->sim_overprint &&
+ (dev_profile->device_profile[GS_DEFAULT_DEVICE_PROFILE]->data_cs == gsCMYK ||
+ dev_profile->device_profile[GS_DEFAULT_DEVICE_PROFILE]->data_cs == gsNCHANNEL)) {
if (pgs->text_rendering_mode == 0) {
op_params.op_state = OP_STATE_FILL;
gs_gstate_update_overprint(pgs, &op_params);
diff --git a/base/gstext.h b/base/gstext.h
index 4bf50a4a..a3317d0a 100644
--- a/base/gstext.h
+++ b/base/gstext.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gstiffio.c b/base/gstiffio.c
index 6828a615..5482d783 100644
--- a/base/gstiffio.c
+++ b/base/gstiffio.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -34,11 +34,12 @@
#define TIFF_PRINT_BUF_LENGTH 1024
static const char tifs_msg_truncated[] = "\n*** Previous line has been truncated.\n";
-/* place to hold the data for our libtiff i/o hooks */
+/* place to hold the data for our libtiff i/o hooks
+ */
typedef struct tifs_io_private_t
{
gp_file *f;
- gx_device_printer *pdev;
+ gs_memory_t *memory;
} tifs_io_private;
/* libtiff i/o hooks */
@@ -104,12 +105,13 @@ static int
gs_tifsCloseProc(thandle_t fd)
{
tifs_io_private *tiffio = (tifs_io_private *)fd;
- gx_device_printer *pdev = tiffio->pdev;
- int code = gp_fclose(tiffio->f);
-
- gs_free(pdev->memory, tiffio, sizeof(tifs_io_private), 1, "gs_tifsCloseProc");
- return code;
+ /* We don't close tiffio->f as this will be closed later by the
+ * device. */
+
+ gs_free(tiffio->memory, tiffio, sizeof(tifs_io_private), 1, "gs_tifsCloseProc");
+
+ return 0;
}
static uint64_t
@@ -122,12 +124,12 @@ gs_tifsSizeProc(thandle_t fd)
if (curpos < 0) {
return(0);
}
-
+
if (gp_fseek(tiffio->f, (gs_offset_t)0, SEEK_END) < 0) {
return(0);
}
length = (uint64_t)gp_ftell(tiffio->f);
-
+
if (gp_fseek(tiffio->f, curpos, SEEK_SET) < 0) {
return(0);
}
@@ -152,13 +154,13 @@ tiff_from_filep(gx_device_printer *dev, const char *name, gp_file *filep, int b
mode[modelen++] = '8';
mode[modelen] = (char)0;
-
+
tiffio = (tifs_io_private *)gs_malloc(dev->memory, sizeof(tifs_io_private), 1, "tiff_from_filep");
if (!tiffio) {
return NULL;
}
tiffio->f = filep;
- tiffio->pdev = dev;
+ tiffio->memory = dev->memory;
t = TIFFClientOpen(name, mode,
(thandle_t) tiffio, (TIFFReadWriteProc)gs_tifsReadProc,
@@ -173,16 +175,15 @@ static void
gs_tifsWarningHandlerEx(thandle_t client_data, const char* module, const char* fmt, va_list ap)
{
tifs_io_private *tiffio = (tifs_io_private *)client_data;
- gx_device_printer *pdev = tiffio->pdev;
int count;
char buf[TIFF_PRINT_BUF_LENGTH];
count = vsnprintf(buf, sizeof(buf), fmt, ap);
- if (count >= sizeof(buf) || count < 0) { /* C99 || MSVC */
- dmlprintf1(pdev->memory, "%s", buf);
- dmlprintf1(pdev->memory, "%s\n", tifs_msg_truncated);
+ if (count < 0 || count >= sizeof(buf)) { /* MSVC || C99 */
+ dmlprintf1(tiffio->memory, "%s", buf);
+ dmlprintf1(tiffio->memory, "%s\n", tifs_msg_truncated);
} else {
- dmlprintf1(pdev->memory, "%s\n", buf);
+ dmlprintf1(tiffio->memory, "%s\n", buf);
}
}
@@ -190,22 +191,21 @@ static void
gs_tifsErrorHandlerEx(thandle_t client_data, const char* module, const char* fmt, va_list ap)
{
tifs_io_private *tiffio = (tifs_io_private *)client_data;
- gx_device_printer *pdev = tiffio->pdev;
const char *max_size_error = "Maximum TIFF file size exceeded";
int count;
char buf[TIFF_PRINT_BUF_LENGTH];
count = vsnprintf(buf, sizeof(buf), fmt, ap);
- if (count >= sizeof(buf) || count < 0) { /* C99 || MSVC */
- dmlprintf1(pdev->memory, "%s\n", buf);
- dmlprintf1(pdev->memory, "%s", tifs_msg_truncated);
+ if (count < 0 || count >= sizeof(buf) ) { /* MSVC || C99 */
+ dmlprintf1(tiffio->memory, "%s\n", buf);
+ dmlprintf1(tiffio->memory, "%s", tifs_msg_truncated);
} else {
- dmlprintf1(pdev->memory, "%s\n", buf);
+ dmlprintf1(tiffio->memory, "%s\n", buf);
}
#if (TIFFLIB_VERSION >= 20111221)
if (!strncmp(fmt, max_size_error, strlen(max_size_error))) {
- dmlprintf(pdev->memory, "Use -dUseBigTIFF(=true) for BigTIFF output\n");
+ dmlprintf(tiffio->memory, "Use -dUseBigTIFF(=true) for BigTIFF output\n");
}
#endif
}
@@ -242,7 +242,7 @@ TIFFOpen(const char* name, const char* mode)
{
(void)name;
(void)mode;
-
+
return(NULL);
}
diff --git a/base/gstiffio.h b/base/gstiffio.h
index df40fe58..d71ec81e 100644
--- a/base/gstiffio.h
+++ b/base/gstiffio.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gstparam.h b/base/gstparam.h
index e8aa4fb3..44093bc9 100644
--- a/base/gstparam.h
+++ b/base/gstparam.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -72,12 +72,16 @@ typedef struct gs_transparency_group_params_s {
const gs_color_space *ColorSpace;
bool Isolated;
bool Knockout;
+ float group_shape;
+ float group_opacity;
bool image_with_SMask;
int text_group;
+ bool shade_group;
+ bool page_group;
bool idle;
uint mask_id;
int group_color_numcomps;
- gs_transparency_color_t group_color;
+ gs_transparency_color_t group_color_type;
int64_t icc_hashcode; /* Needed when we are doing clist reading */
cmm_profile_t *iccprofile; /* The profile */
} gs_transparency_group_params_t;
@@ -115,7 +119,7 @@ typedef struct gs_transparency_mask_params_s {
typedef struct gx_transparency_mask_params_s {
gs_transparency_mask_subtype_t subtype;
int group_color_numcomps;
- gs_transparency_color_t group_color;
+ gs_transparency_color_t group_color_type;
int Background_components;
int Matte_components;
float Background[GS_CLIENT_COLOR_MAX_COMPONENTS];
diff --git a/base/gstrans.c b/base/gstrans.c
index 8c4fca30..cb3f2ce6 100644
--- a/base/gstrans.c
+++ b/base/gstrans.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -40,7 +40,7 @@ gs_setblendmode(gs_gstate *pgs, gs_blend_mode_t mode)
if (gs_debug_c('v')) {
static const char *const bm_names[] = { GS_BLEND_MODE_NAMES };
- dmlprintf1(pgs->memory, "[v](0x%lx)blend_mode = ", (long)pgs);
+ dmlprintf1(pgs->memory, "[v]("PRI_INTPTR")blend_mode = ", (intptr_t)pgs);
if (mode >= 0 && mode < countof(bm_names))
dmprintf1(pgs->memory, "%s\n", bm_names[mode]);
else
@@ -65,38 +65,10 @@ gs_currentblendmode(const gs_gstate *pgs)
}
int
-gs_setopacityalpha(gs_gstate *pgs, double alpha)
-{
- if_debug2m('v', pgs->memory, "[v](0x%lx)opacity.alpha = %g\n", (ulong)pgs, alpha);
- pgs->opacity.alpha = (alpha < 0.0 ? 0.0 : alpha > 1.0 ? 1.0 : alpha);
- return 0;
-}
-
-float
-gs_currentopacityalpha(const gs_gstate *pgs)
-{
- return pgs->opacity.alpha;
-}
-
-int
-gs_setshapealpha(gs_gstate *pgs, double alpha)
-{
- if_debug2m('v', pgs->memory, "[v](0x%lx)shape.alpha = %g\n", (ulong)pgs, alpha);
- pgs->shape.alpha = (alpha < 0.0 ? 0.0 : alpha > 1.0 ? 1.0 : alpha);
- return 0;
-}
-
-float
-gs_currentshapealpha(const gs_gstate *pgs)
-{
- return pgs->shape.alpha;
-}
-
-int
gs_settextknockout(gs_gstate *pgs, bool knockout)
{
- if_debug2m('v', pgs->memory, "[v](0x%lx)text_knockout = %s\n",
- (ulong)pgs, (knockout ? "true" : "false"));
+ if_debug2m('v', pgs->memory, "[v]("PRI_INTPTR")text_knockout = %s\n",
+ (intptr_t)pgs, (knockout ? "true" : "false"));
pgs->text_knockout = knockout;
return 0;
}
@@ -193,15 +165,19 @@ gs_gstate_update_pdf14trans(gs_gstate * pgs, gs_pdf14trans_params_t * pparams)
}
void
-gs_trans_group_params_init(gs_transparency_group_params_t *ptgp)
+gs_trans_group_params_init(gs_transparency_group_params_t *ptgp, float opacity)
{
ptgp->ColorSpace = NULL; /* bogus, but can't do better */
ptgp->Isolated = false;
ptgp->Knockout = false;
+ ptgp->page_group = false;
ptgp->text_group = PDF14_TEXTGROUP_NO_BT;
ptgp->image_with_SMask = false;
ptgp->mask_id = 0;
ptgp->iccprofile = NULL;
+ ptgp->group_opacity = opacity;
+ ptgp->group_shape = 1.0;
+ ptgp->shade_group = false;
}
int
@@ -235,11 +211,14 @@ gs_begin_transparency_group(gs_gstate *pgs,
params.pdf14_op = group_type;
params.Isolated = ptgp->Isolated;
params.Knockout = ptgp->Knockout;
+ if (group_type == PDF14_BEGIN_TRANS_PAGE_GROUP)
+ params.page_group = true;
params.image_with_SMask = ptgp->image_with_SMask;
- params.opacity = pgs->opacity;
- params.shape = pgs->shape;
+ params.opacity = ptgp->group_opacity;
+ params.shape = ptgp->group_shape;
params.blend_mode = pgs->blend_mode;
params.text_group = ptgp->text_group;
+ params.shade_group = ptgp->shade_group;
/* This function is called during the c-list writer side.
Store some information so that we know what the color space is
so that we can adjust according later during the clist reader.
@@ -264,11 +243,14 @@ gs_begin_transparency_group(gs_gstate *pgs,
target device (process color model). Here we just want
to set it as a unknown type for clist writing, as we will take care
of using the parent group color space later during clist reading.
- */
-
+ Also, if the group was not isolated we MUST use the parent group
+ color space regardless of what the group color space is specified to be.
+ Note that the page group should always be isolated */
+ if (group_type == PDF14_BEGIN_TRANS_PAGE_GROUP)
+ params.Isolated = true;
if (ptgp->ColorSpace == NULL || params.Isolated != true) {
- params.group_color = UNKNOWN;
+ params.group_color_type = UNKNOWN;
params.group_color_numcomps = 0;
} else {
/* The /CS parameter was present. Use what was set. Currently
@@ -283,7 +265,7 @@ gs_begin_transparency_group(gs_gstate *pgs,
/* Blending space is ICC based. If we are doing c-list rendering
we will need to write this color space into the clist.
*/
- params.group_color = ICC;
+ params.group_color_type = ICC;
params.group_color_numcomps =
blend_color_space->cmm_icc_profile_data->num_comps;
/* Get the ICC profile */
@@ -306,12 +288,12 @@ gs_begin_transparency_group(gs_gstate *pgs,
/* We can end up here if we are in a deviceN color space and
we have a sep output device */
profile = NULL;
- params.group_color = DEVICEN;
+ params.group_color_type = DEVICEN;
params.group_color_numcomps = cs_num_components(blend_color_space);
break;
}
if (profile != NULL) {
- params.group_color = ICC;
+ params.group_color_type = ICC;
params.group_color_numcomps = profile->num_comps;
params.iccprofile = profile;
params.icc_hash = profile->hashcode;
@@ -323,16 +305,16 @@ gs_begin_transparency_group(gs_gstate *pgs,
static const char *const cs_names[] = {
GS_COLOR_SPACE_TYPE_NAMES
};
- dmlprintf6(pgs->memory, "[v](0x%lx)begin_transparency_group [%g %g %g %g] Num_grp_clr_comp = %d\n",
- (ulong)pgs, pbbox->p.x, pbbox->p.y, pbbox->q.x, pbbox->q.y,params.group_color_numcomps);
+ dmlprintf6(pgs->memory, "[v]("PRI_INTPTR")begin_transparency_group [%g %g %g %g] Num_grp_clr_comp = %d\n",
+ (intptr_t)pgs, pbbox->p.x, pbbox->p.y, pbbox->q.x, pbbox->q.y,params.group_color_numcomps);
if (ptgp->ColorSpace)
dmprintf1(pgs->memory, " CS = %s",
cs_names[(int)gs_color_space_get_index(ptgp->ColorSpace)]);
else
dmputs(pgs->memory, " (no CS)");
- dmprintf3(pgs->memory, " Isolated = %d Knockout = %d text_group = %d\n",
- ptgp->Isolated, ptgp->Knockout, ptgp->text_group);
+ dmprintf4(pgs->memory, " Isolated = %d Knockout = %d text_group = %d page_group = %d\n",
+ ptgp->Isolated, ptgp->Knockout, ptgp->text_group, ptgp->page_group);
}
#endif
params.bbox = *pbbox;
@@ -351,18 +333,21 @@ gx_begin_transparency_group(gs_gstate * pgs, gx_device * pdev,
return_error(gs_error_rangecheck);
tgp.Isolated = pparams->Isolated;
tgp.Knockout = pparams->Knockout;
+ tgp.page_group = pparams->page_group;
tgp.idle = pparams->idle;
tgp.mask_id = pparams->mask_id;
tgp.text_group = pparams->text_group;
+ tgp.shade_group = pparams->shade_group;
/* Needed so that we do proper blending */
- tgp.group_color = pparams->group_color;
+ tgp.group_color_type = pparams->group_color_type;
tgp.group_color_numcomps = pparams->group_color_numcomps;
tgp.iccprofile = pparams->iccprofile;
tgp.icc_hashcode = pparams->icc_hash;
- pgs->opacity.alpha = pparams->opacity.alpha;
- pgs->shape.alpha = pparams->shape.alpha;
+ tgp.group_opacity = pparams->opacity;
+ tgp.group_shape = pparams->shape;
+
pgs->blend_mode = pparams->blend_mode;
bbox = pparams->bbox;
#ifdef DEBUG
@@ -370,18 +355,20 @@ gx_begin_transparency_group(gs_gstate * pgs, gx_device * pdev,
static const char *const cs_names[] = {
GS_COLOR_SPACE_TYPE_NAMES
};
- dmlprintf6(pdev->memory, "[v](0x%lx)gx_begin_transparency_group [%g %g %g %g] Num_grp_clr_comp = %d\n",
- (ulong)pgs, bbox.p.x, bbox.p.y, bbox.q.x, bbox.q.y,
- pparams->group_color_numcomps);
+ dmlprintf6(pdev->memory, "[v]("PRI_INTPTR")gx_begin_transparency_group [%g %g %g %g] Num_grp_clr_comp = %d\n",
+ (intptr_t)pgs, bbox.p.x, bbox.p.y, bbox.q.x, bbox.q.y,
+ pparams->group_color_numcomps);
+ dmlprintf2(pdev->memory, " opacity = %g shape = %g\n", pparams->opacity, pparams->shape);
if (tgp.ColorSpace)
dmprintf1(pdev->memory, " CS = %s",
cs_names[(int)gs_color_space_get_index(tgp.ColorSpace)]);
else
dmputs(pdev->memory, " (no CS)");
- dmprintf2(pdev->memory, " Isolated = %d Knockout = %d\n",
- tgp.Isolated, tgp.Knockout);
+ dmprintf3(pdev->memory, " Isolated = %d Knockout = %d page_group = %d\n",
+ tgp.Isolated, tgp.Knockout, tgp.page_group);
if (tgp.iccprofile)
dmprintf(pdev->memory, " Have ICC Profile for blending\n");
+
}
#endif
return (*dev_proc(pdev, begin_transparency_group)) (pdev, &tgp, &bbox, pgs,
@@ -601,9 +588,9 @@ gs_begin_transparency_mask(gs_gstate * pgs,
return_error(gs_error_VMerror);
blend_color_space->cmm_icc_profile_data = pgs->icc_manager->default_gray;
gsicc_adjust_profile_rc(blend_color_space->cmm_icc_profile_data, 1, "gs_begin_transparency_mask");
- if_debug9m('v', pgs->memory, "[v](0x%lx)gs_begin_transparency_mask [%g %g %g %g]\n\
- subtype = %d Background_components = %d, Matte_components = %d, %s\n",
- (ulong)pgs, pbbox->p.x, pbbox->p.y, pbbox->q.x, pbbox->q.y,
+ if_debug9m('v', pgs->memory, "[v]("PRI_INTPTR")gs_begin_transparency_mask [%g %g %g %g]\n"
+ " subtype = %d Background_components = %d, Matte_components = %d, %s\n",
+ (intptr_t)pgs, pbbox->p.x, pbbox->p.y, pbbox->q.x, pbbox->q.y,
(int)ptmp->subtype, ptmp->Background_components,
ptmp->Matte_components,
(ptmp->TransferFunction == mask_transfer_identity ? "no TR" :
@@ -637,7 +624,7 @@ gs_begin_transparency_mask(gs_gstate * pgs,
if ( blend_color_space->cmm_icc_profile_data != NULL ) {
/* Blending space is ICC based. If we are doing c-list rendering we will
need to write this color space into the clist. */
- params.group_color = ICC;
+ params.group_color_type = ICC;
params.group_color_numcomps =
blend_color_space->cmm_icc_profile_data->num_comps;
/* Get the ICC profile */
@@ -647,7 +634,7 @@ gs_begin_transparency_mask(gs_gstate * pgs,
params.iccprofile = blend_color_space->cmm_icc_profile_data;
params.icc_hash = blend_color_space->cmm_icc_profile_data->hashcode;
} else {
- params.group_color = GRAY_SCALE;
+ params.group_color_type = GRAY_SCALE;
params.group_color_numcomps = 1; /* Need to check */
}
/* Explicitly decrement the profile data since blend_color_space may not
@@ -669,7 +656,7 @@ gx_begin_transparency_mask(gs_gstate * pgs, gx_device * pdev,
const int l = sizeof(pparams->Background[0]) * pparams->Background_components;
const int m = sizeof(pparams->Matte[0]) * pparams->Matte_components;
- tmp.group_color = pparams->group_color;
+ tmp.group_color_type = pparams->group_color_type;
tmp.subtype = pparams->subtype;
tmp.group_color_numcomps = pparams->group_color_numcomps;
tmp.Background_components = pparams->Background_components;
@@ -682,7 +669,7 @@ gx_begin_transparency_mask(gs_gstate * pgs, gx_device * pdev,
tmp.replacing = pparams->replacing;
tmp.mask_id = pparams->mask_id;
- if (tmp.group_color == ICC ) {
+ if (tmp.group_color_type == ICC ) {
/* Do I need to ref count here? */
tmp.iccprofile = pparams->iccprofile;
tmp.icc_hashcode = pparams->icc_hash;
@@ -692,9 +679,9 @@ gx_begin_transparency_mask(gs_gstate * pgs, gx_device * pdev,
}
memcpy(tmp.transfer_fn, pparams->transfer_fn, size_of(tmp.transfer_fn));
if_debug10m('v', pgs->memory,
- "[v](0x%lx)gx_begin_transparency_mask [%g %g %g %g]\n"
+ "[v]("PRI_INTPTR")gx_begin_transparency_mask [%g %g %g %g]\n"
" subtype = %d Background_components = %d Matte_components = %d Num_grp_clr_comp = %d %s\n",
- (ulong)pgs, pparams->bbox.p.x, pparams->bbox.p.y,
+ (intptr_t)pgs, pparams->bbox.p.x, pparams->bbox.p.y,
pparams->bbox.q.x, pparams->bbox.q.y,
(int)tmp.subtype, tmp.Background_components, tmp.Matte_components,
tmp.group_color_numcomps,
@@ -729,7 +716,7 @@ gs_end_transparency_mask(gs_gstate *pgs,
if_debug1m('v', pgs->memory,
"[v]xstate_changed set true, gstate level is %d\n", pgs->level);
if_debug2m('v', pgs->memory,
- "[v](0x%lx)gs_end_transparency_mask(%d)\n", (ulong)pgs,
+ "[v]("PRI_INTPTR")gs_end_transparency_mask(%d)\n", (intptr_t)pgs,
(int)csel);
params.pdf14_op = PDF14_END_TRANS_MASK; /* Other parameters not used */
params.csel = csel;
@@ -747,7 +734,7 @@ gx_end_transparency_mask(gs_gstate * pgs, gx_device * pdev,
const gs_pdf14trans_params_t * pparams)
{
if_debug2m('v', pgs->memory,
- "[v](0x%lx)gx_end_transparency_mask(%d)\n", (ulong)pgs,
+ "[v]("PRI_INTPTR")gx_end_transparency_mask(%d)\n", (intptr_t)pgs,
(int)pparams->csel);
return (*dev_proc(pdev, end_transparency_mask)) (pdev, pgs);
}
@@ -846,7 +833,7 @@ gs_abort_pdf14trans_device(gs_gstate * pgs)
int
gx_abort_trans_device(gs_gstate * pgs, gx_device * pdev)
{
- if_debug1m('v', pgs->memory, "[v](0x%lx)gx_abort_trans_device\n", (ulong)pgs);
+ if_debug1m('v', pgs->memory, "[v]("PRI_INTPTR")gx_abort_trans_device\n", (intptr_t)pgs);
return (*dev_proc(pdev, discard_transparency_layer)) (pdev, pgs);
}
diff --git a/base/gstrans.h b/base/gstrans.h
index 3dc72983..a441bbef 100644
--- a/base/gstrans.h
+++ b/base/gstrans.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -69,8 +69,7 @@ typedef enum {
/* Bit definitions for serializing PDF 1.4 parameters */
#define PDF14_SET_BLEND_MODE (1 << 0)
#define PDF14_SET_TEXT_KNOCKOUT (1 << 1)
-#define PDF14_SET_SHAPE_ALPHA (1 << 2)
-#define PDF14_SET_OPACITY_ALPHA (1 << 3)
+#define PDF14_SET_AIS (1 << 2)
#define PDF14_SET_OVERPRINT (1 << 4)
#define PDF14_SET_FILLCONSTANTALPHA (1 << 6)
#define PDF14_SET_STROKECONSTANTALPHA (1 << 7)
@@ -88,10 +87,6 @@ typedef enum {
PDF14_TEXTGROUP_MISSING_ET /* We pushed a group already and then had another BT occur */
} pdf14_text_group_state;
-typedef struct gs_transparency_source_s {
- float alpha; /* constant alpha */
-} gs_transparency_source_t;
-
struct gs_pdf14trans_params_s {
/* The type of trasnparency operation */
pdf14_compositor_operations pdf14_op;
@@ -124,8 +119,11 @@ struct gs_pdf14trans_params_s {
gs_blend_mode_t blend_mode;
bool text_knockout;
int text_group;
- gs_transparency_source_t opacity;
- gs_transparency_source_t shape;
+ bool page_group;
+ bool ais;
+ bool shade_group;
+ float opacity;
+ float shape;
float fillconstantalpha;
float strokeconstantalpha;
bool mask_is_image;
@@ -138,7 +136,7 @@ struct gs_pdf14trans_params_s {
bool idle; /* For clist reader.*/
uint mask_id; /* For clist reader.*/
int group_color_numcomps;
- gs_transparency_color_t group_color;
+ gs_transparency_color_t group_color_type;
int64_t icc_hash;
cmm_profile_t *iccprofile; /* The profile */
bool crop_blend_params; /* This is used when the blend params are updated
@@ -160,10 +158,6 @@ typedef struct gs_pdf14trans_s {
/* Access transparency-related graphics state elements. */
int gs_setblendmode(gs_gstate *, gs_blend_mode_t);
gs_blend_mode_t gs_currentblendmode(const gs_gstate *);
-int gs_setopacityalpha(gs_gstate *, double);
-float gs_currentopacityalpha(const gs_gstate *);
-int gs_setshapealpha(gs_gstate *, double);
-float gs_currentshapealpha(const gs_gstate *);
int gs_settextknockout(gs_gstate *, bool);
bool gs_currenttextknockout(const gs_gstate *);
@@ -177,7 +171,7 @@ int gs_pop_pdf14trans_device(gs_gstate * pgs, bool is_pattern);
int gs_abort_pdf14trans_device(gs_gstate * pgs);
-void gs_trans_group_params_init(gs_transparency_group_params_t *ptgp);
+void gs_trans_group_params_init(gs_transparency_group_params_t *ptgp, float opacity);
int gs_update_trans_marking_params(gs_gstate * pgs);
diff --git a/base/gstrap.c b/base/gstrap.c
index a98534c3..7ae01e32 100644
--- a/base/gstrap.c
+++ b/base/gstrap.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gstrap.h b/base/gstrap.h
index 68010171..9a29fe74 100644
--- a/base/gstrap.h
+++ b/base/gstrap.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gstype1.c b/base/gstype1.c
index f45b7b1e..a8508623 100644
--- a/base/gstype1.c
+++ b/base/gstype1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -218,9 +218,9 @@ gs_type1_interpret(gs_type1_state * pcis, const gs_glyph_data_t *pgd,
{char1_command_names};
if (c1names[c] == 0)
- dmlprintf2(pfont->memory, "[1]0x%lx: %02x??\n", (ulong) (cip - 1), c);
+ dmlprintf2(pfont->memory, "[1]"PRI_INTPTR": %02x??\n", (intptr_t)(cip - 1), c);
else
- dmlprintf3(pfont->memory, "[1]0x%lx: %02x %s\n", (ulong) (cip - 1), c,
+ dmlprintf3(pfont->memory, "[1]"PRI_INTPTR": %02x %s\n", (intptr_t)(cip - 1), c,
c1names[c]);
}
#endif
@@ -400,11 +400,11 @@ rsbw: /* Give the caller the opportunity to intervene. */
{char1_extended_command_names};
if (ce1names[c] == 0)
- dmlprintf2(pfont->memory, "[1]0x%lx: %02x??\n",
- (ulong) (cip - 1), c);
+ dmlprintf2(pfont->memory, "[1]"PRI_INTPTR": %02x??\n",
+ (intptr_t)(cip - 1), c);
else
- dmlprintf3(pfont->memory, "[1]0x%lx: %02x %s\n",
- (ulong) (cip - 1), c, ce1names[c]);
+ dmlprintf3(pfont->memory, "[1]"PRI_INTPTR": %02x %s\n",
+ (intptr_t)(cip - 1), c, ce1names[c]);
}
#endif
switch ((char1_extended_command) c) {
diff --git a/base/gstype1.h b/base/gstype1.h
index e171d9fc..e88be5cc 100644
--- a/base/gstype1.h
+++ b/base/gstype1.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gstype2.c b/base/gstype2.c
index c8b1b7b1..870e13dd 100644
--- a/base/gstype2.c
+++ b/base/gstype2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -219,11 +219,11 @@ gs_type2_interpret(gs_type1_state * pcis, const gs_glyph_data_t *pgd,
{char2_command_names};
if (c2names[c] == 0)
- dmlprintf2(pfont->memory, "[1]0x%lx: %02x??\n",
- (ulong) (cip - 1), c);
+ dmlprintf2(pfont->memory, "[1]"PRI_INTPTR": %02x??\n",
+ (intptr_t)(cip - 1), c);
else
- dmlprintf3(pfont->memory, "[1]0x%lx: %02x %s\n",
- (ulong) (cip - 1), c, c2names[c]);
+ dmlprintf3(pfont->memory, "[1]"PRI_INTPTR": %02x %s\n",
+ (intptr_t)(cip - 1), c, c2names[c]);
}
#endif
switch ((char_command) c) {
@@ -593,11 +593,11 @@ gs_type2_interpret(gs_type1_state * pcis, const gs_glyph_data_t *pgd,
{char2_extended_command_names};
if (ce2names[c] == 0)
- dmlprintf2(pfont->memory, "[1]0x%lx: %02x??\n",
- (ulong) (cip - 1), c);
+ dmlprintf2(pfont->memory, "[1]"PRI_INTPTR": %02x??\n",
+ (intptr_t)(cip - 1), c);
else
- dmlprintf3(pfont->memory, "[1]0x%lx: %02x %s\n",
- (ulong) (cip - 1), c, ce2names[c]);
+ dmlprintf3(pfont->memory, "[1]"PRI_INTPTR": %02x %s\n",
+ (intptr_t)(cip - 1), c, ce2names[c]);
}
#endif
switch ((char2_extended_command) c) {
diff --git a/base/gstype42.c b/base/gstype42.c
index 3b8761de..55889201 100644
--- a/base/gstype42.c
+++ b/base/gstype42.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -270,8 +270,8 @@ gs_type42_font_init(gs_font_type42 * pfont, int subfontID)
}
}
loca_size >>= pfont->data.indexToLocFormat + 1;
- pfont->data.numGlyphs = (loca_size == 0 ? 0 : loca_size - 1);
- if (pfont->data.numGlyphs > pfont->data.trueNumGlyphs) {
+ pfont->data.numGlyphs = loca_size - 1;
+ if (pfont->data.numGlyphs > (int)pfont->data.trueNumGlyphs) {
/* pfont->key_name.chars is ASCIIZ due to copy_font_name. */
char buf[gs_font_name_max + 2];
@@ -353,16 +353,24 @@ gs_type42_font_init(gs_font_type42 * pfont, int subfontID)
/* Since 'loca' is usually sorted, first try the simple linear scan to */
/* avoid the need to perform the more expensive process. */
glyph_start = get_glyph_offset(pfont, 0);
- for (i = 1; i < loca_size; i++) {
- glyph_offset = get_glyph_offset(pfont, i);
- glyph_length = glyph_offset - glyph_start;
- if (glyph_length > 0x80000000)
- break;
- if (glyph_offset > glyph_size)
- break;
- /* out of order loca */
- pfont->data.len_glyphs[i - 1] = glyph_length;
- glyph_start = glyph_offset;
+ if (loca_size > 1) {
+ for (i = 1; i < loca_size; i++) {
+ glyph_offset = get_glyph_offset(pfont, i);
+ glyph_length = glyph_offset - glyph_start;
+ if (glyph_length > 0x80000000)
+ break;
+ if (glyph_offset > glyph_size)
+ break;
+ /* out of order loca */
+ pfont->data.len_glyphs[i - 1] = glyph_length;
+ glyph_start = glyph_offset;
+ }
+ }
+ else {
+ /* This is purely so broken fonts don't cause an uninitialized
+ memory access later on.
+ */
+ pfont->data.len_glyphs[0] = 0;
}
if (i < loca_size) {
/*
diff --git a/base/gstypes.h b/base/gstypes.h
index d25c9597..cd163b9d 100644
--- a/base/gstypes.h
+++ b/base/gstypes.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsuid.h b/base/gsuid.h
index e807791d..1f0632c7 100644
--- a/base/gsuid.h
+++ b/base/gsuid.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsutil.c b/base/gsutil.c
index 8d9c8679..3b7870f1 100644
--- a/base/gsutil.c
+++ b/base/gsutil.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsutil.h b/base/gsutil.h
index f538a752..e3269311 100644
--- a/base/gsutil.h
+++ b/base/gsutil.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gswin.rc b/base/gswin.rc
index a8977bc7..5ba2d341 100644
--- a/base/gswin.rc
+++ b/base/gswin.rc
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gsxfont.h b/base/gsxfont.h
index 97309e85..ef45a1a3 100644
--- a/base/gsxfont.h
+++ b/base/gsxfont.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gx.h b/base/gx.h
index ce9eb5b8..60a411aa 100644
--- a/base/gx.h
+++ b/base/gx.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxacpath.c b/base/gxacpath.c
index ebed0eb6..fe9184ad 100644
--- a/base/gxacpath.c
+++ b/base/gxacpath.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -338,9 +338,9 @@ accum_close(gx_device * dev)
(adev->list.count <= 1 ? &adev->list.single : adev->list.head);
dmlprintf6(dev->memory,
- "[q]list at 0x%lx, count=%d, head=0x%lx, tail=0x%lx, xrange=(%d,%d):\n",
- (ulong) & adev->list, adev->list.count,
- (ulong) adev->list.head, (ulong) adev->list.tail,
+ "[q]list at "PRI_INTPTR", count=%d, head="PRI_INTPTR", tail="PRI_INTPTR", xrange=(%d,%d):\n",
+ (intptr_t)&adev->list, adev->list.count,
+ (intptr_t)adev->list.head, (intptr_t)adev->list.tail,
adev->list.xmin, adev->list.xmax);
while (rp != 0) {
clip_rect_print('q', " ", rp);
@@ -348,7 +348,7 @@ accum_close(gx_device * dev)
}
}
if (!clip_list_validate(&adev->list)) {
- mlprintf1(dev->memory, "[q]Bad clip list 0x%lx!\n", (ulong) & adev->list);
+ mlprintf1(dev->memory, "[q]Bad clip list "PRI_INTPTR"!\n", (intptr_t)&adev->list);
return_error(gs_error_Fatal);
}
#endif
@@ -431,9 +431,8 @@ accum_alloc_rect(gx_device_cpath_accum * adev)
#define ACCUM_ALLOC(s, ar, px, py, qx, qy)\
if (++(adev->list.count) == 1)\
ar = &adev->list.single;\
- else if ((ar = accum_alloc_rect(adev)) == 0)\
- return_error(gs_error_VMerror);\
- ACCUM_SET(s, ar, px, py, qx, qy)
+ ar = accum_alloc_rect(adev);\
+ if (ar) ACCUM_SET(s, ar, px, py, qx, qy)
#define ACCUM_SET(s, ar, px, py, qx, qy)\
(ar)->xmin = px, (ar)->ymin = py, (ar)->xmax = qx, (ar)->ymax = qy;\
clip_rect_print('Q', s, ar)
@@ -537,6 +536,7 @@ top:
return 0;
}
ACCUM_ALLOC("app.y", nr, x, y, xe, ye);
+ if (!nr) return_error(gs_error_VMerror);
ACCUM_ADD_LAST(nr);
return 0;
} else if (y == rptr->ymin && ye == rptr->ymax && x >= rptr->xmin) {
@@ -546,10 +546,12 @@ top:
return 0;
}
ACCUM_ALLOC("app.x", nr, x, y, xe, ye);
+ if (!nr) return_error(gs_error_VMerror);
ACCUM_ADD_LAST(nr);
return 0;
}
ACCUM_ALLOC("accum", nr, x, y, xe, ye);
+ if (!nr) return_error(gs_error_VMerror);
/* Previously we used to always search back from the tail here. Now we
* base our search on the previous insertion point, in the hopes that
* locality of reference will save us time. */
@@ -579,6 +581,10 @@ top:
}
/* Split off the top part of the new rectangle. */
ACCUM_ALLOC("a.top", ar, x, ymax, xe, ye);
+ if (!ar) {
+ if (nr != &adev->list.single) ACCUM_FREE("free", nr);
+ return_error(gs_error_VMerror);
+ }
ACCUM_ADD_AFTER(ar, rptr);
ye = nr->ymax = ymax;
clip_rect_print('Q', " ymax", nr);
@@ -592,6 +598,10 @@ top:
while (rsplit->ymax == ymax) {
ACCUM_ALLOC("s.top", ar, rsplit->xmin, ye, rsplit->xmax, ymax);
+ if (!ar) {
+ if (nr != &adev->list.single) ACCUM_FREE("free", nr);
+ return_error(gs_error_VMerror);
+ }
ACCUM_ADD_AFTER(ar, rptr);
rsplit->ymax = ye;
rsplit = rsplit->prev;
@@ -606,6 +616,10 @@ top:
rbot = rbot->prev;
for (rsplit = rbot;;) {
ACCUM_ALLOC("s.bot", ar, rsplit->xmin, ymin, rsplit->xmax, y);
+ if (!ar) {
+ if (nr != &adev->list.single) ACCUM_FREE("free", nr);
+ return_error(gs_error_VMerror);
+ }
ACCUM_ADD_BEFORE(ar, rbot);
rsplit->ymin = y;
if (rsplit == rptr)
diff --git a/base/gxalloc.h b/base/gxalloc.h
index e81c2988..dd164756 100644
--- a/base/gxalloc.h
+++ b/base/gxalloc.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -220,8 +220,8 @@ extern_st(st_clump);
}\
}\
if ( pre != end )\
- { lprintf2("Clump parsing error, 0x%lx != 0x%lx\n",\
- (ulong)pre, (ulong)end);\
+ { lprintf2("Clump parsing error, "PRI_INTPTR" != "PRI_INTPTR"\n",\
+ (intptr_t)pre, (intptr_t)end);\
/*gs_abort((const gs_memory_t *)NULL);*/ \
}\
}
@@ -276,15 +276,15 @@ void alloc_free_clump(clump_t *, gs_ref_memory_t *);
/* Unfortunately, the ANSI C preprocessor doesn't allow us to */
/* define the list of variables being printed as a macro. */
#define dprintf_clump_format\
- "%s 0x%lx (0x%lx..0x%lx, 0x%lx..0x%lx..0x%lx)\n"
+ "%s "PRI_INTPTR" ("PRI_INTPTR".."PRI_INTPTR", "PRI_INTPTR".."PRI_INTPTR".."PRI_INTPTR")\n"
#define dmprintf_clump(mem, msg, cp)\
dmprintf7(mem, dprintf_clump_format,\
- msg, (ulong)(cp), (ulong)(cp)->cbase, (ulong)(cp)->cbot,\
- (ulong)(cp)->ctop, (ulong)(cp)->climit, (ulong)(cp)->cend)
+ msg, (intptr_t)(cp), (intptr_t)(cp)->cbase, (intptr_t)(cp)->cbot,\
+ (intptr_t)(cp)->ctop, (intptr_t)(cp)->climit, (intptr_t)(cp)->cend)
#define if_debug_clump(c, mem, msg, cp)\
if_debug7m(c, mem,dprintf_clump_format,\
- msg, (ulong)(cp), (ulong)(cp)->cbase, (ulong)(cp)->cbot,\
- (ulong)(cp)->ctop, (ulong)(cp)->climit, (ulong)(cp)->cend)
+ msg, (intptr_t)(cp), (intptr_t)(cp)->cbase, (intptr_t)(cp)->cbot,\
+ (intptr_t)(cp)->ctop, (intptr_t)(cp)->climit, (intptr_t)(cp)->cend)
/* ================ Allocator state ================ */
diff --git a/base/gxalpha.h b/base/gxalpha.h
index daa03c26..de14cd89 100644
--- a/base/gxalpha.h
+++ b/base/gxalpha.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxarith.h b/base/gxarith.h
index a2678ae1..3d4c7d9a 100644
--- a/base/gxarith.h
+++ b/base/gxarith.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxband.h b/base/gxband.h
index de45d2fb..1af69cbf 100644
--- a/base/gxband.h
+++ b/base/gxband.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxbcache.c b/base/gxbcache.c
index f62d0c8e..adcd9b46 100644
--- a/base/gxbcache.c
+++ b/base/gxbcache.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -16,6 +16,7 @@
/* Bitmap cache implementation */
#include "memory_.h"
+#include "stdint_.h"
#include "gx.h"
#include "gsmdebug.h"
#include "gxbcache.h"
@@ -85,16 +86,16 @@ gx_bits_cache_alloc(gx_bits_cache * bc, ulong lsize, gx_cached_bits_head ** pcbh
return -1;
}
fsize += cbh_next->size;
- if_debug2('K', "[K]merging free bits 0x%lx(%u)\n",
- (ulong) cbh_next, cbh_next->size);
+ if_debug2('K', "[K]merging free bits "PRI_INTPTR"(%u)\n",
+ (intptr_t)cbh_next, cbh_next->size);
cbh_next = (gx_cached_bits_head *) ((byte *) cbh + fsize);
}
if (fsize > ssize) { /* fsize >= ssize1 */
cbh_next = (gx_cached_bits_head *) ((byte *) cbh + ssize);
cbh_next->size = fsize - ssize;
cb_head_set_free(cbh_next);
- if_debug2('K', "[K]shortening bits 0x%lx by %u (initial)\n",
- (ulong) cbh, fsize - ssize);
+ if_debug2('K', "[K]shortening bits "PRI_INTPTR" by %u (initial)\n",
+ (intptr_t)cbh, fsize - ssize);
}
gs_alloc_fill(cbh, gs_alloc_fill_block, ssize);
cbh->size = ssize;
diff --git a/base/gxbcache.h b/base/gxbcache.h
index 69d29fe2..be601b69 100644
--- a/base/gxbcache.h
+++ b/base/gxbcache.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxbitfmt.h b/base/gxbitfmt.h
index 7ae8fb88..8cdc0bc0 100644
--- a/base/gxbitfmt.h
+++ b/base/gxbitfmt.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxbitmap.h b/base/gxbitmap.h
index 12025d34..9f18a94b 100644
--- a/base/gxbitmap.h
+++ b/base/gxbitmap.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxbitops.h b/base/gxbitops.h
index c3abe386..8b1e9074 100644
--- a/base/gxbitops.h
+++ b/base/gxbitops.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxblend.c b/base/gxblend.c
index 8e806888..41059483 100644
--- a/base/gxblend.c
+++ b/base/gxblend.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -670,69 +670,110 @@ art_blend_luminosity_cmyk_16(int n_chan, uint16_t *gs_restrict dst, const uint16
dst[i] = src[i];
}
+
+/*
+
+Some notes on saturation blendmode:
+
+To test the results of deep color rendering, we ran a psdcmyk vs
+psdcmyk16 comparison. This showed differences on page 17 of the
+Altona_technical_v20_x4.pdf file in one patch. Simplifying the
+file shows that the saturation blend mode is showing significant
+differences between 8 and 16 bit rendering.
+
+Saturation blend mode is defined to not make any changes if we
+are writing over a pure grey color (as there is no 'hue' for
+it to saturate). You'd expect that the blending function would be
+continuous (i.e. that a small peturbation of the background color
+should only produce a small peturbation in the output), but this
+is NOT the case around pure greys.
+
+The example in the tested file, shows that psdcmyk is called with
+7a, 7a, 7a, which therefore leaves the background unchanged. For
+psdcmyk16, it's called with 7a01 7a03 7a01, which therefore does
+NOT leave the background unchanged. Testing by changing the 8 bit
+inputs to 7b 7a 7b (a small peturbation), gives output of 99 64 99
+(a large change).
+
+So, actually, the results given seem reasonable in that case.
+
+As a further indication that saturation blend mode results are
+'unstable' for 'near greys', the same patch in acrobat renders
+slightly blue, where the 16bit rendering in gs renders slightly
+pink. This can be explained by a small peturbation in the input
+color, which itself can be explained by small differences in the
+color profiles used.
+
+*/
+
void
art_blend_saturation_rgb_8(int n_chan, byte *gs_restrict dst, const byte *gs_restrict backdrop,
const byte *gs_restrict src)
{
- int rb = backdrop[0], gb = backdrop[1], bb = backdrop[2];
+ int32_t rb = backdrop[0], gb = backdrop[1], bb = backdrop[2];
int rs = src[0], gs = src[1], bs = src[2];
- int minb, maxb;
- int mins, maxs;
- int y;
+ int mins, maxs, minb, maxb;
+ int satCs, lumCb, lumC, d;
int scale;
- int r, g, b;
- minb = rb < gb ? rb : gb;
- minb = minb < bb ? minb : bb;
- maxb = rb > gb ? rb : gb;
- maxb = maxb > bb ? maxb : bb;
- if (minb == maxb) {
- /* backdrop has zero saturation, avoid divide by 0 */
+ if (rb == gb && gb == bb) {
+ /* backdrop has zero saturation, no change. */
dst[0] = gb;
dst[1] = gb;
dst[2] = gb;
return;
}
+ /* Lum(Cb) */
+ lumCb = (rb * 77 + gb * 151 + bb * 28 + 0x80) >> 8;
+
mins = rs < gs ? rs : gs;
+ maxs = rs < gs ? gs : rs;
mins = mins < bs ? mins : bs;
- maxs = rs > gs ? rs : gs;
- maxs = maxs > bs ? maxs : bs;
-
- scale = ((maxs - mins) << 16) / (maxb - minb);
- y = (rb * 77 + gb * 151 + bb * 28 + 0x80) >> 8;
- r = y + ((((rb - y) * scale) + 0x8000) >> 16);
- g = y + ((((gb - y) * scale) + 0x8000) >> 16);
- b = y + ((((bb - y) * scale) + 0x8000) >> 16);
+ maxs = maxs < bs ? bs : maxs;
- if ((r | g | b) & 0x100) {
- int scalemin, scalemax;
- int min, max;
-
- min = r < g ? r : g;
- min = min < b ? min : b;
- max = r > g ? r : g;
- max = max > b ? max : b;
-
- if (min < 0)
- scalemin = (y << 16) / (y - min);
- else
- scalemin = 0x10000;
+ /* Sat(Cs) = maxs - mins */
+ satCs = maxs - mins;
- if (max > 255)
- scalemax = ((255 - y) << 16) / (max - y);
- else
- scalemax = 0x10000;
-
- scale = scalemin < scalemax ? scalemin : scalemax;
- r = y + (((r - y) * scale + 0x8000) >> 16);
- g = y + (((g - y) * scale + 0x8000) >> 16);
- b = y + (((b - y) * scale + 0x8000) >> 16);
+ /* C = {rb, bb, gb} = SetSat(Cb, Sat(Cs)) */
+ minb = rb < gb ? rb : gb;
+ maxb = rb < gb ? gb : rb;
+ minb = minb < bb ? minb : bb;
+ maxb = maxb < bb ? bb : maxb;
+ scale = (satCs<<8) / (maxb - minb);
+ rb = ((rb - minb) * scale + 0x80)>>8;
+ gb = ((gb - minb) * scale + 0x80)>>8;
+ bb = ((bb - minb) * scale + 0x80)>>8;
+ /* Leaves us with Cmin = 0, Cmax = s, and Cmid all as per the spec. */
+
+ /* SetLum(SetSat(Cb, Sat(Cs)), Lum(Cb)) */
+ /* lumC = Lum(C) */
+ lumC = (rb * 77 + gb * 151 + bb * 28 + 0x80) >> 8;
+ d = lumCb - lumC;
+ /* ClipColor(C) */
+ /* We know that Cmin = 0, Cmax = satCs. Therefore, given we are about
+ * to add 'd' back on to reset the luminance, we'll have overflow
+ * problems if d < 0 or d+satCs > 255. We further know that as
+ * 0 <= satCs <= 255, so only one of those can be true a time. */
+ if (d < 0) {
+ scale = (lumCb<<8) / lumC;
+ goto correct_overflow;
+ } else if (d + satCs > 255) {
+ scale = ((255 - lumCb)<<8) / (satCs - lumC);
+correct_overflow:
+ rb = lumCb + (((rb - lumC) * scale + 0x80)>>8);
+ gb = lumCb + (((gb - lumC) * scale + 0x80)>>8);
+ bb = lumCb + (((bb - lumC) * scale + 0x80)>>8);
+ } else {
+ /* C += d */
+ rb += d;
+ gb += d;
+ bb += d;
}
- dst[0] = r;
- dst[1] = g;
- dst[2] = b;
+ dst[0] = rb;
+ dst[1] = gb;
+ dst[2] = bb;
}
void
@@ -741,67 +782,70 @@ art_blend_saturation_rgb_16(int n_chan, uint16_t *gs_restrict dst, const uint16_
{
int rb = backdrop[0], gb = backdrop[1], bb = backdrop[2];
int rs = src[0], gs = src[1], bs = src[2];
- int minb, maxb;
- int mins, maxs;
- int y;
- int64_t scale;
- int64_t r, g, b;
+ int mins, maxs, minb, maxb;
+ int satCs, lumCb, lumC, d;
+ uint64_t scale;
- minb = rb < gb ? rb : gb;
- minb = minb < bb ? minb : bb;
- maxb = rb > gb ? rb : gb;
- maxb = maxb > bb ? maxb : bb;
- if (minb == maxb) {
- /* backdrop has zero saturation, avoid divide by 0 */
+ if (rb == gb && gb == bb) {
+ /* backdrop has zero saturation, no change. */
dst[0] = gb;
dst[1] = gb;
dst[2] = gb;
return;
}
+ /* Lum(Cb) */
+ lumCb = (rb * 77 + gb * 151 + bb * 28 + 0x80) >> 8;
+
mins = rs < gs ? rs : gs;
+ maxs = rs < gs ? gs : rs;
mins = mins < bs ? mins : bs;
- maxs = rs > gs ? rs : gs;
- maxs = maxs > bs ? maxs : bs;
-
- /* -65535 <= maxs - mins <= 65535 i.e. 17 bits */
- /* -65535 <= maxb - minb <= 65535 i.e. 17 bits */
- /* worst case, maxb - minb == +/- 1, so scale would be 33 bits. */
- scale = (((int64_t)(maxs - mins)) << 16) / (maxb - minb);
- /* 0 <= y <= 65535 */
- y = (rb * 77 + gb * 151 + bb * 28 + 0x80) >> 8;
- r = y + ((((rb - y) * scale) + 0x8000) >> 16);
- g = y + ((((gb - y) * scale) + 0x8000) >> 16);
- b = y + ((((bb - y) * scale) + 0x8000) >> 16);
-
- if ((r | g | b) & (int64_t)~0xffff) {
- int64_t scalemin, scalemax;
- int64_t min, max;
-
- min = r < g ? r : g;
- min = min < b ? min : b;
- max = r > g ? r : g;
- max = max > b ? max : b;
+ maxs = maxs < bs ? bs : maxs;
- if (min < 0)
- scalemin = (((int64_t)y) << 16) / (y - min);
- else
- scalemin = 0x10000;
+ /* Sat(Cs) = maxs - mins */
+ satCs = maxs - mins;
- if (max > 65535)
- scalemax = (((int64_t)(65535 - y)) << 16) / (max - y);
- else
- scalemax = 0x10000;
-
- scale = scalemin < scalemax ? scalemin : scalemax;
- r = y + (((r - y) * scale + 0x8000) >> 16);
- g = y + (((g - y) * scale + 0x8000) >> 16);
- b = y + (((b - y) * scale + 0x8000) >> 16);
+ /* SetSat(Cb, Sat(Cs)) */
+ minb = rb < gb ? rb : gb;
+ maxb = rb < gb ? gb : rb;
+ minb = minb < bb ? minb : bb;
+ maxb = maxb < bb ? bb : maxb;
+ /* 0 <= maxb - minb <= 65535 */
+ /* 0 <= satCs <= 65535 */
+ scale = ((unsigned int)(satCs<<16)) / (maxb - minb);
+ rb = ((rb - minb) * scale + 0x8000)>>16;
+ gb = ((gb - minb) * scale + 0x8000)>>16;
+ bb = ((bb - minb) * scale + 0x8000)>>16;
+ /* Leaves us with Cmin = 0, Cmax = s, and Cmid all as per the spec. */
+
+ /* SetLum(SetSat(Cb, Sat(Cs)), Lum(Cb)) */
+ /* lumC = Lum(C) */
+ lumC = (rb * 77 + gb * 151 + bb * 28 + 0x80) >> 8;
+ d = lumCb - lumC;
+ /* ClipColor(C) */
+ /* We know that Cmin = 0, Cmax = satCs. Therefore, given we are about
+ * to add 'd' back on to reset the luminance, we'll have overflow
+ * problems if d < 0 or d+satCs > 65535. We further know that as
+ * 0 <= satCs <= 65535, so only one of those can be true a time. */
+ if (d < 0) {
+ scale = ((unsigned int)(lumCb<<16)) / (unsigned int)lumC;
+ goto correct_overflow;
+ } else if (d + satCs > 65535) {
+ scale = ((unsigned int)((65535 - lumCb)<<16)) / (unsigned int)(satCs - lumC);
+correct_overflow:
+ rb = lumCb + (((rb - lumC) * scale + 0x8000)>>16);
+ gb = lumCb + (((gb - lumC) * scale + 0x8000)>>16);
+ bb = lumCb + (((bb - lumC) * scale + 0x8000)>>16);
+ } else {
+ /* C += d */
+ rb += d;
+ gb += d;
+ bb += d;
}
- dst[0] = r;
- dst[1] = g;
- dst[2] = b;
+ dst[0] = rb;
+ dst[1] = gb;
+ dst[2] = bb;
}
void
@@ -1544,7 +1588,7 @@ art_pdf_union_8(byte alpha1, byte alpha2)
static byte*
art_pdf_knockout_composite_pixel_alpha_8(byte *gs_restrict backdrop, byte tos_shape,
byte *gs_restrict dst, byte *gs_restrict src, int n_chan,
- gs_blend_mode_t blend_mode,
+ gs_blend_mode_t blend_mode,
const pdf14_nonseparable_blending_procs_t * pblend_procs,
pdf14_device *p14dev)
{
@@ -2858,7 +2902,7 @@ template_compose_group(byte *gs_restrict tos_ptr, bool tos_isolated,
int first_blend_spot = n_chan;
bool has_mask2 = has_mask;
byte *gs_restrict dst;
- byte global_shape = (byte)(255 * pdev->shape + 0.5);
+ byte group_shape = (byte)(255 * pdev->shape + 0.5);
if (!nos_knockout && num_spots > 0 && !blend_valid_for_spot(blend_mode)) {
first_blend_spot = first_spot;
@@ -3010,7 +3054,7 @@ template_compose_group(byte *gs_restrict tos_ptr, bool tos_isolated,
if (nos_shape_offset && pix_alpha != 0) {
nos_ptr[nos_shape_offset] =
art_pdf_union_mul_8(nos_ptr[nos_shape_offset],
- has_alpha ? tos_ptr[tos_shape_offset] : global_shape,
+ has_alpha ? tos_ptr[tos_shape_offset] : group_shape,
shape);
}
if (dst)
@@ -3611,7 +3655,7 @@ template_compose_group16(uint16_t *gs_restrict tos_ptr, bool tos_isolated,
int first_blend_spot = n_chan;
bool has_mask2 = has_mask;
uint16_t *gs_restrict dst;
- uint16_t global_shape = (uint16_t)(65535 * pdev->shape + 0.5);
+ uint16_t group_shape = (uint16_t)(65535 * pdev->shape + 0.5);
if (!nos_knockout && num_spots > 0 && !blend_valid_for_spot(blend_mode)) {
first_blend_spot = first_spot;
@@ -3775,7 +3819,7 @@ template_compose_group16(uint16_t *gs_restrict tos_ptr, bool tos_isolated,
if (nos_shape_offset && pix_alpha != 0) {
nos_ptr[nos_shape_offset] =
art_pdf_union_mul_16(nos_ptr[nos_shape_offset],
- has_alpha ? GET16_2NATIVE(tos_is_be, tos_ptr[tos_shape_offset]) : global_shape,
+ has_alpha ? GET16_2NATIVE(tos_is_be, tos_ptr[tos_shape_offset]) : group_shape,
shape);
}
if (dst)
@@ -5086,6 +5130,17 @@ do_mark_fill_rectangle(gx_device * dev, int x, int y, int w, int h,
int first_blend_spot = num_comp;
pdf14_mark_fill_rect_fn fn;
+ /* This is a fix to handle the odd case where overprint is active
+ but drawn comps is zero due to the colorants that are present
+ in the sep or devicen color space. For example, if the color
+ fill was cyan in a sep color space but we are drawing in a
+ RGB blend space. In this case the drawn comps is 0 and we should
+ not be using compatible overprint mode here. */
+ if (drawn_comps == 0 && blend_mode == BLEND_MODE_CompatibleOverprint &&
+ buf->group_color_info->isadditive) {
+ blend_mode = BLEND_MODE_Normal;
+ }
+
if (num_spots > 0 && !blend_valid_for_spot(blend_mode))
first_blend_spot = num_comp - num_spots;
if (blend_mode == BLEND_MODE_Normal)
@@ -5706,6 +5761,17 @@ do_mark_fill_rectangle16(gx_device * dev, int x, int y, int w, int h,
int first_blend_spot = num_comp;
pdf14_mark_fill_rect16_fn fn;
+ /* This is a fix to handle the odd case where overprint is active
+ but drawn comps is zero due to the colorants that are present
+ in the sep or devicen color space. For example, if the color
+ fill was cyan in a sep color space but we are drawing in a
+ RGB blend space. In this case the drawn comps is 0 and we should
+ not be using compatible overprint mode here. */
+ if (drawn_comps == 0 && blend_mode == BLEND_MODE_CompatibleOverprint &&
+ buf->group_color_info->isadditive) {
+ blend_mode = BLEND_MODE_Normal;
+ }
+
if (num_spots > 0 && !blend_valid_for_spot(blend_mode))
first_blend_spot = num_comp - num_spots;
if (blend_mode == BLEND_MODE_Normal)
diff --git a/base/gxblend.h b/base/gxblend.h
index 05d96132..0ac93877 100644
--- a/base/gxblend.h
+++ b/base/gxblend.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -392,10 +392,6 @@ void gx_blend_image_buffer16(byte *buf_ptr, int width, int height,
int rowstride, int planestride, int num_comp, uint16_t bg);
void gx_blend_image_buffer8to16(const byte *buf_ptr, unsigned short *buf_ptr_out,
int width, int height, int rowstride, int planestride, int num_comp, byte bg);
-int gx_put_blended_image_cmykspot(gx_device *target, byte *buf_ptr,
- int planestride, int rowstride,
- int x0, int y0, int width, int height, int num_comp, uint16_t bg,
- bool has_tags, gs_int_rect rect, gs_separations *pseparations, bool deep);
int gx_put_blended_image_custom(gx_device *target, byte *buf_ptr,
int planestride, int rowstride,
int x0, int y0, int width, int height, int num_comp, uint16_t bg, bool deep);
diff --git a/base/gxblend1.c b/base/gxblend1.c
index f439c0ac..6d42a094 100644
--- a/base/gxblend1.c
+++ b/base/gxblend1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -346,7 +346,7 @@ pdf14_preserve_backdrop(pdf14_buf *buf, pdf14_buf *tos, bool from_backdrop
y0 > buf->rect.p.y || y1 < buf->rect.q.y) {
/* FIXME: There is potential for more optimisation here,
* but I don't know how often we hit this case. */
- memset(buf_plane, 0, n_planes * buf->planestride);
+ memset(buf_plane, 0, (size_t)n_planes * buf->planestride);
} else if (n_planes > tos->n_chan) {
/* The next planes are alpha_g, shape, tags. We need to clear
* alpha_g and shape, but don't need to clear the tag plane
@@ -355,7 +355,8 @@ pdf14_preserve_backdrop(pdf14_buf *buf, pdf14_buf *tos, bool from_backdrop
if (!from_backdrop && n_planes > tag_plane_num)
n_planes = tag_plane_num;
if (n_planes > tos->n_chan)
- memset(buf->data + tos->n_chan * buf->planestride, 0, (n_planes - tos->n_chan) * buf->planestride);
+ memset(buf->data + (size_t)tos->n_chan * buf->planestride, 0,
+ (size_t)(n_planes - tos->n_chan) * buf->planestride);
}
buf_plane += (y0 - buf->rect.p.y) * buf->rowstride +
((x0 - buf->rect.p.x)<<deep);
@@ -867,14 +868,14 @@ gx_blend_image_buffer16(byte *buf_ptr_, int width, int height, int rowstride,
buf_ptr[position + planestride * comp_num] = bebg;
}
} else if (a == 0xffff) {
- /* Convert from native -> big endian */
- /* FIXME: Are compilers smart enough to spot that this is
- * a no-op on big endian hosts? */
+#if ARCH_IS_BIG_ENDIAN
+#else
for (comp_num = 0; comp_num < num_comp; comp_num++) {
comp = buf_ptr[position + planestride * comp_num];
((byte *)&buf_ptr[position + planestride * comp_num])[0] = comp>>8;
((byte *)&buf_ptr[position + planestride * comp_num])[1] = comp;
}
+#endif
} else {
a ^= 0xffff;
a += a>>15; /* a is now 0 to 0x10000 */
@@ -935,262 +936,6 @@ gx_blend_image_buffer8to16(const byte *buf_ptr_in, unsigned short *buf_ptr_out,
}
int
-gx_put_blended_image_cmykspot(gx_device *target, byte *buf_ptr, int planestride_in,
- int rowstride_in, int x0, int y0, int width, int height,
- int num_comp, uint16_t bg, bool has_tags, gs_int_rect rect,
- gs_separations * pseparations, bool deep)
-{
- int code = 0;
- int x, y, tmp, comp_num, output_comp_num;
- gx_color_index color;
- gx_color_value cv[GX_DEVICE_COLOR_MAX_COMPONENTS];
- gx_color_value comp;
- int input_map[GX_DEVICE_COLOR_MAX_COMPONENTS];
- int output_map[GX_DEVICE_COLOR_MAX_COMPONENTS];
- int num_known_comp = 0;
- int output_num_comp = target->color_info.num_components;
- int num_sep = pseparations->num_separations++;
- int num_rows_left;
- int i;
- gx_drawing_color pdcolor;
- gs_fixed_rect rect_fixed;
- int bits_per_comp = ((target->color_info.depth - has_tags*8) /
- target->color_info.num_components);
- bool expand = (!deep && bits_per_comp > 8);
- int planestride = planestride_in;
- int rowstride = rowstride_in;
- byte *buf16_ptr = NULL;
-
- /*
- * The process color model for the PDF 1.4 compositor device is CMYK plus
- * spot colors. The target device may have only some of these colorants due
- * to the SeparationOrder device parameter. Thus we need to determine the
- * mapping between the PDF 1.4 compositor and the target device. Note:
- * There should not be a spot colorant in the PDF 1.4 device that is not
- * present in the target device.
- */
- /* Check if target processes CMYK colorants. */
- for (comp_num = 0; comp_num < 4; comp_num++) {
- const char * pcomp_name = (const char *)DeviceCMYKComponents[comp_num];
-
- output_comp_num = dev_proc(target, get_color_comp_index)
- (target, pcomp_name, strlen(pcomp_name), NO_COMP_NAME_TYPE);
- if (output_comp_num >=0 &&
- output_comp_num < GX_DEVICE_COLOR_MAX_COMPONENTS) {
- output_map[num_known_comp] = output_comp_num;
- input_map[num_known_comp++] = comp_num;
- }
- }
- /* Check if target processes our spot colorants. */
- for (comp_num = 0; comp_num < num_sep; comp_num++) {
- output_comp_num = dev_proc(target, get_color_comp_index)
- (target, (const char *)(pseparations->names[comp_num].data),
- pseparations->names[comp_num].size, NO_COMP_NAME_TYPE);
- if (output_comp_num >= 0 &&
- output_comp_num < GX_DEVICE_COLOR_MAX_COMPONENTS) {
- output_map[num_known_comp] = output_comp_num;
- input_map[num_known_comp++] = comp_num + 4;
- }
- }
-
- {
- /* See if the target device can handle the data in its current
- form with the alpha component */
- int alpha_offset = num_comp;
- int tag_offset = has_tags ? num_comp + 1 : 0;
- const byte *buf_ptrs[GS_CLIENT_COLOR_MAX_COMPONENTS];
-
- for (i = 0; i < num_comp; i++)
- buf_ptrs[i] = buf_ptr + i * planestride;
- code = dev_proc(target, put_image) (target, target, buf_ptrs, num_comp,
- rect.p.x, rect.p.y, width, height,
- rowstride,
- num_comp, tag_offset);
- if (code == 0) {
- /* Device could not handle the alpha data. Go ahead and
- preblend now. Note that if we do this, and we end up in the
- default below, we only need to repack in chunky not blend. Add
- in conversion to 16 bits if the target device is planar and
- a 16 bit device. */
-#if RAW_DUMP
- /* Dump before and after the blend to make sure we are doing that ok */
- dump_raw_buffer(target->memory, height, width, num_comp + 1, planestride, rowstride,
- "pre_final_blend", buf_ptr, deep);
- global_index++;
-#endif
- if (expand) {
- buf16_ptr = gs_alloc_bytes(target->memory,
- planestride * num_comp * 2, "gx_put_blended_image_cmykspot");
- gx_blend_image_buffer8to16(buf_ptr, (unsigned short*)buf16_ptr, width, height,
- rowstride, planestride, num_comp, bg>>8);
- planestride = planestride_in * 2;
- rowstride = rowstride_in * 2;
- for (i = 0; i < num_comp; i++)
- buf_ptrs[i] = buf16_ptr + i * planestride;
- } else {
- if (deep) {
- gx_blend_image_buffer16(buf_ptr, width, height, rowstride,
- planestride, num_comp, bg);
- } else {
- gx_blend_image_buffer(buf_ptr, width, height, rowstride,
- planestride, num_comp, bg>>8);
- }
-#if RAW_DUMP
- /* Dump before and after the blend to make sure we are doing that ok */
- dump_raw_buffer_be(target->memory, height, width, num_comp, planestride, rowstride,
- "post_final_blend", buf_ptr, deep);
- global_index++;
- /* clist_band_count++; */
-#endif
- }
- /* Try again now */
- alpha_offset = 0;
- code = dev_proc(target, put_image) (target, target, buf_ptrs, num_comp,
- rect.p.x, rect.p.y, width, height,
- rowstride, alpha_offset, tag_offset);
- if (code > 0) {
- /* We processed some or all of the rows. Continue until we are done */
- num_rows_left = height - code;
- while (num_rows_left > 0) {
- code = dev_proc(target, put_image) (target, target, buf_ptrs, num_comp,
- rect.p.x, rect.p.y + code, width,
- num_rows_left, rowstride,
- alpha_offset, tag_offset);
- if (code < 0) {
- if (buf16_ptr != NULL)
- gs_free_object(target->memory, buf16_ptr, "gx_put_blended_image_cmykspot");
- return code;
- }
- num_rows_left = num_rows_left - code;
- }
- }
- if (buf16_ptr != NULL)
- gs_free_object(target->memory, buf16_ptr, "gx_put_blended_image_cmykspot");
- return 0;
- }
- }
-
- if (buf16_ptr != NULL)
- gs_free_object(target->memory, buf16_ptr, "gx_put_blended_image_cmykspot");
- planestride = planestride_in;
- rowstride = rowstride_in;
-
- /* Clear all output colorants first */
- for (comp_num = 0; comp_num < output_num_comp; comp_num++)
- cv[comp_num] = 0;
-
- /* Send pixel data to the target device. */
- if (deep) {
- /* NOTE: buf_ptr points to big endian data */
- for (y = 0; y < height; y++) {
- for (x = 0; x < width; x++) {
-
- /* composite CMYKA, etc. pixel with over solid background */
-#define GET16_BE2NATIVE(v) \
- ((((byte *)&(v))[0]<<8) | (((byte *)&(v))[1]))
- uint16_t a = GET16_BE2NATIVE(buf_ptr[x + planestride * num_comp]);
-
- if (a == 0) {
- for (comp_num = 0; comp_num < num_known_comp; comp_num++) {
- cv[output_map[comp_num]] = bg;
- }
- } else if (a == 0xffff) {
- for (comp_num = 0; comp_num < num_known_comp; comp_num++) {
- comp = GET16_BE2NATIVE(buf_ptr[x + planestride * input_map[comp_num]]);
- cv[output_map[comp_num]] = comp;
- }
- } else {
- /* a ^= 0xff; */ /* No inversion here! Bug 689895 */
- for (comp_num = 0; comp_num < num_known_comp; comp_num++) {
- comp = GET16_BE2NATIVE(buf_ptr[x + planestride * input_map[comp_num]]);
- tmp = ((comp - bg) * a) + 0x8000;
- comp += (tmp + (tmp >> 16))>>16;
- cv[output_map[comp_num]] = comp;
- }
- }
-
- /* If we have spot colors we need to encode and fill as a high level
- color if the device supports it which should always be the case
- if we are in this procedure */
- if (dev_proc(target, dev_spec_op)(target, gxdso_supports_devn, NULL, 0)) {
- for (i = 0; i < output_num_comp; i++) {
- pdcolor.colors.devn.values[i] = cv[i];
- }
- pdcolor.type = gx_dc_type_devn;
- rect_fixed.p.x = int2fixed(x + x0);
- rect_fixed.p.y = int2fixed(y + y0);
- rect_fixed.q.x = int2fixed(x + x0 + 1);
- rect_fixed.q.y = int2fixed(y + y0 + 1);
- code = dev_proc(target, fill_rectangle_hl_color)(target, &rect_fixed,
- NULL, &pdcolor, NULL);
- } else {
- /* encode as a color index */
- color = dev_proc(target, encode_color)(target, cv);
- code = dev_proc(target, fill_rectangle)(target, x + x0, y + y0, 1, 1, color);
- }
- if (code < 0)
- return code;
- }
-
- buf_ptr += rowstride;
- }
- } else {
- bg >>= 8;
- for (y = 0; y < height; y++) {
- for (x = 0; x < width; x++) {
-
- /* composite CMYKA, etc. pixel with over solid background */
- byte a = buf_ptr[x + planestride * num_comp];
-
- if ((a + 1) & 0xfe) {
- /* a ^= 0xff; */ /* No inversion here! Bug 689895 */
- for (comp_num = 0; comp_num < num_known_comp; comp_num++) {
- comp = buf_ptr[x + planestride * input_map[comp_num]];
- tmp = ((comp - bg) * a) + 0x80;
- comp += tmp + (tmp >> 8);
- cv[output_map[comp_num]] = comp;
- }
- } else if (a == 0) {
- for (comp_num = 0; comp_num < num_known_comp; comp_num++) {
- cv[output_map[comp_num]] = bg;
- }
- } else {
- for (comp_num = 0; comp_num < num_known_comp; comp_num++) {
- comp = buf_ptr[x + planestride * input_map[comp_num]];
- cv[output_map[comp_num]] = (comp << 8) + comp;
- }
- }
-
- /* If we have spot colors we need to encode and fill as a high level
- color if the device supports it which should always be the case
- if we are in this procedure */
- if (dev_proc(target, dev_spec_op)(target, gxdso_supports_devn, NULL, 0)) {
- for (i = 0; i < output_num_comp; i++) {
- pdcolor.colors.devn.values[i] = cv[i];
- }
- pdcolor.type = gx_dc_type_devn;
- rect_fixed.p.x = int2fixed(x + x0);
- rect_fixed.p.y = int2fixed(y + y0);
- rect_fixed.q.x = int2fixed(x + x0 + 1);
- rect_fixed.q.y = int2fixed(y + y0 + 1);
- code = dev_proc(target, fill_rectangle_hl_color)(target, &rect_fixed,
- NULL, &pdcolor, NULL);
- } else {
- /* encode as a color index */
- color = dev_proc(target, encode_color)(target, cv);
- code = dev_proc(target, fill_rectangle)(target, x + x0, y + y0, 1, 1, color);
- }
- if (code < 0)
- return code;
- }
-
- buf_ptr += rowstride;
- }
- }
- return code;
-}
-
-int
gx_put_blended_image_custom(gx_device *target, byte *buf_ptr_,
int planestride, int rowstride,
int x0, int y0, int width, int height,
@@ -1275,4 +1020,4 @@ gx_put_blended_image_custom(gx_device *target, byte *buf_ptr_,
}
}
return code;
-}
+} \ No newline at end of file
diff --git a/base/gxccache.c b/base/gxccache.c
index 3190cebe..e4f4364c 100644
--- a/base/gxccache.c
+++ b/base/gxccache.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -120,11 +120,11 @@ gx_lookup_fm_pair(gs_font * pfont, const gs_matrix *char_tm,
if (pair->font == 0) {
pair->font = pfont;
- if_debug2m('k', pfont->memory, "[k]updating pair 0x%lx with font 0x%lx\n",
- (ulong) pair, (ulong) pfont);
+ if_debug2m('k', pfont->memory, "[k]updating pair "PRI_INTPTR" with font "PRI_INTPTR"\n",
+ (intptr_t)pair, (intptr_t)pfont);
} else {
- if_debug2m('k', pfont->memory, "[k]found pair 0x%lx: font=0x%lx\n",
- (ulong) pair, (ulong) pair->font);
+ if_debug2m('k', pfont->memory, "[k]found pair "PRI_INTPTR": font="PRI_INTPTR"\n",
+ (intptr_t)pair, (intptr_t)pair->font);
}
code = gx_touch_fm_pair(dir, pair);
if (code < 0)
@@ -158,8 +158,8 @@ gx_lookup_cached_char(const gs_font * pfont, const cached_fm_pair * pair,
cc->wmode == wmode && cc_depth(cc) == depth
) {
if_debug4m('K', pfont->memory,
- "[K]found 0x%lx (depth=%d) for glyph=0x%lx, wmode=%d\n",
- (ulong) cc, cc_depth(cc), (ulong) glyph, wmode);
+ "[K]found "PRI_INTPTR" (depth=%d) for glyph=0x%lx, wmode=%d\n",
+ (intptr_t)cc, cc_depth(cc), (ulong)glyph, wmode);
return cc;
}
chi++;
@@ -211,7 +211,8 @@ gx_image_cached_char(register gs_show_enum * penum, register cached_char * cc)
"[K]bits");
else
dmputs(penum->memory, "[K]no bits\n");
- dmlprintf3(penum->memory, "[K]copying 0x%lx, offset=(%g,%g)\n", (ulong) cc,
+ dmlprintf3(penum->memory, "[K]copying "PRI_INTPTR", offset=(%g,%g)\n",
+ (intptr_t) cc,
fixed2float(-cc->offset.x),
fixed2float(-cc->offset.y));
dmlprintf6(penum->memory, " at (%g,%g)+(%d,%d)->(%d,%d)\n",
@@ -256,8 +257,8 @@ gx_image_cached_char(register gs_show_enum * penum, register cached_char * cc)
imaging_dev, cx, cy,
pdevc->colors.pure, 0);
if_debug8m('K', penum->memory,
- "[K]render_char display: xfont=0x%lx, glyph=0x%lx\n\tdev=0x%lx(%s) x,y=%d,%d, color=0x%lx => %d\n",
- (ulong) xf, (ulong) xg, (ulong) imaging_dev,
+ "[K]render_char display: xfont="PRI_INTPTR", glyph=0x%lx\n\tdev="PRI_INTPTR"(%s) x,y=%d,%d, color=0x%lx => %d\n",
+ (intptr_t)xf, (ulong)xg, (intptr_t)imaging_dev,
imaging_dev->dname, cx, cy,
(ulong) pdevc->colors.pure, code);
if (code == 0)
@@ -274,8 +275,8 @@ gx_image_cached_char(register gs_show_enum * penum, register cached_char * cc)
(gx_device *) & mdev, cx - x, cy - y,
(gx_color_index) 1, 1);
if_debug7m('K', penum->memory,
- "[K]render_char to bits: xfont=0x%lx, glyph=0x%lx\n\tdev=0x%lx(%s) x,y=%d,%d => %d\n",
- (ulong) xf, (ulong) xg, (ulong) & mdev,
+ "[K]render_char to bits: xfont="PRI_INTPTR", glyph=0x%lx\n\tdev="PRI_INTPTR"(%s) x,y=%d,%d => %d\n",
+ (intptr_t)xf, (ulong) xg, (intptr_t)&mdev,
mdev.dname, cx - x, cy - y, code);
if (code != 0)
return_check_interrupt(penum->memory, 1);
@@ -410,7 +411,7 @@ compress_alpha_bits(const cached_char * cc, gs_memory_t * mem)
uint sskip = sraster - ((width * depth + 7) >> 3);
uint draster = bitmap_raster(width);
uint dskip = draster - ((width + 7) >> 3);
- byte *mask = gs_alloc_bytes(mem, draster * height,
+ byte *mask = gs_alloc_bytes(mem, (size_t)draster * height,
"compress_alpha_bits");
const byte *sptr = data;
byte *dptr = mask;
diff --git a/base/gxccman.c b/base/gxccman.c
index fc4e11e4..b2d84305 100644
--- a/base/gxccman.c
+++ b/base/gxccman.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -363,10 +363,10 @@ gx_add_fm_pair(register gs_font_dir * dir, gs_font * font, const gs_uid * puid,
}
pair->memory = 0;
if_debug8m('k', dir->memory,
- "[k]adding pair 0x%lx: font=0x%lx [%g %g %g %g] UID %ld, 0x%lx\n",
- (ulong) pair, (ulong) font,
+ "[k]adding pair "PRI_INTPTR": font="PRI_INTPTR" [%g %g %g %g] UID %ld, "PRI_INTPTR"\n",
+ (intptr_t)pair, (intptr_t)font,
pair->mxx, pair->mxy, pair->myx, pair->myy,
- (long)pair->UID.id, (ulong) pair->UID.xvalues);
+ (long)pair->UID.id, (intptr_t) pair->UID.xvalues);
*ppair = pair;
return 0;
}
@@ -412,7 +412,7 @@ gs_clean_fm_pair_attributes(gs_font_dir * dir, cached_fm_pair * pair)
void
gs_clean_fm_pair(gs_font_dir * dir, cached_fm_pair * pair)
{
- if_debug1m('k', dir->memory, "[k]cleaning pair 0x%lx\n", (ulong) pair);
+ if_debug1m('k', dir->memory, "[k]cleaning pair "PRI_INTPTR"\n", (intptr_t) pair);
pair->font = NULL;
gs_clean_fm_pair_attributes(dir, pair);
}
@@ -420,8 +420,8 @@ gs_clean_fm_pair(gs_font_dir * dir, cached_fm_pair * pair)
int
gs_purge_fm_pair(gs_font_dir * dir, cached_fm_pair * pair, int xfont_only)
{
- if_debug2m('k', dir->memory, "[k]purging pair 0x%lx%s\n",
- (ulong) pair, (xfont_only ? " (xfont only)" : ""));
+ if_debug2m('k', dir->memory, "[k]purging pair "PRI_INTPTR"%s\n",
+ (intptr_t)pair, (xfont_only ? " (xfont only)" : ""));
if (pair->xfont != 0) {
(*pair->xfont->common.procs->release) (pair->xfont,
pair->memory);
@@ -589,8 +589,8 @@ gx_alloc_char_bits(gs_font_dir * dir, gx_device_memory * dev,
*pcc = cc;
if (cc == 0)
return 0;
- if_debug4m('k', dev->memory, "[k]adding char 0x%lx:%u(%u,%u)\n",
- (ulong) cc, (uint) icdsize, iwidth, iheight);
+ if_debug4m('k', dev->memory, "[k]adding char "PRI_INTPTR":%u(%u,%u)\n",
+ (intptr_t)cc, (uint)icdsize, iwidth, iheight);
/* Fill in the entry. */
@@ -658,8 +658,8 @@ gx_free_cached_char(gs_font_dir * dir, cached_char * cc)
dir->ccache.cnext = (byte *) cc - cck->data;
if (cc->linked)
cc_pair(cc)->num_chars--;
- if_debug2m('k', dir->memory, "[k]freeing char 0x%lx, pair=0x%lx\n",
- (ulong) cc, (ulong) cc_pair(cc));
+ if_debug2m('k', dir->memory, "[k]freeing char "PRI_INTPTR", pair="PRI_INTPTR"\n",
+ (intptr_t)cc, (intptr_t)cc_pair(cc));
gx_bits_cache_free((gx_bits_cache *) & dir->ccache, &cc->head, cck);
}
@@ -669,8 +669,8 @@ gx_add_cached_char(gs_font_dir * dir, gx_device_memory * dev,
cached_char * cc, cached_fm_pair * pair, const gs_log2_scale_point * pscale)
{
if_debug5m('k', dev->memory,
- "[k]chaining char 0x%lx: pair=0x%lx, glyph=0x%lx, wmode=%d, depth=%d\n",
- (ulong) cc, (ulong) pair, (ulong) cc->code,
+ "[k]chaining char "PRI_INTPTR": pair="PRI_INTPTR", glyph=0x%lx, wmode=%d, depth=%d\n",
+ (intptr_t)cc, (intptr_t)pair, (ulong)cc->code,
cc->wmode, cc_depth(cc));
if (dev != NULL) {
static const gs_log2_scale_point no_scale =
@@ -834,8 +834,8 @@ gx_add_char_bits(gs_font_dir * dir, cached_char * cc,
if (diff >= sizeof(cached_char_head)) {
shorten_cached_char(dir, cc, diff);
- if_debug2m('K', dir->memory, "[K]shortening char 0x%lx by %u (adding)\n",
- (ulong) cc, diff);
+ if_debug2m('K', dir->memory, "[K]shortening char "PRI_INTPTR" by %u (adding)\n",
+ (intptr_t)cc, diff);
}
}
@@ -860,8 +860,8 @@ gs_purge_font_from_char_caches_forced(gs_font * font, bool force)
pair = dir->fmcache.mdata;
count = dir->fmcache.mmax;
font->is_cached = false; /* Prevent redundant execution. */
- if_debug1m('k', font->memory, "[k]purging font 0x%lx\n",
- (ulong) font);
+ if_debug1m('k', font->memory, "[k]purging font "PRI_INTPTR"\n",
+ (intptr_t)font);
for (; count--; pair++) {
if (pair->font == font) {
if (!force && uid_is_valid(&pair->UID)) { /* Keep the entry. */
@@ -1064,6 +1064,6 @@ shorten_cached_char(gs_font_dir * dir, cached_char * cc, uint diff)
{
gx_bits_cache_shorten((gx_bits_cache *) & dir->ccache, &cc->head,
diff, cc->chunk);
- if_debug2m('K', dir->memory, "[K]shortening creates free block 0x%lx(%u)\n",
- (ulong) ((byte *) cc + cc->head.size), diff);
+ if_debug2m('K', dir->memory, "[K]shortening creates free block "PRI_INTPTR"(%u)\n",
+ (intptr_t)((byte *) cc + cc->head.size), diff);
}
diff --git a/base/gxcdevn.h b/base/gxcdevn.h
index 3f49334a..62ecb8db 100644
--- a/base/gxcdevn.h
+++ b/base/gxcdevn.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxchar.c b/base/gxchar.c
index 0c86e983..7d6259d9 100644
--- a/base/gxchar.c
+++ b/base/gxchar.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxchar.h b/base/gxchar.h
index 8200d8ef..04ff7deb 100644
--- a/base/gxchar.h
+++ b/base/gxchar.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxchrout.c b/base/gxchrout.c
index 4ced9fac..87fcd43c 100644
--- a/base/gxchrout.c
+++ b/base/gxchrout.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxchrout.h b/base/gxchrout.h
index 3e68ea22..8bbb3524 100644
--- a/base/gxchrout.h
+++ b/base/gxchrout.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxcht.c b/base/gxcht.c
index 21a963d9..e4b47ce4 100644
--- a/base/gxcht.c
+++ b/base/gxcht.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxcid.h b/base/gxcid.h
index f4c39911..c172b72c 100644
--- a/base/gxcid.h
+++ b/base/gxcid.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxcie.h b/base/gxcie.h
index bf9ac651..860bf292 100644
--- a/base/gxcie.h
+++ b/base/gxcie.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxcindex.h b/base/gxcindex.h
index af766cb2..5e0d2761 100644
--- a/base/gxcindex.h
+++ b/base/gxcindex.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxclbits.c b/base/gxclbits.c
index 0d2b46fa..519cdacb 100644
--- a/base/gxclbits.c
+++ b/base/gxclbits.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -82,7 +82,7 @@ go_process(stream_state * st, stream_cursor_read *pr, stream_cursor_write *pw, b
return -1;
return 0;
}
-static byte zeros[1<<align_bitmap_mod];
+static byte zeros[1<<align_bitmap_mod] = { 0, };
static int
cmd_compress_bitmap(stream_state * st, const byte * data, uint width_bits,
uint raster, uint height, stream_cursor_write * pw)
@@ -110,7 +110,6 @@ cmd_compress_bitmap(stream_state * st, const byte * data, uint width_bits,
byte b = r.ptr[1] & mask;
r2.limit = &b;
r2.ptr = r2.limit-1;
-
status = go_process(st, &r2, pw, false);
if (status)
break;
diff --git a/base/gxcldev.h b/base/gxcldev.h
index 19d19bc1..00dca1c8 100644
--- a/base/gxcldev.h
+++ b/base/gxcldev.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxclfile.c b/base/gxclfile.c
index 841009a0..4476ef5c 100644
--- a/base/gxclfile.c
+++ b/base/gxclfile.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxclimag.c b/base/gxclimag.c
index 83f0ccef..9747c899 100644
--- a/base/gxclimag.c
+++ b/base/gxclimag.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -1096,8 +1096,8 @@ clist_image_plane_data(gx_image_enum_common_t * info,
pie->color_map_is_known = true;
if (code >= 0) {
uint want_known = ctm_known | clip_path_known |
- op_bm_tk_known | opacity_alpha_known |
- shape_alpha_known | alpha_known |
+ op_bm_tk_known | ais_known |
+ fill_alpha_known | stroke_alpha_known | fill_adjust_known |
(pie->color_space.id == gs_no_id ? 0 :
color_space_known);
@@ -1110,6 +1110,8 @@ clist_image_plane_data(gx_image_enum_common_t * info,
if (code < 0)
return code;
if (pie->uses_color) {
+ gs_int_point color_phase;
+
/* We want to write the color taking into account the entire image so */
/* we set re.rect_nbands from pie->ymin and pie->ymax so that we will */
/* make the decision to write 'all_bands' the same for the whole image */
@@ -1121,6 +1123,14 @@ clist_image_plane_data(gx_image_enum_common_t * info,
&re, devn_not_tile_fill);
if (code < 0)
return code;
+ /* see if phase informaiton must be inserted in the command list */
+ /* if so, go ahead and do it for all_bands */
+ if ( pie->dcolor.type->get_phase(&pie->dcolor, &color_phase) &&
+ (color_phase.x != re.pcls->tile_phase.x ||
+ color_phase.y != re.pcls->tile_phase.y ) &&
+ (code = cmd_set_tile_phase_generic(cdev, re.pcls,
+ color_phase.x, color_phase.y, true)) < 0 )
+ return code;
}
if (entire_box.p.x != 0 || entire_box.p.y != 0 ||
entire_box.q.x != pie->image.Width ||
@@ -1828,10 +1838,10 @@ clist_image_unknowns(gx_device *dev, const clist_image_enum *pie)
uint unknown = 0;
/*
- * Determine if the CTM, color space, and clipping region (and, for
- * masked images or images with CombineWithColor, the current color)
- * are unknown. Set the device state in anticipation of the values
- * becoming known.
+ * Determine if the CTM, color space, fill_adjust and clipping region,
+ * (and, for masked images or images with CombineWithColor, the current
+ * color) are unknown. Set the device state in anticipation of the
+ * values becoming known.
*/
if (cdev->gs_gstate.ctm.xx != pgs->ctm.xx ||
cdev->gs_gstate.ctm.xy != pgs->ctm.xy ||
@@ -1846,14 +1856,18 @@ clist_image_unknowns(gx_device *dev, const clist_image_enum *pie)
if (pie->color_space.id == gs_no_id) { /* masked image */
cdev->color_space.space = 0; /* for GC */
} else { /* not masked */
- if (cdev->color_space.id == pie->color_space.id) {
- /* The color space pointer might not be valid: update it. */
- cdev->color_space.space = pie->color_space.space;
- } else {
+ if (cdev->color_space.id != pie->color_space.id ||
+ cdev->color_space.space != pie->color_space.space) {
unknown |= color_space_known;
+ cdev->color_space.space = pie->color_space.space;
cdev->color_space = pie->color_space;
}
}
+ if (cdev->gs_gstate.fill_adjust.x != pgs->fill_adjust.x ||
+ cdev->gs_gstate.fill_adjust.y != pgs->fill_adjust.y) {
+ unknown |= fill_adjust_known;
+ cdev->gs_gstate.fill_adjust = pgs->fill_adjust;
+ }
if (cmd_check_clip_path(cdev, pie->pcpath))
unknown |= clip_path_known;
/*
@@ -1874,17 +1888,17 @@ clist_image_unknowns(gx_device *dev, const clist_image_enum *pie)
cdev->gs_gstate.text_knockout = pgs->text_knockout;
cdev->gs_gstate.renderingintent = pgs->renderingintent;
}
- if (cdev->gs_gstate.opacity.alpha != pgs->opacity.alpha) {
- unknown |= opacity_alpha_known;
- cdev->gs_gstate.opacity.alpha = pgs->opacity.alpha;
+ if (cdev->gs_gstate.alphaisshape != pgs->alphaisshape) {
+ unknown |= ais_known;
+ cdev->gs_gstate.alphaisshape = pgs->alphaisshape;
}
- if (cdev->gs_gstate.shape.alpha != pgs->shape.alpha) {
- unknown |= shape_alpha_known;
- cdev->gs_gstate.shape.alpha = pgs->shape.alpha;
+ if (cdev->gs_gstate.strokeconstantalpha != pgs->strokeconstantalpha) {
+ unknown |= stroke_alpha_known;
+ cdev->gs_gstate.strokeconstantalpha = pgs->strokeconstantalpha;
}
- if (cdev->gs_gstate.alpha != pgs->alpha) {
- unknown |= alpha_known;
- cdev->gs_gstate.alpha = pgs->alpha;
+ if (cdev->gs_gstate.fillconstantalpha != pgs->fillconstantalpha) {
+ unknown |= fill_alpha_known;
+ cdev->gs_gstate.fillconstantalpha = pgs->fillconstantalpha;
}
return unknown;
}
diff --git a/base/gxclio.h b/base/gxclio.h
index d26deb18..9e2e28f9 100644
--- a/base/gxclio.h
+++ b/base/gxclio.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxclip.c b/base/gxclip.c
index b0924307..f566e09f 100644
--- a/base/gxclip.c
+++ b/base/gxclip.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxclip.h b/base/gxclip.h
index c052200c..70640afc 100644
--- a/base/gxclip.h
+++ b/base/gxclip.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxclip2.c b/base/gxclip2.c
index 187f7d06..1b4d1558 100644
--- a/base/gxclip2.c
+++ b/base/gxclip2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -230,7 +230,7 @@ tile_clip_copy_mono(gx_device * dev,
/* Copy a tile slice to the memory device buffer. */
memcpy(cdev->buffer.bytes,
cdev->tiles.data + cy * cdev->tiles.raster,
- cdev->tiles.raster * ny);
+ (size_t)cdev->tiles.raster * ny);
/* Intersect the tile with the source data. */
/* mcolor0 and mcolor1 invert the data if needed. */
/* This call can't fail. */
diff --git a/base/gxclip2.h b/base/gxclip2.h
index 94da29cd..20ebf024 100644
--- a/base/gxclip2.h
+++ b/base/gxclip2.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxclipm.c b/base/gxclipm.c
index 0a98eb06..ec02ba9a 100644
--- a/base/gxclipm.c
+++ b/base/gxclipm.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -241,7 +241,7 @@ mask_clip_copy_mono(gx_device * dev,
/* Copy a tile slice to the memory device buffer. */
memcpy(cdev->buffer.bytes,
cdev->tiles.data + cy * cdev->tiles.raster,
- cdev->tiles.raster * ny);
+ (size_t)cdev->tiles.raster * ny);
/* Intersect the tile with the source data. */
/* mcolor0 and mcolor1 invert the data if needed. */
/* This call can't fail. */
diff --git a/base/gxclipm.h b/base/gxclipm.h
index dd7886d9..dcae2baf 100644
--- a/base/gxclipm.h
+++ b/base/gxclipm.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxclipsr.h b/base/gxclipsr.h
index 419a0dc1..20e57011 100644
--- a/base/gxclipsr.h
+++ b/base/gxclipsr.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxclist.c b/base/gxclist.c
index c5e8fead..9df5f7c9 100644
--- a/base/gxclist.c
+++ b/base/gxclist.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -342,6 +342,23 @@ clist_init_bands(gx_device * dev, gx_device_memory *bdev, uint data_size,
return 0;
}
+/* Minimum BufferSpace needed when writing the clist */
+/* This is an exported function because it is used to set up render threads */
+size_t
+clist_minimum_buffer(int nbands) {
+
+ /* Leave enough room after states for commands that write a reasonable
+ * amount of data. The cmd_largest_size and the data_bits_size should be
+ * enough to buffer command operands. The data_bits_size is the level
+ * at which commands should expect to split data across buffers. If this
+ * extra space is a little large, it doesn't really hurt.
+ */
+ return (nbands * (ulong) sizeof(gx_clist_state) +
+ sizeof(cmd_prefix) +
+ cmd_largest_size +
+ data_bits_size);
+}
+
/*
* Initialize the allocation for the band states, which are used only
* when writing. Requires: nbands. Sets: states, cbuf, cend.
@@ -353,14 +370,9 @@ clist_init_states(gx_device * dev, byte * init_data, uint data_size)
&((gx_device_clist *)dev)->writer;
ulong state_size = cdev->nbands * (ulong) sizeof(gx_clist_state);
/* Align to the natural boundary for ARM processors, bug 689600 */
- long alignment = (-(long)init_data) & (sizeof(init_data) - 1);
+ intptr_t alignment = (-(intptr_t)init_data) & (sizeof(init_data) - 1);
- /*
- * The +100 in the next line is bogus, but we don't know what the
- * real check should be. We're effectively assuring that at least 100
- * bytes will be available to buffer command operands.
- */
- if (state_size + sizeof(cmd_prefix) + cmd_largest_size + 100 + alignment > data_size)
+ if (clist_minimum_buffer(cdev->nbands) > data_size)
return_error(gs_error_rangecheck);
/* The end buffer position is not affected by alignment */
cdev->cend = init_data + data_size;
@@ -483,6 +495,7 @@ clist_init_data(gx_device * dev, byte * init_data, uint data_size)
if (gdev_mem_bits_size(&bdev, band_width, band_height, &cdev->page_line_ptrs_offset) < 0)
return_error(gs_error_VMerror);
}
+ cdev->pdf14_trans_group_level = -1; /* to prevent any initial op except PUSH_DEVICE */
cdev->ins_count = 0;
code = clist_init_tile_cache(dev, data, bits_size);
if (code < 0) {
@@ -1224,8 +1237,8 @@ clist_writer_push_no_cropping(gx_device_clist_writer *cdev)
if (buf == NULL)
return_error(gs_error_VMerror);
- if_debug4m('v', cdev->memory, "[v]push cropping[%d], min=%d, max=%d, buf=%p\n",
- cdev->cropping_level, cdev->cropping_min, cdev->cropping_max, buf);
+ if_debug4m('v', cdev->memory, "[v]push cropping[%d], min=%d, max=%d, buf="PRI_INTPTR"\n",
+ cdev->cropping_level, cdev->cropping_min, cdev->cropping_max, (intptr_t)buf);
buf->next = cdev->cropping_stack;
cdev->cropping_stack = buf;
buf->cropping_min = cdev->cropping_min;
@@ -1261,8 +1274,8 @@ clist_writer_pop_cropping(gx_device_clist_writer *cdev)
cdev->temp_mask_id = buf->temp_mask_id;
cdev->cropping_stack = buf->next;
cdev->cropping_level--;
- if_debug4m('v', cdev->memory, "[v]pop cropping[%d] min=%d, max=%d, buf=%p\n",
- cdev->cropping_level, cdev->cropping_min, cdev->cropping_max, buf);
+ if_debug4m('v', cdev->memory, "[v]pop cropping[%d] min=%d, max=%d, buf="PRI_INTPTR"\n",
+ cdev->cropping_level, cdev->cropping_min, cdev->cropping_max, (intptr_t)buf);
gs_free_object(cdev->memory, buf, "clist_writer_transparency_pop");
return 0;
}
@@ -1333,12 +1346,11 @@ clist_put_data(const gx_device_clist *cdev, int select, int64_t offset, const by
}
gx_device_clist *
-clist_make_accum_device(gx_device *target, const char *dname, void *base, int space,
+clist_make_accum_device(gs_memory_t *mem, gx_device *target, const char *dname, void *base, int space,
gx_device_buf_procs_t *buf_procs, gx_band_params_t *band_params,
bool use_memory_clist, bool uses_transparency,
gs_pattern1_instance_t *pinst)
{
- gs_memory_t *mem = target->memory;
gx_device_clist *cdev = gs_alloc_struct(mem, gx_device_clist,
&st_device_clist, "clist_make_accum_device");
gx_device_clist_writer *cwdev = (gx_device_clist_writer *)cdev;
@@ -1396,7 +1408,7 @@ clist_make_accum_device(gx_device *target, const char *dname, void *base, int sp
/* Fields left zeroed :
int max_fill_band;
- int is_printer;
+ dev_proc_dev_spec_op(orig_spec_op);
float MediaSize[2];
float ImagingBBox[4];
bool ImagingBBox_set;
@@ -1413,3 +1425,25 @@ clist_make_accum_device(gx_device *target, const char *dname, void *base, int sp
*/
return cdev;
}
+
+/* GC information */
+#define DEVICE_MUTATED_TO_CLIST(pdev) \
+ (((gx_device_clist_mutatable *)(pdev))->buffer_space != 0)
+
+static
+ENUM_PTRS_WITH(device_clist_mutatable_enum_ptrs, gx_device_clist_mutatable *pdev)
+ if (DEVICE_MUTATED_TO_CLIST(pdev))
+ ENUM_PREFIX(st_device_clist, 0);
+ else
+ ENUM_PREFIX(st_device_forward, 0);
+ break;
+ENUM_PTRS_END
+static
+RELOC_PTRS_WITH(device_clist_mutatable_reloc_ptrs, gx_device_clist_mutatable *pdev)
+{
+ if (DEVICE_MUTATED_TO_CLIST(pdev))
+ RELOC_PREFIX(st_device_clist);
+ else
+ RELOC_PREFIX(st_device_forward);
+} RELOC_PTRS_END
+public_st_device_clist_mutatable();
diff --git a/base/gxclist.h b/base/gxclist.h
index e1e7ff1b..cdb0136f 100644
--- a/base/gxclist.h
+++ b/base/gxclist.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -182,7 +182,7 @@ typedef struct gx_clist_state_s gx_clist_state;
uint data_size; /* size of buffer */\
gx_band_params_t band_params; /* band buffering parameters */\
bool do_not_open_or_close_bandfiles; /* if true, do not open/close bandfiles */\
- int is_printer; /* if true, then clist is based on a prn device */\
+ dev_proc_dev_spec_op((*orig_spec_op)); /* Original dev spec op handler */\
/* Following are used for both writing and reading. */\
gx_bits_cache_chunk *cache_chunk; /* the only chunk of bits */\
gx_bits_cache bits;\
@@ -329,6 +329,7 @@ struct gx_device_clist_writer_s {
/* above set when not at page level with no SMask or when */
/* the page level BM, shape or opacity alpha needs tranaparency */
int pdf14_trans_group_level;/* 0 when at page level group -- push increments, pop decrements */
+ /* -1 when PUSH_DEVICE not yet performed to prevent spurious ops */
int pdf14_smask_level; /* 0 when at SMask None -- push increments, pop decrements */
bool page_pdf14_needed; /* save page level pdf14_needed state */
@@ -477,7 +478,7 @@ void clist_update_trans_bbox(gx_device_clist_writer *dev, gs_int_rect *bbox);
/* Make a clist device for accumulating. Used for pattern-clist as well as */
/* for pdf14 pages that are too large to be done in page mode. */
gx_device_clist *
-clist_make_accum_device(gx_device *target, const char *dname, void *base, int space,
+clist_make_accum_device(gs_memory_t *mem, gx_device *target, const char *dname, void *base, int space,
gx_device_buf_procs_t *buf_procs, gx_band_params_t *band_params,
bool use_memory_clist, bool uses_transparency,
gs_pattern1_instance_t *pinst);
@@ -547,6 +548,11 @@ clist_enable_multi_thread_render(gx_device *dev);
void
clist_teardown_render_threads(gx_device *dev);
+/* Minimum BufferSpace needed when writing the clist */
+/* This is an exported function because it is used to set up render threads */
+/* and in clist_init_states to make sure the buffer is large enough */
+size_t clist_minimum_buffer(int nbands);
+
#ifdef DEBUG
#define clist_debug_rect clist_debug_rect_imp
void clist_debug_rect_imp(int x, int y, int width, int height);
@@ -609,4 +615,50 @@ void clist_debug_set_ctm_imp(const gs_matrix *m);
crop_copy_y(dev, data, data_x, raster, id, y, h);\
END
+/* Devices that are expected to be able to 'mutate' into being clist
+ * devices have to be constructed in a particular way. They have to
+ * have to have the "header" be padded out to a given size (so the clist
+ * fields can all fit in at the top), and then the device specific
+ * fields can follow this.
+ * These fields should follow gx_device_common. */
+#define gx_device_clist_mutatable_common\
+ byte skip[max(sizeof(gx_device_memory), sizeof(gx_device_clist)) -\
+ sizeof(gx_device) + sizeof(double) /* padding */];\
+ long buffer_space; /* amount of space for clist buffer, */\
+ /* 0 means not using clist */\
+ byte *buf; /* buffer for rendering */\
+ gs_memory_t *buffer_memory; /* allocator for command list */\
+ gs_memory_t *bandlist_memory; /* allocator for bandlist files */\
+ uint clist_disable_mask; /* mask of clist options to disable */\
+ gx_device_procs orig_procs /* original (std_)procs */
+
+
+#define GX_CLIST_MUTATABLE_DEVICE_DEFAULTS \
+ { 0 }, /* skip */\
+ 0, /* buffer_space */\
+ NULL, /* buf */\
+ 0, /* buffer_memory */\
+ 0, /* bandlist_memory */\
+ 0, /* clist_disable_mask */\
+ { NULL } /* orig_procs */
+
+typedef struct {
+ gx_device_common;
+ gx_device_clist_mutatable_common;
+} gx_device_clist_mutatable;
+
+extern_st(st_device_clist_mutatable);
+#define public_st_device_clist_mutatable() /* in gxclist.c */\
+ gs_public_st_complex_only(st_device_clist_mutatable,\
+ gx_device_clist_mutatable, "gx_device_clist_mutatable", 0, \
+ device_clist_mutatable_enum_ptrs, device_clist_mutatable_reloc_ptrs,\
+ gx_device_finalize)
+#define st_device_clist_mutatable_max_ptrs\
+ (st_device_clist_mutable_max_ptrs)
+
+/* A useful check to determine if a device that can be mutated to be a
+ * clist has undergone such a mutation. */
+#define CLIST_MUTATABLE_HAS_MUTATED(pdev) \
+ (((gx_device_clist_mutatable *)(pdev))->buffer_space != 0)
+
#endif /* gxclist_INCLUDED */
diff --git a/base/gxcllzw.c b/base/gxcllzw.c
index 9308ca27..333d49d4 100644
--- a/base/gxcllzw.c
+++ b/base/gxcllzw.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxclmem.c b/base/gxclmem.c
index acd695c8..e4791152 100644
--- a/base/gxclmem.c
+++ b/base/gxclmem.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -491,8 +491,8 @@ memfile_fclose(clist_file_ptr cf, const char *fname, bool delete)
if (f->openlist != NULL || ((f->base_memfile != NULL) && f->base_memfile->is_open)) {
/* TODO: do the cleanup rather than just giving an error */
emprintf1(f->memory,
- "Attempt to delete a memfile still open for read: %p\n",
- f);
+ "Attempt to delete a memfile still open for read: "PRI_INTPTR"\n",
+ (intptr_t)f);
return_error(gs_error_invalidfileaccess);
} else {
/* Free the memory used by this memfile */
@@ -1058,8 +1058,8 @@ memfile_rewind(clist_file_ptr cf, bool discard_data, const char *ignore_fname)
if (f->openlist != NULL || f->base_memfile != NULL) {
/* TODO: Move the data so it is still connected to other open files */
emprintf1(f->memory,
- "memfile_rewind(%p) with discard_data=true failed: ",
- f);
+ "memfile_rewind("PRI_INTPTR") with discard_data=true failed: ",
+ (intptr_t)f);
f->error_code = gs_note_error(gs_error_ioerror);
return f->error_code;
}
diff --git a/base/gxclmem.h b/base/gxclmem.h
index 3eac6036..18fc9511 100644
--- a/base/gxclmem.h
+++ b/base/gxclmem.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxclpage.c b/base/gxclpage.c
index cf989e24..63573269 100644
--- a/base/gxclpage.c
+++ b/base/gxclpage.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxclpage.h b/base/gxclpage.h
index f419778b..eaf8573c 100644
--- a/base/gxclpage.h
+++ b/base/gxclpage.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxclpath.c b/base/gxclpath.c
index 9a57932e..c97379b9 100644
--- a/base/gxclpath.c
+++ b/base/gxclpath.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -369,8 +369,8 @@ cmd_check_clip_path(gx_device_clist_writer * cldev, const gx_clip_path * pcpath)
* or stroking.
*/
#define FILL_KNOWN\
- (cj_ac_sa_known | flatness_known | op_bm_tk_known | opacity_alpha_known |\
- shape_alpha_known | fill_adjust_known | alpha_known | clip_path_known)
+ (cj_ac_sa_known | flatness_known | op_bm_tk_known | ais_known |\
+ fill_alpha_known | fill_adjust_known | stroke_alpha_known | clip_path_known)
static void
cmd_check_fill_known(gx_device_clist_writer* cdev, const gs_gstate* pgs,
double flatness, const gs_fixed_point* padjust,
@@ -409,13 +409,17 @@ cmd_check_fill_known(gx_device_clist_writer* cdev, const gs_gstate* pgs,
state_update(stroke_overprint);
state_update(renderingintent);
}
- if (state_neq(opacity.alpha)) {
- *punknown |= opacity_alpha_known;
- state_update(opacity.alpha);
+ if (state_neq(alphaisshape)) {
+ *punknown |= ais_known;
+ state_update(alphaisshape);
}
- if (state_neq(shape.alpha)) {
- *punknown |= shape_alpha_known;
- state_update(shape.alpha);
+ if (state_neq(strokeconstantalpha)) {
+ *punknown |= stroke_alpha_known;
+ state_update(strokeconstantalpha);
+ }
+ if (cdev->gs_gstate.fillconstantalpha != pgs->fillconstantalpha) {
+ *punknown |= fill_alpha_known;
+ state_update(fillconstantalpha);
}
if (cdev->gs_gstate.fill_adjust.x != padjust->x ||
cdev->gs_gstate.fill_adjust.y != padjust->y
@@ -423,10 +427,6 @@ cmd_check_fill_known(gx_device_clist_writer* cdev, const gs_gstate* pgs,
*punknown |= fill_adjust_known;
cdev->gs_gstate.fill_adjust = *padjust;
}
- if (cdev->gs_gstate.alpha != pgs->alpha) {
- *punknown |= alpha_known;
- state_update(alpha);
- }
if (cmd_check_clip_path(cdev, pcpath))
*punknown |= clip_path_known;
}
@@ -486,9 +486,9 @@ cmd_write_unknown(gx_device_clist_writer * cldev, gx_clist_state * pcls,
sizeof(float) + /* line width */
sizeof(float) + /* miter limit */
3 + /* bm_tk, op, and rend intent */
- sizeof(float) * 2 + /* opacity/shape alpha */
- sizeof(cldev->gs_gstate.alpha)
- ];
+ sizeof(cldev->gs_gstate.alphaisshape) +
+ sizeof(float) * 2 /* ca CA */
+ ];
byte *bp = buf;
if (unknown & cap_join_known) {
*bp++ = (cldev->gs_gstate.line_params.start_cap << 3) +
@@ -528,18 +528,18 @@ cmd_write_unknown(gx_device_clist_writer * cldev, gx_clist_state * pcls,
cldev->gs_gstate.overprint;
*bp++ = cldev->gs_gstate.renderingintent;
}
- if (unknown & opacity_alpha_known) {
- memcpy(bp, &cldev->gs_gstate.opacity.alpha, sizeof(float));
- bp += sizeof(float);
+ if (unknown & ais_known) {
+ memcpy(bp, &cldev->gs_gstate.alphaisshape,
+ sizeof(cldev->gs_gstate.alphaisshape));
+ bp += sizeof(cldev->gs_gstate.alphaisshape);
}
- if (unknown & shape_alpha_known) {
- memcpy(bp, &cldev->gs_gstate.shape.alpha, sizeof(float));
+ if (unknown & stroke_alpha_known) {
+ memcpy(bp, &cldev->gs_gstate.strokeconstantalpha, sizeof(float));
bp += sizeof(float);
}
- if (unknown & alpha_known) {
- memcpy(bp, &cldev->gs_gstate.alpha,
- sizeof(cldev->gs_gstate.alpha));
- bp += sizeof(cldev->gs_gstate.alpha);
+ if (unknown & fill_alpha_known) {
+ memcpy(bp, &cldev->gs_gstate.fillconstantalpha, sizeof(float));
+ bp += sizeof(float);
}
code = set_cmd_put_op(&dp, cldev, pcls, cmd_opv_set_misc2,
1 + cmd_sizew(misc2_unknown) + (bp - buf));
@@ -904,7 +904,7 @@ clist_fill_stroke_path(gx_device * pdev, const gs_gstate * pgs,
if (pdevc_stroke == NULL || pdevc_fill == NULL)
return_error(gs_error_unknownerror); /* shouldn't happen */
- if ((cdev->disable_mask & (clist_disable_fill_path || clist_disable_stroke_path)) ||
+ if ((cdev->disable_mask & (clist_disable_fill_path | clist_disable_stroke_path)) ||
gs_debug_c(',')
) {
/* Disable path-based banding. */
diff --git a/base/gxclpath.h b/base/gxclpath.h
index 19e008c2..962c5704 100644
--- a/base/gxclpath.h
+++ b/base/gxclpath.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -37,9 +37,9 @@
/* segment_notes must fit in the first byte (i.e. be less than 1<<7). */
#define segment_notes_known (1<<6) /* not used in pcls->known */
/* (flags beyond this point require an extra byte) */
-#define opacity_alpha_known (1<<7)
-#define shape_alpha_known (1<<8)
-#define alpha_known (1<<9)
+#define ais_known (1<<7)
+#define stroke_alpha_known (1<<8)
+#define fill_alpha_known (1<<9)
#define misc2_all_known ((1<<10)-1)
/* End of misc2 flags. */
/* The following bits don't get passed in misc2, so are only limited by sizeof uint */
diff --git a/base/gxclrast.c b/base/gxclrast.c
index 61982fff..60c0ef77 100644
--- a/base/gxclrast.c
+++ b/base/gxclrast.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -510,8 +510,8 @@ clist_playback_band(clist_playback_action playback_action,
} clip_save;
bool in_clip = false;
gs_gstate gs_gstate;
- gx_device_color fill_color;
- gx_device_color stroke_color;
+ gx_device_color fill_color = { 0 };
+ gx_device_color stroke_color = { 0 };
float dash_pattern[cmd_max_dash];
gx_fill_params fill_params;
gx_stroke_params stroke_params;
@@ -612,6 +612,8 @@ in: /* Initialize for a new page. */
memset(&gs_gstate, 0, sizeof(gs_gstate));
GS_STATE_INIT_VALUES_CLIST((&gs_gstate));
code = gs_gstate_initialize(&gs_gstate, mem);
+ if (code < 0)
+ goto out;
gs_gstate.device = tdev;
gs_gstate.view_clip = NULL; /* Avoid issues in pdf14 fill stroke */
gs_gstate.clip_path = &clip_path;
@@ -620,11 +622,39 @@ in: /* Initialize for a new page. */
code = gs_note_error(gs_error_VMerror);
goto out;
}
- pcs->type->install_cspace(pcs, &gs_gstate);
- gs_gstate.color[0].color_space = pcs;
- rc_increment_cs(pcs);
+ code = pcs->type->install_cspace(pcs, &gs_gstate);
+ if (code < 0)
+ goto out;
+ gs_gstate.color[0].color_space = pcs; /* we already have one ref */
gs_gstate.color[1].color_space = pcs;
- rc_increment_cs(pcs);
+ rc_increment_cs(pcs); /* increment for second ref */
+ /* Initialize client color and device color */
+ gs_gstate.color[0].ccolor =
+ gs_alloc_struct(mem, gs_client_color, &st_client_color, "clist_playback_band");
+ gs_gstate.color[1].ccolor =
+ gs_alloc_struct(mem, gs_client_color, &st_client_color, "clist_playback_band");
+ gs_gstate.color[0].dev_color =
+ gs_alloc_struct(mem, gx_device_color, &st_device_color, "clist_playback_band");
+ gs_gstate.color[1].dev_color =
+ gs_alloc_struct(mem, gx_device_color, &st_device_color, "clist_playback_band");
+ if (gs_gstate.color[0].ccolor == 0 || gs_gstate.color[0].dev_color == 0 ||
+ gs_gstate.color[1].ccolor == 0 || gs_gstate.color[1].dev_color == 0
+ ) {
+ gs_free_object(mem, gs_gstate.color[1].ccolor, "clist_playback_band");
+ gs_free_object(mem, gs_gstate.color[0].dev_color, "clist_playback_band");
+ gs_free_object(mem, gs_gstate.color[1].dev_color, "clist_playback_band");
+ return_error(gs_error_VMerror);
+ }
+ gs_gstate.color[0].color_space->pclient_color_space_data =
+ pcs->pclient_color_space_data;
+ cs_full_init_color(gs_gstate.color[0].ccolor, pcs);
+ gx_unset_dev_color(&gs_gstate);
+
+ gs_gstate.color[1].color_space->pclient_color_space_data =
+ pcs->pclient_color_space_data;
+ cs_full_init_color(gs_gstate.color[1].ccolor, pcs);
+ gx_unset_dev_color(&gs_gstate);
+
/* Remove the ICC link cache and replace with the device link cache
so that we share the cache across bands */
rc_decrement(gs_gstate.icc_link_cache,"clist_playback_band");
@@ -1993,18 +2023,22 @@ idata: data_size = 0;
/* if the color is a pattern, it may have had the "is_locked" flag set */
/* clear those now (see do_fill_stroke). */
if (gx_dc_is_pattern1_color(&stroke_color)) {
- gs_id id = stroke_color.colors.pattern.p_tile->id;
+ if (stroke_color.colors.pattern.p_tile != NULL) {
+ gs_id id = stroke_color.colors.pattern.p_tile->id;
- code = gx_pattern_cache_entry_set_lock(&gs_gstate, id, false);
- if (code < 0)
- return code; /* unlock failed -- should not happen */
+ code = gx_pattern_cache_entry_set_lock(&gs_gstate, id, false);
+ if (code < 0)
+ return code; /* unlock failed -- should not happen */
+ }
}
if (gx_dc_is_pattern1_color(&fill_color)) {
- gs_id id = fill_color.colors.pattern.p_tile->id;
+ if (fill_color.colors.pattern.p_tile != NULL) {
+ gs_id id = fill_color.colors.pattern.p_tile->id;
- code = gx_pattern_cache_entry_set_lock(&gs_gstate, id, false);
- if (code < 0)
- return code; /* unlock failed -- should not happen */
+ code = gx_pattern_cache_entry_set_lock(&gs_gstate, id, false);
+ if (code < 0)
+ return code; /* unlock failed -- should not happen */
+ }
}
break;
case cmd_opv_stroke:
@@ -2353,6 +2387,14 @@ idata: data_size = 0;
gx_pattern_cache_free(gs_gstate.pattern_cache);
gs_gstate.pattern_cache = NULL;
}
+ /* Free the client color and device colors allocated upon entry */
+ gs_free_object(mem, gs_gstate.color[0].ccolor, "clist_playback_band");
+ gs_free_object(mem, gs_gstate.color[1].ccolor, "clist_playback_band");
+ gs_free_object(mem, gs_gstate.color[0].dev_color, "clist_playback_band");
+ gs_free_object(mem, gs_gstate.color[1].dev_color, "clist_playback_band");
+ gs_gstate.color[0].ccolor = gs_gstate.color[1].ccolor = NULL;
+ gs_gstate.color[0].dev_color = gs_gstate.color[1].dev_color = NULL;
+
/* The imager state release will decrement the icc link cache. To avoid
race conditions lock the cache */
gx_monitor_enter(cdev->icc_cache_cl->lock);
@@ -2379,6 +2421,9 @@ idata: data_size = 0;
if (code < 0) {
if (pfs.dev != NULL)
term_patch_fill_state(&pfs);
+ rc_decrement(gs_gstate.color[0].color_space, "clist_playback_band");
+ rc_decrement(gs_gstate.color[1].color_space, "clist_playback_band");
+ gs_free_object(mem, cbuf_storage, "clist_playback_band(cbuf_storage)");
gx_cpath_free(&clip_path, "clist_playback_band");
if (pcpath != &clip_path)
gx_cpath_free(pcpath, "clist_playback_band");
@@ -2391,7 +2436,8 @@ idata: data_size = 0;
goto in;
if (pfs.dev != NULL)
term_patch_fill_state(&pfs);
- gs_free_object(mem, pcs, "clist_playback_band(pcs)");
+ rc_decrement(gs_gstate.color[0].color_space, "clist_playback_band");
+ rc_decrement(gs_gstate.color[1].color_space, "clist_playback_band");
gs_free_object(mem, cbuf_storage, "clist_playback_band(cbuf_storage)");
gx_cpath_free(&clip_path, "clist_playback_band");
if (pcpath != &clip_path)
@@ -2749,17 +2795,17 @@ read_set_misc2(command_buf_t *pcb, gs_gstate *pgs, segment_notes *pnotes)
*pnotes = (segment_notes)(cb & 0x3f);
if_debug1m('L', pgs->memory, " notes=%d\n", *pnotes);
}
- if (mask & opacity_alpha_known) {
- cmd_get_value(pgs->opacity.alpha, cbp);
- if_debug1m('L', pgs->memory, " opacity.alpha=%g\n", pgs->opacity.alpha);
+ if (mask & ais_known) {
+ cmd_get_value(pgs->alphaisshape, cbp);
+ if_debug1m('L', pgs->memory, " alphaisshape=%d\n", pgs->alphaisshape);
}
- if (mask & shape_alpha_known) {
- cmd_get_value(pgs->shape.alpha, cbp);
- if_debug1m('L', pgs->memory, " shape.alpha=%g\n", pgs->shape.alpha);
+ if (mask & stroke_alpha_known) {
+ cmd_get_value(pgs->strokeconstantalpha, cbp);
+ if_debug1m('L', pgs->memory, " strokeconstantalpha=%g\n", pgs->strokeconstantalpha);
}
- if (mask & alpha_known) {
- cmd_get_value(pgs->alpha, cbp);
- if_debug1m('L', pgs->memory, " alpha=%u\n", pgs->alpha);
+ if (mask & fill_alpha_known) {
+ cmd_get_value(pgs->fillconstantalpha, cbp);
+ if_debug1m('L', pgs->memory, " fillconstantalpha=%u\n", (uint)(pgs->fillconstantalpha));
}
pcb->ptr = cbp;
return 0;
diff --git a/base/gxclread.c b/base/gxclread.c
index 66545002..f2ebf6b5 100644
--- a/base/gxclread.c
+++ b/base/gxclread.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -197,9 +197,9 @@ rb:
}
# endif
if_debug5m('l', ss->local_memory,
- "[l]reading for bands (%d,%d) at bfile %ld, cfile %ld, length %u\n",
+ "[l]reading for bands (%d,%d) at bfile %"PRId64", cfile %"PRId64", length %u\n",
bmin, bmax,
- (long)(io_procs->ftell(bfile) - sizeof(ss->b_this)), (long)pos, left);
+ (io_procs->ftell(bfile) - sizeof(ss->b_this)), (int64_t)pos, left);
}
}
pw->ptr = q;
@@ -808,7 +808,7 @@ clist_render_rectangle(gx_device_clist *cldev, const gs_int_rect *prect,
* a gx_saved_page with non-zero cfile or bfile.
*/
bdev->band_offset_x = 0;
- bdev->band_offset_y = band_first * band_height;
+ bdev->band_offset_y = band_first * (long)band_height;
pinfo = &(crdev->page_info);
} else {
const gx_placed_page *ppage = &ppages[i];
diff --git a/base/gxclrect.c b/base/gxclrect.c
index 00f01ba2..6f71b61a 100644
--- a/base/gxclrect.c
+++ b/base/gxclrect.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -599,7 +599,8 @@ clist_dev_spec_op(gx_device *pdev, int dev_spec_op, void *data, int size)
return 1;
if (dev_spec_op == gxdso_pattern_shfill_doesnt_need_path)
return 1;
- if (dev_spec_op == gxdso_supports_devn) {
+ if (dev_spec_op == gxdso_supports_devn
+ || dev_spec_op == gxdso_skip_icc_component_validation) {
cmm_dev_profile_t *dev_profile;
int code;
code = dev_proc(cdev, get_profile)((gx_device*) cdev, &dev_profile);
@@ -623,8 +624,8 @@ clist_dev_spec_op(gx_device *pdev, int dev_spec_op, void *data, int size)
return cwdev->op_fill_active || cwdev->op_stroke_active;
}
/* forward to the appropriate super class */
- if (cdev->is_printer)
- return gdev_prn_forwarding_dev_spec_op(pdev, dev_spec_op, data, size);
+ if (cdev->orig_spec_op)
+ return cdev->orig_spec_op(pdev, dev_spec_op, data, size);
if (dev_proc(cdev, open_device) == pattern_clist_open_device)
return pattern_accum_dev_spec_op(pdev, dev_spec_op, data, size);
return gx_default_dev_spec_op(pdev, dev_spec_op, data, size);
@@ -985,7 +986,7 @@ clist_copy_planes(gx_device * dev,
}
/* 0x100 fudge is arbitrary, but the BufferSpace is large w.r.t. cbuf size so it doesn't matter */
- if ((cdev->cend - cdev->cnext) < 0x100 + (re.height * bytes_row * (long)cdev->color_info.num_components))
+ if ((cdev->cend - cdev->cnext) < 0x100 + ((long)cdev->color_info.num_components * re.height * bytes_row))
cmd_write_buffer(cdev, cmd_opv_end_run); /* Insure that all planes fit in the bufferspace */
rect.x = rx, rect.y = re.y;
diff --git a/base/gxclthrd.c b/base/gxclthrd.c
index 6792673c..64b6f530 100644
--- a/base/gxclthrd.c
+++ b/base/gxclthrd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -64,7 +64,7 @@ setup_device_and_mem_for_thread(gs_memory_t *chunk_base_mem, gx_device *dev, boo
gs_c_param_list paramlist;
gs_devn_params *pclist_devn_params;
gx_device_buf_space_t buf_space;
- ulong state_size;
+ size_t min_buffer_space;
/* Every thread will have a 'chunk allocator' to reduce the interaction
@@ -114,8 +114,9 @@ setup_device_and_mem_for_thread(gs_memory_t *chunk_base_mem, gx_device *dev, boo
* a profile with the 'special' name "OI_PROFILE" and throw an error.
*/
if (!gscms_is_threadsafe() || (dev->icc_struct != NULL &&
- ((dev->icc_struct->device_profile[0] != NULL &&
- strncmp(dev->icc_struct->device_profile[0]->name, OI_PROFILE, strlen(OI_PROFILE)) == 0)
+ ((dev->icc_struct->device_profile[GS_DEFAULT_DEVICE_PROFILE] != NULL &&
+ strncmp(dev->icc_struct->device_profile[GS_DEFAULT_DEVICE_PROFILE]->name,
+ OI_PROFILE, strlen(OI_PROFILE)) == 0)
|| (dev->icc_struct->proof_profile != NULL &&
strncmp(dev->icc_struct->proof_profile->name, OI_PROFILE, strlen(OI_PROFILE)) == 0)))) {
ndev->icc_struct = gsicc_new_device_profile_array(ndev->memory);
@@ -125,8 +126,8 @@ setup_device_and_mem_for_thread(gs_memory_t *chunk_base_mem, gx_device *dev, boo
code);
goto out_cleanup;
}
- if ((code = gsicc_clone_profile(dev->icc_struct->device_profile[0],
- &(ndev->icc_struct->device_profile[0]), ndev->memory)) < 0) {
+ if ((code = gsicc_clone_profile(dev->icc_struct->device_profile[GS_DEFAULT_DEVICE_PROFILE],
+ &(ndev->icc_struct->device_profile[GS_DEFAULT_DEVICE_PROFILE]), ndev->memory)) < 0) {
emprintf1(dev->memory,
"Error setting up device profile, code=%d. Rendering threads not started.\n",
code);
@@ -176,10 +177,10 @@ setup_device_and_mem_for_thread(gs_memory_t *chunk_base_mem, gx_device *dev, boo
ndev->icc_struct->supports_devn = cdev->icc_struct->supports_devn;
ncdev->page_uses_transparency = cdev->page_uses_transparency;
if_debug3m(gs_debug_flag_icc, cdev->memory,
- "[icc] MT clist device = 0x%p profile = 0x%p handle = 0x%p\n",
- ncdev,
- ncdev->icc_struct->device_profile[0],
- ncdev->icc_struct->device_profile[0]->profile_handle);
+ "[icc] MT clist device = "PRI_INTPTR" profile = "PRI_INTPTR" handle = "PRI_INTPTR"\n",
+ (intptr_t)ncdev,
+ (intptr_t)ncdev->icc_struct->device_profile[GS_DEFAULT_DEVICE_PROFILE],
+ (intptr_t)ncdev->icc_struct->device_profile[GS_DEFAULT_DEVICE_PROFILE]->profile_handle);
/* If the device is_planar, then set the flag in the new_device and the procs */
if ((ncdev->is_planar = cdev->is_planar))
gdev_prn_set_procs_planar(ndev);
@@ -192,11 +193,12 @@ setup_device_and_mem_for_thread(gs_memory_t *chunk_base_mem, gx_device *dev, boo
ncdev->space_params.banding_type = BandingAlways;
code = npdev->printer_procs.buf_procs.size_buf_device
(&buf_space, (gx_device *)ncdev, NULL, ncdev->space_params.band.BandHeight, false);
- /* The 100 is bogus, we are just matching what is in clist_init_states */
- state_size = cdev->nbands * (ulong) sizeof(gx_clist_state) + sizeof(cmd_prefix) + cmd_largest_size + 100;
+ min_buffer_space = clist_minimum_buffer(cdev->nbands);
ncdev->space_params.band.BandBufferSpace = buf_space.bits + buf_space.line_ptrs;
- if (state_size > ncdev->space_params.band.BandBufferSpace)
- ncdev->space_params.band.BandBufferSpace = state_size;
+ /* Check if the BandBufferSpace is large enough to allow us for clist writing */
+ /* to prevent an error from gdev_prn_allocate_memory which checks that. */
+ if (min_buffer_space > ncdev->space_params.band.BandBufferSpace)
+ ncdev->space_params.band.BandBufferSpace = min_buffer_space;
ncdev->space_params.band.tile_cache_size = cdev->page_info.tile_cache_size; /* must be the same */
ncdev->space_params.band.BandBufferSpace += cdev->page_info.tile_cache_size;
diff --git a/base/gxclthrd.h b/base/gxclthrd.h
index be185871..bc83c9bc 100644
--- a/base/gxclthrd.h
+++ b/base/gxclthrd.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxclutil.c b/base/gxclutil.c
index 942ac69f..a66b37b6 100644
--- a/base/gxclutil.c
+++ b/base/gxclutil.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -180,8 +180,8 @@ cmd_write_band(gx_device_clist_writer * cldev, int band_min, int band_max,
cb.band_min = band_min;
cb.band_max = band_max;
cb.pos = cldev->page_info.io_procs->ftell(cfile);
- if_debug3m('l', cldev->memory, "[l]writing for bands (%d,%d) at %ld\n",
- band_min, band_max, (long)cb.pos);
+ if_debug3m('l', cldev->memory, "[l]writing for bands (%d,%d) at %"PRId64"\n",
+ band_min, band_max, cb.pos);
cldev->page_info.io_procs->fwrite_chars(&cb, sizeof(cb), bfile);
if (cp != 0) {
pcl->tail->next = 0; /* terminate the list */
@@ -191,12 +191,12 @@ cmd_write_band(gx_device_clist_writer * cldev, int band_min, int band_max,
(const byte *)cp >= cldev->cend ||
cp->size > cldev->cend - (const byte *)cp
) {
- mlprintf1(cldev->memory, "cmd_write_band error at 0x%lx\n", (ulong) cp);
+ mlprintf1(cldev->memory, "cmd_write_band error at "PRI_INTPTR"\n", (intptr_t) cp);
return_error(gs_error_Fatal);
}
#endif
- if_debug2m('L', cldev->memory, "[L]Wrote cmd id=%ld at %ld\n",
- cp->id, (long)cldev->page_info.io_procs->ftell(cfile));
+ if_debug2m('L', cldev->memory, "[L]Wrote cmd id=%ld at %"PRId64"\n",
+ cp->id, cldev->page_info.io_procs->ftell(cfile));
cldev->page_info.io_procs->fwrite_chars(cp + 1, cp->size, cfile);
}
pcl->head = pcl->tail = 0;
@@ -236,14 +236,14 @@ cmd_write_pseudo_band(gx_device_clist_writer * cldev, unsigned char *pbuf, int d
cb.band_max = band;
cb.pos = cldev->page_info.io_procs->ftell(cfile);
- if_debug2m('l', cldev->memory, "[l]writing pseudo band %d cb pos %ld\n",
- band, (long)cb.pos);
+ if_debug2m('l', cldev->memory, "[l]writing pseudo band %d cb pos %"PRId64"\n",
+ band, cb.pos);
cldev->page_info.io_procs->fwrite_chars(&cb, sizeof(cb), bfile);
/* Now store the information in the cfile */
- if_debug2m('l', cldev->memory, "[l]writing %d bytes into cfile at %ld\n",
- data_size, (long)cldev->page_info.io_procs->ftell(cfile));
+ if_debug2m('l', cldev->memory, "[l]writing %d bytes into cfile at %"PRId64"\n",
+ data_size, cldev->page_info.io_procs->ftell(cfile));
cldev->page_info.io_procs->fwrite_chars(pbuf, data_size, cfile);
@@ -311,6 +311,8 @@ cmd_put_list_op(gx_device_clist_writer * cldev, cmd_list * pcl, uint size)
if ((cldev->error_code =
cmd_write_buffer(cldev, cmd_opv_end_run)) != 0 ||
(size + cmd_headroom > cldev->cend - cldev->cnext)) {
+ if (cldev->error_code == 0)
+ cldev->error_code = gs_error_VMerror;
return 0;
}
else
@@ -321,7 +323,7 @@ cmd_put_list_op(gx_device_clist_writer * cldev, cmd_list * pcl, uint size)
cmd_count_add1(stats_cmd.same_band);
#ifdef DEBUG
if (pcl->tail->size > dp - (byte *) (pcl->tail + 1)) {
- lprintf1("cmd_put_list_op error at 0x%lx\n", (ulong) pcl->tail);
+ lprintf1("cmd_put_list_op error at "PRI_INTPTR"\n", (intptr_t)pcl->tail);
}
#endif
if_debug2m('L', cldev->memory, ", to id=%ld , offset=%ld",
@@ -340,8 +342,8 @@ cmd_put_list_op(gx_device_clist_writer * cldev, cmd_list * pcl, uint size)
if (pcl->tail < pcl->head ||
pcl->tail->size > dp - (byte *) (pcl->tail + 1)
) {
- lprintf1("cmd_put_list_op error at 0x%lx\n",
- (ulong) pcl->tail);
+ lprintf1("cmd_put_list_op error at "PRI_INTPTR"\n",
+ (intptr_t)pcl->tail);
}
#endif
pcl->tail->next = cp;
diff --git a/base/gxclzlib.c b/base/gxclzlib.c
index a2a772a8..d823f092 100644
--- a/base/gxclzlib.c
+++ b/base/gxclzlib.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxcmap.c b/base/gxcmap.c
index 68d3a0bf..7e92621d 100644
--- a/base/gxcmap.c
+++ b/base/gxcmap.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -617,7 +617,7 @@ gs_color_select_t select)
int i = pcs->type->num_components(pcs);
cmm_dev_profile_t *dev_profile = NULL;
gs_color_space_index type = gs_color_space_get_index(pcs);
- int num_src_comps = 1;
+ uchar num_src_comps = 1;
/* Define the rendering intents. */
rendering_params.black_point_comp = pgs->blackptcomp;
@@ -683,13 +683,14 @@ gs_color_select_t select)
return false;
/* Check if the profile is DeviceN (NCLR) */
- if (dev_profile->device_profile[0]->data_cs == gsNCHANNEL) {
+ if (dev_profile->device_profile[GS_DEFAULT_DEVICE_PROFILE]->data_cs == gsNCHANNEL) {
if (dev_profile->spotnames == NULL)
return false;
if (!dev_profile->spotnames->equiv_cmyk_set) {
/* Note that if the improper NCLR profile is used, then the
composite preview will be wrong. */
- code = gsicc_set_devicen_equiv_colors(dev, pgs, dev_profile->device_profile[0]);
+ code = gsicc_set_devicen_equiv_colors(dev, pgs,
+ dev_profile->device_profile[GS_DEFAULT_DEVICE_PROFILE]);
if (code < 0)
return false;
dev_profile->spotnames->equiv_cmyk_set = true;
@@ -769,13 +770,7 @@ gx_remap_concrete_DGray(const gs_color_space * pcs, const frac * pconc,
gx_device * dev, gs_color_select_t select,
const cmm_dev_profile_t *dev_profile)
{
- if (pgs->alpha == gx_max_color_value)
- (*pgs->cmap_procs->map_gray)
- (pconc[0], pdc, pgs, dev, select);
- else
- (*pgs->cmap_procs->map_rgb_alpha)
- (pconc[0], pconc[0], pconc[0], cv2frac(pgs->alpha),
- pdc, pgs, dev, select);
+ (*pgs->cmap_procs->map_gray)(pconc[0], pdc, pgs, dev, select);
return 0;
}
int
@@ -808,12 +803,8 @@ gx_remap_DeviceGray(const gs_client_color * pc, const gs_color_space * pcs,
/* Save original color space and color info into dev color */
pdc->ccolor.paint.values[0] = pc->paint.values[0];
pdc->ccolor_valid = true;
- if (pgs->alpha == gx_max_color_value)
- (*pgs->cmap_procs->map_gray)
- (fgray, pdc, pgs, dev, select);
- else
- (*pgs->cmap_procs->map_rgb_alpha)
- (fgray, fgray, fgray, cv2frac(pgs->alpha), pdc, pgs, dev, select);
+
+ (*pgs->cmap_procs->map_gray)(fgray, pdc, pgs, dev, select);
return 0;
}
@@ -833,13 +824,8 @@ gx_remap_concrete_DRGB(const gs_color_space * pcs, const frac * pconc,
gx_device * dev, gs_color_select_t select,
const cmm_dev_profile_t *dev_profile)
{
- if (pgs->alpha == gx_max_color_value)
- gx_remap_concrete_rgb(pconc[0], pconc[1], pconc[2],
- pdc, pgs, dev, select);
- else
- gx_remap_concrete_rgb_alpha(pconc[0], pconc[1], pconc[2],
- cv2frac(pgs->alpha),
- pdc, pgs, dev, select);
+
+ gx_remap_concrete_rgb(pconc[0], pconc[1], pconc[2], pdc, pgs, dev, select);
return 0;
}
int
@@ -855,12 +841,8 @@ gx_remap_DeviceRGB(const gs_client_color * pc, const gs_color_space * pcs,
pdc->ccolor.paint.values[1] = pc->paint.values[1];
pdc->ccolor.paint.values[2] = pc->paint.values[2];
pdc->ccolor_valid = true;
- if (pgs->alpha == gx_max_color_value)
- gx_remap_concrete_rgb(fred, fgreen, fblue,
- pdc, pgs, dev, select);
- else
- gx_remap_concrete_rgb_alpha(fred, fgreen, fblue, cv2frac(pgs->alpha),
- pdc, pgs, dev, select);
+
+ gx_remap_concrete_rgb(fred, fgreen, fblue, pdc, pgs, dev, select);
return 0;
}
@@ -1419,7 +1401,7 @@ cmap_separation_halftoned(frac all, gx_device_color * pdc,
const gs_gstate * pgs, gx_device * dev, gs_color_select_t select,
const gs_color_space *pcs)
{
- uchar i, ncomps = dev->color_info.num_components;
+ uint i, ncomps = dev->color_info.num_components;
bool additive = dev->color_info.polarity == GX_CINFO_POLARITY_ADDITIVE;
frac comp_value = all;
frac cm_comps[GX_DEVICE_COLOR_MAX_COMPONENTS];
@@ -1474,7 +1456,7 @@ static void
cmap_separation_direct(frac all, gx_device_color * pdc, const gs_gstate * pgs,
gx_device * dev, gs_color_select_t select, const gs_color_space *pcs)
{
- uchar i, ncomps = dev->color_info.num_components;
+ uint i, ncomps = dev->color_info.num_components;
bool additive = dev->color_info.polarity == GX_CINFO_POLARITY_ADDITIVE;
frac comp_value = all;
frac cm_comps[GX_DEVICE_COLOR_MAX_COMPONENTS];
@@ -1887,7 +1869,7 @@ gx_default_8bit_map_gray_color(gx_device * dev, const gx_color_value cv[])
{
gx_color_index color = gx_color_value_to_byte(cv[0]);
- return (color == gx_no_color_index ? color ^ 1 : color);
+ return color;
}
int
@@ -2002,7 +1984,11 @@ cmyk_8bit_map_cmyk_color(gx_device * dev, const gx_color_value cv[])
((uint)gx_color_value_to_byte(cv[1]) << 16) +
((uint)gx_color_value_to_byte(cv[0]) << 24);
+#if ARCH_SIZEOF_GX_COLOR_INDEX > 4
+ return color;
+#else
return (color == gx_no_color_index ? color ^ 1 : color);
+#endif
}
gx_color_index
diff --git a/base/gxcmap.h b/base/gxcmap.h
index bbb903c5..fd3e9793 100644
--- a/base/gxcmap.h
+++ b/base/gxcmap.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxcolor2.h b/base/gxcolor2.h
index 6a209d94..bb9376eb 100644
--- a/base/gxcolor2.h
+++ b/base/gxcolor2.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxcomp.h b/base/gxcomp.h
index eaa86ec5..2c741095 100644
--- a/base/gxcomp.h
+++ b/base/gxcomp.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxcoord.h b/base/gxcoord.h
index aa3e05c1..b8633928 100644
--- a/base/gxcoord.h
+++ b/base/gxcoord.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxcpath.c b/base/gxcpath.c
index 4c3d3478..c9fde9d4 100644
--- a/base/gxcpath.c
+++ b/base/gxcpath.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -172,8 +172,8 @@ gx_cpath_init_contained_shared(gx_clip_path * pcpath,
{
if (shared) {
if (shared->path.segments == &shared->path.local_segments) {
- lprintf1("Attempt to share (local) segments of clip path 0x%lx!\n",
- (ulong) shared);
+ lprintf1("Attempt to share (local) segments of clip path "PRI_INTPTR"!\n",
+ (intptr_t)shared);
return_error(gs_error_Fatal);
}
*pcpath = *shared;
@@ -230,8 +230,8 @@ gx_cpath_init_local_shared_nested(gx_clip_path * pcpath,
if (shared) {
if ((shared->path.segments == &shared->path.local_segments) &&
!safely_nested) {
- lprintf1("Attempt to share (local) segments of clip path 0x%lx!\n",
- (ulong) shared);
+ lprintf1("Attempt to share (local) segments of clip path "PRI_INTPTR"!\n",
+ (intptr_t)shared);
return_error(gs_error_Fatal);
}
pcpath->path = shared->path;
@@ -403,8 +403,10 @@ gx_cpath_path_list_new(gs_memory_t *mem, gx_clip_path *pcpath, int rule,
rc_init_free(pcplist, mem, 1, rc_free_cpath_path_list);
if (pcpath!=NULL && !pcpath->path_valid) {
code = gx_path_init_contained_shared(&pcplist->path, NULL, mem, cname);
- if (code < 0)
+ if (code < 0) {
+ gs_free_object(mem, pcplist, "gx_cpath_path_list_new");
return code;
+ }
code = gx_cpath_to_path(pcpath, &pcplist->path);
} else {
gx_path_init_local(&pcplist->path, mem);
@@ -1120,7 +1122,11 @@ gx_cpath_copy(const gx_clip_path * from, gx_clip_path * pcpath)
pcpath->cached = NULL;
l->single = from->rect_list->list.single;
for (r = from->rect_list->list.head; r != NULL; r = r->next) {
- s = gs_alloc_struct(from->rect_list->rc.memory, gx_clip_rect, &st_clip_rect, "gx_cpath_copy");
+ if (pcpath->rect_list->rc.memory == NULL)
+ s = gs_alloc_struct(from->rect_list->rc.memory, gx_clip_rect, &st_clip_rect, "gx_cpath_copy");
+ else
+ s = gs_alloc_struct(pcpath->rect_list->rc.memory, gx_clip_rect, &st_clip_rect, "gx_cpath_copy");
+
if (s == NULL)
return_error(gs_error_VMerror);
*s = *r;
diff --git a/base/gxcpath.h b/base/gxcpath.h
index 66ca6066..9d1fdace 100644
--- a/base/gxcpath.h
+++ b/base/gxcpath.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -115,7 +115,7 @@ void gx_make_clip_device_in_heap(gx_device_clip * dev, const gx_clip_path *pcpat
gs_memory_t *mem);
#define clip_rect_print(ch, str, ar)\
- if_debug7(ch, "[%c]%s 0x%lx: (%d,%d),(%d,%d)\n", ch, str, (ulong)ar,\
+ if_debug7(ch, "[%c]%s "PRI_INTPTR": (%d,%d),(%d,%d)\n", ch, str, (intptr_t)ar,\
(ar)->xmin, (ar)->ymin, (ar)->xmax, (ar)->ymax)
/* Exported by gxcpath.c for gxacpath.c */
diff --git a/base/gxcspace.h b/base/gxcspace.h
index 1c2ad175..3218019c 100644
--- a/base/gxcspace.h
+++ b/base/gxcspace.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxctable.c b/base/gxctable.c
index c1144d11..4662d090 100644
--- a/base/gxctable.c
+++ b/base/gxctable.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxctable.h b/base/gxctable.h
index 3b1d8a61..a2fc8cad 100644
--- a/base/gxctable.h
+++ b/base/gxctable.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxcvalue.h b/base/gxcvalue.h
index dadd7c84..92efa325 100644
--- a/base/gxcvalue.h
+++ b/base/gxcvalue.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxdcconv.c b/base/gxdcconv.c
index 0b31ea7e..c492ec0b 100644
--- a/base/gxdcconv.c
+++ b/base/gxdcconv.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxdcconv.h b/base/gxdcconv.h
index a1864182..68803375 100644
--- a/base/gxdcconv.h
+++ b/base/gxdcconv.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxdcolor.c b/base/gxdcolor.c
index fe9f58d1..b4178871 100644
--- a/base/gxdcolor.c
+++ b/base/gxdcolor.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxdcolor.h b/base/gxdcolor.h
index 01d06c2f..9e979b32 100644
--- a/base/gxdcolor.h
+++ b/base/gxdcolor.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxdda.h b/base/gxdda.h
index 0ef10f31..ab577342 100644
--- a/base/gxdda.h
+++ b/base/gxdda.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxdevbuf.h b/base/gxdevbuf.h
index 959d8459..8f5fd0a7 100644
--- a/base/gxdevbuf.h
+++ b/base/gxdevbuf.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxdevcli.h b/base/gxdevcli.h
index 30d0eda0..0bdf3c02 100644
--- a/base/gxdevcli.h
+++ b/base/gxdevcli.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -675,13 +675,12 @@ typedef struct gx_device_cached_colors_s {
* Define the parameters controlling banding.
*/
/* if you make any additions/changes to this structure you need to make
- the appropriate additions/changes to the compare_gdev_prn_space_params()
- function in gdevprn.c */
+ the appropriate additions/changes to gdev_space_params_cmp() */
typedef struct gx_band_params_s {
int BandWidth; /* (optional) band width in pixels */
int BandHeight; /* (optional) */
- long BandBufferSpace; /* (optional) */
- long tile_cache_size; /* (optional) */
+ size_t BandBufferSpace; /* (optional) */
+ size_t tile_cache_size; /* (optional) */
} gx_band_params_t;
#define BAND_PARAMS_INITIAL_VALUES 0, 0, 0, 0
@@ -693,16 +692,20 @@ typedef enum {
} gdev_banding_type;
/* if you make any additions/changes to this structure you need to make
- the appropriate additions/changes to the compare_gdev_prn_space_params()
- function in gdevprn.c */
+ the appropriate additions/changes to the gdev_space_params_cmp() */
typedef struct gdev_space_params_s {
- long MaxBitmap; /* max size of non-buffered bitmap */
- long BufferSpace; /* space to use for buffer */
+ size_t MaxBitmap; /* max size of non-buffered bitmap */
+ size_t BufferSpace; /* space to use for buffer */
gx_band_params_t band; /* see gxband.h */
bool params_are_read_only; /* true if put_params may not modify this struct */
gdev_banding_type banding_type; /* used to force banding or bitmap */
} gdev_space_params;
+/* Returns 0 for a match, non-zero otherwise. Like memcmp, but allowing
+ * for uninitialised padding. */
+int gdev_space_params_cmp(const gdev_space_params sp1,
+ const gdev_space_params sp2);
+
typedef struct gdev_pagelist_s {
rc_header rc;
char *Pages;
@@ -767,7 +770,7 @@ typedef struct gdev_pagelist_s {
long band_offset_y; /* for rendering that is phase sensitive (old wtsimdi) */\
bool BLS_force_memory;\
gx_stroked_gradient_recognizer_t sgr;\
- int MaxPatternBitmap; /* Threshold for switching to pattern_clist mode */\
+ size_t MaxPatternBitmap; /* Threshold for switching to pattern_clist mode */\
bool page_uses_transparency; /* PDF 1.4 transparency is used. */\
gdev_space_params space_params;\
cmm_dev_profile_t *icc_struct; /* object dependent profiles */\
@@ -1982,4 +1985,7 @@ void gx_device_dump(gx_device *dev, const char *text);
/* Compare color information structures */
bool gx_color_info_equal(const gx_device_color_info *p1, const gx_device_color_info *p2);
+/* Perform a callout to registered handlers from the device. */
+int gx_callout(gx_device *dev, int id, int size, void *data);
+
#endif /* gxdevcli_INCLUDED */
diff --git a/base/gxdevice.h b/base/gxdevice.h
index c7fd7454..e53f0b90 100644
--- a/base/gxdevice.h
+++ b/base/gxdevice.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxdevmem.h b/base/gxdevmem.h
index 68646290..a5e2c6db 100644
--- a/base/gxdevmem.h
+++ b/base/gxdevmem.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -258,6 +258,9 @@ int gs_make_mem_device_with_copydevice(gx_device_memory ** mdev,
* scan lines. Banding devices use this (see gxclread.c).
*/
int gdev_mem_open_scan_lines(gx_device_memory *mdev, int setup_height);
+int gdev_mem_open_scan_lines_interleaved(gx_device_memory *mdev,
+ int setup_height,
+ int interleaved);
/*
* Initialize the line pointers of a memory device. base and/or line_ptrs
@@ -275,6 +278,11 @@ int gdev_mem_open_scan_lines(gx_device_memory *mdev, int setup_height);
int gdev_mem_set_line_ptrs(gx_device_memory *mdev,
byte *base, int raster, byte **line_ptrs,
int setup_height);
+int
+gdev_mem_set_line_ptrs_interleaved(gx_device_memory *mdev,
+ byte *base, int raster,
+ byte **line_ptrs, int setup_height,
+ int interleaved);
/* Define whether a monobit memory device is inverted (black=1). */
void gdev_mem_mono_set_inverted(gx_device_memory * mdev, bool black_is_1);
diff --git a/base/gxdevndi.c b/base/gxdevndi.c
index 85d2aa67..407226d0 100644
--- a/base/gxdevndi.c
+++ b/base/gxdevndi.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxdevrop.h b/base/gxdevrop.h
index a98a2fd6..93049fa1 100644
--- a/base/gxdevrop.h
+++ b/base/gxdevrop.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxdevsop.h b/base/gxdevsop.h
index 27ea0cb6..f41a780a 100644
--- a/base/gxdevsop.h
+++ b/base/gxdevsop.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -372,6 +372,29 @@ enum {
/* Private dso used to check that a printer device properly forwards to the default */
gxdso_debug_printer_check,
#endif
+ /* gxdso_supports_alpha:
+ * data = NULL
+ * size = 0
+ * Returns 1 if the rendering device supports alpha,
+ * 0 otherwise.
+ */
+ gxdso_supports_alpha,
+ /* gxdso_reopen_after_init:
+ * data = NULL
+ * size = 0
+ * Returns 1 if the device should be closed/reopened after gs
+ * finishes initialisation (e.g. to give it a chance to fetch
+ * configuration from registered callout handlers),
+ * 0 otherwise.
+ */
+ gxdso_reopen_after_init,
+
+ /* Normally, when we set a device ICC profile, we validate that the number
+ * of components against the number of components the device supports. But
+ * in certain cases, we don't want to do that (DeviceN devices and nullpage,
+ * for example).
+ */
+ gxdso_skip_icc_component_validation,
/* Add new gxdso_ keys above this. */
gxdso_pattern__LAST
};
diff --git a/base/gxdht.h b/base/gxdht.h
index 92c839b5..8bb51c2c 100644
--- a/base/gxdht.h
+++ b/base/gxdht.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxdhtres.h b/base/gxdhtres.h
index f7f44267..97734514 100644
--- a/base/gxdhtres.h
+++ b/base/gxdhtres.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxdhtserial.c b/base/gxdhtserial.c
index 4246ca50..63cab5a3 100644
--- a/base/gxdhtserial.c
+++ b/base/gxdhtserial.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxdhtserial.h b/base/gxdhtserial.h
index 3d636ba3..987fb1ec 100644
--- a/base/gxdhtserial.h
+++ b/base/gxdhtserial.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxdither.h b/base/gxdither.h
index 97d59c59..e6e27cd1 100644
--- a/base/gxdither.h
+++ b/base/gxdither.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxdownscale.c b/base/gxdownscale.c
index 8721d1db..1a348da5 100644
--- a/base/gxdownscale.c
+++ b/base/gxdownscale.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -32,6 +32,11 @@ void gx_ht_threshold_row_bit_sub(byte *contone, byte *threshold_strip,
int dithered_stride, int width, int num_rows,
int offset_bits);
+struct gx_downscale_liner_s {
+ int (*get_line)(gx_downscale_liner *, void *, int);
+ void (*drop)(gx_downscale_liner *, gs_memory_t *);
+};
+
enum
{
MAX_ETS_PLANES = 8
@@ -918,7 +923,8 @@ static void down_core4_ht(gx_downscaler_t *ds,
else if ((31 & (intptr_t)in_buffer) == 0)
downscaled_data = in_buffer; /* Already aligned! Yay! */
else
- memcpy(downscaled_data, in_buffer, nc*ds->width); /* Copy to align */
+ memcpy(downscaled_data, in_buffer,
+ (size_t)nc*ds->width); /* Copy to align */
/* Do the halftone */
for (i = 0; i < nc; i++)
@@ -1688,7 +1694,7 @@ static void down_core32(gx_downscaler_t *ds,
}
}
-static void decode_factor(int factor, int *up, int *down)
+void gx_downscaler_decode_factor(int factor, int *up, int *down)
{
if (factor == 32)
*down = 3, *up = 2;
@@ -1703,7 +1709,7 @@ gx_downscaler_scale(int width, int factor)
{
int up, down;
- decode_factor(factor, &up, &down);
+ gx_downscaler_decode_factor(factor, &up, &down);
return (width*up)/down;
}
@@ -1711,7 +1717,7 @@ int gx_downscaler_adjust_bandheight(int factor, int band_height)
{
int up, down;
- decode_factor(factor, &up, &down);
+ gx_downscaler_decode_factor(factor, &up, &down);
return (band_height/down)*down;
}
@@ -1720,47 +1726,67 @@ gx_downscaler_scale_rounded(int width, int factor)
{
int up, down;
- decode_factor(factor, &up, &down);
+ gx_downscaler_decode_factor(factor, &up, &down);
return (width*up + down-1)/down;
}
+typedef struct {
+ gx_downscale_liner base;
+ ClapTrap *claptrap;
+ int y;
+ int width;
+ int height;
+ int num_comps;
+ gs_get_bits_params_t *params;
+ gx_downscale_liner *chain;
+} liner_claptrap_planar;
+
+static int
+claptrap_planar_line(gx_downscale_liner *liner_, void *buffer, int row)
+{
+ liner_claptrap_planar *liner = (liner_claptrap_planar *)liner_;
+ gs_get_bits_params_t *params = (gs_get_bits_params_t *)buffer;
+
+ liner->params = params;
+ return ClapTrap_GetLinePlanar(liner->claptrap, params->data);
+}
+
+static void
+claptrap_planar_drop(gx_downscale_liner *liner_, gs_memory_t *mem)
+{
+ liner_claptrap_planar *liner = (liner_claptrap_planar *)liner_;
+ gx_downscale_liner *next;
+
+ if (!liner)
+ return;
+ ClapTrap_Fin(mem, liner->claptrap);
+ next = liner->chain;
+ gs_free_object(mem, liner, "liner_claptrap_planar");
+ if (next)
+ next->drop(next, mem);
+}
+
static int get_planar_line_for_trap(void *arg, unsigned char *buf)
{
- gx_downscaler_t *ds = (gx_downscaler_t *)arg;
- gs_int_rect rect;
- gs_get_bits_params_t params; /* params (if trapping) */
- int nc = ds->num_planes;
+ liner_claptrap_planar *ct = (liner_claptrap_planar *)arg;
+ gs_get_bits_params_t params;
+ int nc = ct->num_comps;
int i, code;
unsigned char *buf2;
- rect.p.x = 0;
- rect.p.y = ds->claptrap_y++;
- rect.q.x = ds->dev->width;
- rect.q.y = rect.p.y+1;
- /* Allow for devices (like psdcmyk) that make several passes through
- * the image. */
- if (ds->claptrap_y == ds->dev->height)
- ds->claptrap_y = 0;
-
- params = *ds->claptrap_params;
+ params = *ct->params;
buf2 = buf;
for (i = 0; i < nc; i++)
{
params.data[i] = buf2;
- buf2 += ds->width;
+ buf2 += ct->width;
}
- code = (*dev_proc(ds->dev, get_bits_rectangle))(ds->dev, &rect, &params, NULL);
- if (code < 0)
- return code;
-
- /* Now cope with the fact we might have been returned pointers */
- for (i = 0; i < nc; i++)
- {
- if (params.data[i] != buf)
- memcpy(buf, params.data[i], ds->width);
- buf += ds->width;
- }
+ code = ct->chain->get_line(ct->chain, &params, ct->y++);
+ /* Allow for devices (like psdcmyk) that make several passes through
+ * the image. */
+ if (ct->y == ct->height)
+ ct->y = 0;
return code;
}
@@ -1945,49 +1971,202 @@ static int init_ht(gx_downscaler_t *ds, int num_planes, gx_downscale_core *downs
int gx_downscaler_init_planar(gx_downscaler_t *ds,
gx_device *dev,
- gs_get_bits_params_t *params,
- int num_comps,
- int factor,
- int mfs,
int src_bpc,
- int dst_bpc)
+ int dst_bpc,
+ int num_comps,
+ const gx_downscaler_params *params,
+ const gs_get_bits_params_t *gb_params)
+{
+ return gx_downscaler_init_planar_cm(ds, dev, src_bpc, dst_bpc,
+ num_comps, params, gb_params,
+ NULL, NULL, num_comps);
+}
+
+typedef struct {
+ gx_downscale_liner base;
+ gx_device *dev;
+} liner_getbits_chunky;
+
+static int
+getbits_chunky_line(gx_downscale_liner *liner_, void *buffer, int row)
+{
+ liner_getbits_chunky *liner = (liner_getbits_chunky *)liner_;
+
+ return (*dev_proc(liner->dev, get_bits))(liner->dev, row, buffer, NULL);
+}
+
+static void
+getbits_chunky_drop(gx_downscale_liner *liner_, gs_memory_t *mem)
+{
+ liner_getbits_chunky *liner = (liner_getbits_chunky *)liner_;
+
+ gs_free_object(mem, liner, "liner_getbits_chunky");
+}
+
+typedef struct {
+ gx_downscale_liner base;
+ gx_device *dev;
+ int raster;
+ int num_comps;
+} liner_getbits_planar;
+
+static int
+getbits_planar_line(gx_downscale_liner *liner_, void *output, int row)
+{
+ liner_getbits_planar *liner = (liner_getbits_planar *)liner_;
+ gs_get_bits_params_t *params = (gs_get_bits_params_t *)output;
+ gs_get_bits_params_t params2;
+ gs_int_rect rect;
+ int i, code, n;
+
+ rect.p.x = 0;
+ rect.p.y = row;
+ rect.q.x = liner->dev->width;
+ rect.q.y = row+1;
+
+ n = liner->dev->width;
+ if (liner->dev->color_info.depth > liner->dev->color_info.num_components * 8 + 8)
+ n *= 2;
+
+ params2 = *params;
+
+ code = (*dev_proc(liner->dev, get_bits_rectangle))(liner->dev, &rect, &params2, NULL);
+
+ /* get_bits_rectangle doesn't like doing planar copies, only return
+ * pointers. This is a problem for us, so fudge it here. */
+ for (i = 0; i < liner->num_comps; i++)
+ if (params->data[i] != params2.data[1])
+ memcpy(params->data[i], params2.data[i], n);
+
+ return code;
+}
+
+static void
+getbits_planar_drop(gx_downscale_liner *liner_, gs_memory_t *mem)
+{
+ liner_getbits_planar *liner = (liner_getbits_planar *)liner_;
+
+ gs_free_object(mem, liner, "liner_getbits_planar");
+}
+
+typedef struct {
+ gx_downscale_liner base;
+ ClapTrap *claptrap;
+ int y;
+ int height;
+ gx_downscale_liner *chain;
+} liner_claptrap;
+
+static int
+claptrap_line(gx_downscale_liner *liner_, void *buffer, int row)
{
- return gx_downscaler_init_planar_trapped_cm(ds, dev, params, num_comps,
- factor, mfs, src_bpc, dst_bpc, 0, 0, NULL, NULL, NULL, num_comps);
+ liner_claptrap *liner = (liner_claptrap *)liner_;
+
+ return ClapTrap_GetLine(liner->claptrap, buffer);
}
-int gx_downscaler_init_planar_trapped(gx_downscaler_t *ds,
- gx_device *dev,
- gs_get_bits_params_t *params,
- int num_comps,
- int factor,
- int mfs,
- int src_bpc,
- int dst_bpc,
- int trap_w,
- int trap_h,
- const int *comp_order)
-{
- return gx_downscaler_init_planar_trapped_cm(ds, dev, params, num_comps,
- factor, mfs, src_bpc, dst_bpc,
- trap_w, trap_h, comp_order,
- NULL, NULL, num_comps);
+static void
+claptrap_drop(gx_downscale_liner *liner_, gs_memory_t *mem)
+{
+ liner_claptrap *liner = (liner_claptrap *)liner_;
+ gx_downscale_liner *next;
+
+ if (!liner)
+ return;
+ ClapTrap_Fin(mem, liner->claptrap);
+ next = liner->chain;
+ gs_free_object(mem, liner, "liner_claptrap");
+ if (next)
+ next->drop(next, mem);
+}
+
+#ifdef WITH_CAL
+typedef struct {
+ gx_downscale_liner base;
+ cal_deskewer *deskewer;
+ cal_deskewer_bander *bander;
+ int height;
+ int get_row;
+ int got_row;
+ gx_downscale_liner *chain;
+} liner_skew;
+
+static int
+skew_line(gx_downscale_liner *liner_, void *buffer, int row)
+{
+ liner_skew *liner = (liner_skew *)liner_;
+ int code;
+
+ if (row < liner->got_row)
+ liner->get_row = 0;
+
+ liner->got_row = row;
+
+ while (1) {
+ code = cal_deskewer_band_pull(liner->bander, buffer);
+ if (code == 1)
+ return 0; /* We got a line! */
+
+ code = liner->chain->get_line(liner->chain,
+ buffer,
+ liner->get_row++);
+ if (code < 0)
+ return code;
+ code = cal_deskewer_band_push(liner->bander,
+ buffer);
+ if (code < 0)
+ return code;
+ }
+}
+
+static void
+skew_drop(gx_downscale_liner *liner_, gs_memory_t *mem)
+{
+ liner_skew *liner = (liner_skew *)liner_;
+ gx_downscale_liner *next;
+
+ if (!liner)
+ return;
+ cal_deskewer_band_end(liner->bander, mem);
+ cal_deskewer_fin(liner->deskewer, mem);
+ next = liner->chain;
+ gs_free_object(mem, liner, "liner_skew");
+ if (next)
+ next->drop(next, mem);
+}
+#endif
+
+#define alloc_liner(mem, type, get, drop, res) \
+ do_alloc_liner(mem, sizeof(type), #type, get, drop,\
+ (gx_downscale_liner **)res)
+
+static int
+do_alloc_liner(gs_memory_t *mem, size_t size, const char *type,
+ int (*get_line)(gx_downscale_liner *, void *, int),
+ void (*drop)(gx_downscale_liner *, gs_memory_t *),
+ gx_downscale_liner **res)
+{
+ gx_downscale_liner *liner;
+
+ liner = (gx_downscale_liner *)gs_alloc_bytes(mem, size, type);
+ *res = liner;
+ if (liner == NULL)
+ return_error(gs_error_VMerror);
+ liner->get_line = get_line;
+ liner->drop = drop;
+ return 0;
}
-int gx_downscaler_init_planar_trapped_cm(gx_downscaler_t *ds,
- gx_device *dev,
- gs_get_bits_params_t *params,
- int num_comps,
- int factor,
- int mfs,
- int src_bpc,
- int dst_bpc,
- int trap_w,
- int trap_h,
- const int *comp_order,
- gx_downscale_cm_fn *apply_cm,
- void *apply_cm_arg,
- int post_cm_num_comps)
+int gx_downscaler_init_planar_cm(gx_downscaler_t *ds,
+ gx_device *dev,
+ int src_bpc,
+ int dst_bpc,
+ int num_comps,
+ const gx_downscaler_params *params,
+ const gs_get_bits_params_t *gb_params,
+ gx_downscale_cm_fn *apply_cm,
+ void *apply_cm_arg,
+ int post_cm_num_comps)
{
int span = bitmap_raster(dev->width * src_bpc);
int post_span = bitmap_raster(dev->width * src_bpc);
@@ -1996,8 +2175,10 @@ int gx_downscaler_init_planar_trapped_cm(gx_downscaler_t *ds,
gx_downscale_core *core;
int i;
int upfactor, downfactor;
+ int factor = params->downscale_factor;
+ int mfs = params->min_feature_size;
- decode_factor(factor, &upfactor, &downfactor);
+ gx_downscaler_decode_factor(factor, &upfactor, &downfactor);
/* width = scaled width */
width = (dev->width*upfactor)/downfactor;
@@ -2018,8 +2199,9 @@ int gx_downscaler_init_planar_trapped_cm(gx_downscaler_t *ds,
if (apply_cm) {
for (i = 0; i < post_cm_num_comps; i++) {
- ds->post_cm[i] = gs_alloc_bytes(dev->memory, post_span * downfactor,
- "gx_downscaler(planar_data)");
+ ds->post_cm[i] = gs_alloc_bytes(dev->memory,
+ (size_t)post_span * downfactor,
+ "gx_downscaler(planar_data)");
if (ds->post_cm[i] == NULL) {
code = gs_note_error(gs_error_VMerror);
goto cleanup;
@@ -2027,33 +2209,74 @@ int gx_downscaler_init_planar_trapped_cm(gx_downscaler_t *ds,
}
}
- code = check_trapping(dev->memory, trap_w, trap_h, num_comps, comp_order);
+ /* The primary line source for planar comes always from
+ * get_bits_rectangle. */
+ {
+ liner_getbits_planar *gb_liner;
+
+ code = alloc_liner(dev->memory,
+ liner_getbits_planar,
+ getbits_planar_line,
+ getbits_planar_drop,
+ &gb_liner);
+ if (code < 0)
+ goto cleanup;
+ gb_liner->dev = dev;
+ gb_liner->num_comps = num_comps;
+ ds->liner = &gb_liner->base;
+ }
+
+ code = check_trapping(dev->memory, params->trap_w, params->trap_h,
+ num_comps, params->trap_order);
if (code < 0)
return code;
- if (trap_w > 0 || trap_h > 0) {
- ds->claptrap = ClapTrap_Init(dev->memory, width, dev->height, num_comps, comp_order, trap_w, trap_h, get_planar_line_for_trap, ds);
- if (ds->claptrap == NULL) {
+ if (params->trap_w > 0 || params->trap_h > 0) {
+ liner_claptrap_planar *ct_liner;
+
+ code = alloc_liner(dev->memory,
+ liner_claptrap_planar,
+ claptrap_planar_line,
+ claptrap_planar_drop,
+ &ct_liner);
+ if (code < 0)
+ goto cleanup;
+ ct_liner->chain = ds->liner;
+ ct_liner->y = 0;
+ ct_liner->height = dev->height;
+ ct_liner->num_comps = ds->num_comps;
+ ct_liner->width = dev->width;
+ ds->liner = &ct_liner->base;
+ ct_liner->claptrap = ClapTrap_Init(dev->memory,
+ dev->width,
+ dev->height,
+ num_comps,
+ params->trap_order,
+ params->trap_w,
+ params->trap_h,
+ get_planar_line_for_trap,
+ ct_liner);
+ if (ct_liner->claptrap == NULL) {
emprintf(dev->memory, "Trapping initialisation failed");
code = gs_note_error(gs_error_VMerror);
goto cleanup;
}
}
- else
- ds->claptrap = NULL;
- memcpy(&ds->params, params, sizeof(*params));
+ memcpy(&ds->params, gb_params, sizeof(*gb_params));
ds->params.raster = span;
for (i = 0; i < num_comps; i++) {
- ds->pre_cm[i] = gs_alloc_bytes(dev->memory, span * downfactor,
- "gx_downscaler(planar_data)");
+ ds->pre_cm[i] = gs_alloc_bytes(dev->memory,
+ (size_t)span * downfactor,
+ "gx_downscaler(planar_data)");
if (ds->pre_cm[i] == NULL) {
code = gs_note_error(gs_error_VMerror);
goto cleanup;
}
}
if (upfactor > 1) {
- ds->scaled_data = gs_alloc_bytes(dev->memory, ds->scaled_span * upfactor * num_comps,
+ ds->scaled_data = gs_alloc_bytes(dev->memory,
+ (size_t)ds->scaled_span * upfactor * num_comps,
"gx_downscaler(scaled_data)");
if (ds->scaled_data == NULL) {
code = gs_note_error(gs_error_VMerror);
@@ -2097,23 +2320,23 @@ int gx_downscaler_init_planar_trapped_cm(gx_downscaler_t *ds,
if (mfs > 1) {
ds->mfs_data = (byte *)gs_alloc_bytes(dev->memory,
- (width+1) * num_comps,
+ (size_t)(width+1) * num_comps,
"gx_downscaler(mfs)");
if (ds->mfs_data == NULL) {
code = gs_note_error(gs_error_VMerror);
goto cleanup;
}
- memset(ds->mfs_data, 0, (width+1) * num_comps);
+ memset(ds->mfs_data, 0, (size_t)num_comps * (width+1));
}
if (dst_bpc == 1) {
ds->errors = (int *)gs_alloc_bytes(dev->memory,
- num_comps*(width+3)*sizeof(int),
+ (size_t)num_comps*(width+3)*sizeof(int),
"gx_downscaler(errors)");
if (ds->errors == NULL) {
code = gs_note_error(gs_error_VMerror);
goto cleanup;
}
- memset(ds->errors, 0, num_comps * (width+3) * sizeof(int));
+ memset(ds->errors, 0, (size_t)num_comps * (width+3) * sizeof(int));
}
return 0;
@@ -2125,189 +2348,53 @@ int gx_downscaler_init_planar_trapped_cm(gx_downscaler_t *ds,
static int get_line_for_trap(void *arg, unsigned char *buf)
{
- gx_downscaler_t *ds = (gx_downscaler_t *)arg;
+ liner_claptrap *ct = (liner_claptrap *)arg;
/* Allow for devices (like psdcmyk) that make several passes through
- * the image. */
- if (ds->claptrap_y == ds->dev->height)
- ds->claptrap_y = 0;
+ * the image. This is a bit crap cos it assumes that we will pass
+ * through strictly from top to bottom (possibly repeatedly). */
+ if (ct->y == ct->height)
+ ct->y = 0;
- return (*dev_proc(ds->dev, get_bits))(ds->dev, ds->claptrap_y++, buf, NULL);
+ return ct->chain->get_line(ct->chain, buf, ct->y++);
}
-int gx_downscaler_init(gx_downscaler_t *ds,
- gx_device *dev,
- int src_bpc,
- int dst_bpc,
- int num_comps,
- int factor,
- int mfs,
- int (*adjust_width_proc)(int, int),
- int adjust_width)
-{
- return gx_downscaler_init_trapped_cm_ets(ds, dev, src_bpc, dst_bpc, num_comps,
- factor, mfs, adjust_width_proc, adjust_width, 0, 0, NULL, NULL, NULL, 0, 0);
-}
-
-
-int gx_downscaler_init_ets(gx_downscaler_t *ds,
- gx_device *dev,
- int src_bpc,
- int dst_bpc,
- int num_comps,
- int factor,
- int mfs,
- int (*adjust_width_proc)(int, int),
- int adjust_width,
- int ets)
+int gx_downscaler_init(gx_downscaler_t *ds,
+ gx_device *dev,
+ int src_bpc,
+ int dst_bpc,
+ int num_comps,
+ const gx_downscaler_params *params,
+ int (*adjust_width_proc)(int, int),
+ int adjust_width)
{
- return gx_downscaler_init_trapped_cm_ets(ds, dev, src_bpc, dst_bpc, num_comps,
- factor, mfs, adjust_width_proc, adjust_width, 0, 0, NULL, NULL, NULL, 0, ets);
-}
-
-int gx_downscaler_init_trapped(gx_downscaler_t *ds,
- gx_device *dev,
- int src_bpc,
- int dst_bpc,
- int num_comps,
- int factor,
- int mfs,
- int (*adjust_width_proc)(int, int),
- int adjust_width,
- int trap_w,
- int trap_h,
- const int *comp_order)
-{
- return gx_downscaler_init_trapped_cm_ets(ds, dev, src_bpc, dst_bpc,
- num_comps, factor, mfs,
- adjust_width_proc, adjust_width,
- trap_w, trap_h, comp_order,
- NULL, NULL, 0, 0);
-}
-
-int gx_downscaler_init_trapped_ets(gx_downscaler_t *ds,
- gx_device *dev,
- int src_bpc,
- int dst_bpc,
- int num_comps,
- int factor,
- int mfs,
- int (*adjust_width_proc)(int, int),
- int adjust_width,
- int trap_w,
- int trap_h,
- const int *comp_order,
- int ets)
-{
- return gx_downscaler_init_trapped_cm_ets(ds, dev, src_bpc, dst_bpc,
- num_comps, factor, mfs,
- adjust_width_proc, adjust_width,
- trap_w, trap_h, comp_order,
- NULL, NULL, 0, ets);
-}
-int gx_downscaler_init_cm(gx_downscaler_t *ds,
- gx_device *dev,
- int src_bpc,
- int dst_bpc,
- int num_comps,
- int factor,
- int mfs,
- int (*adjust_width_proc)(int, int),
- int adjust_width,
- gx_downscale_cm_fn *apply_cm,
- void *apply_cm_arg,
- int post_cm_num_comps)
-{
- return gx_downscaler_init_trapped_cm_ets(ds, dev, src_bpc, dst_bpc,
- num_comps, factor, mfs,
- adjust_width_proc, adjust_width,
- 0, 0, NULL,
- apply_cm, apply_cm_arg, post_cm_num_comps, 0);
-}
-
-int gx_downscaler_init_cm_ets(gx_downscaler_t *ds,
- gx_device *dev,
- int src_bpc,
- int dst_bpc,
- int num_comps,
- int factor,
- int mfs,
- int (*adjust_width_proc)(int, int),
- int adjust_width,
- gx_downscale_cm_fn *apply_cm,
- void *apply_cm_arg,
- int post_cm_num_comps,
- int ets)
-{
- return gx_downscaler_init_trapped_cm_ets(ds, dev, src_bpc, dst_bpc,
- num_comps, factor, mfs,
- adjust_width_proc, adjust_width,
- 0, 0, NULL,
- apply_cm, apply_cm_arg, post_cm_num_comps, ets);
-}
-
-int gx_downscaler_init_trapped_cm(gx_downscaler_t *ds,
- gx_device *dev,
- int src_bpc,
- int dst_bpc,
- int num_comps,
- int factor,
- int mfs,
- int (*adjust_width_proc)(int, int),
- int adjust_width,
- int trap_w,
- int trap_h,
- const int *comp_order,
- gx_downscale_cm_fn *apply_cm,
- void *apply_cm_arg,
- int post_cm_num_comps)
-{
- return gx_downscaler_init_trapped_cm_ets(ds, dev, src_bpc, dst_bpc,
- num_comps, factor, mfs,
- adjust_width_proc, adjust_width,
- trap_w, trap_h, comp_order,
- apply_cm, apply_cm_arg, post_cm_num_comps,
- 0);
+ return gx_downscaler_init_cm(ds, dev, src_bpc, dst_bpc, num_comps,
+ params, adjust_width_proc, adjust_width,
+ NULL, NULL, 0);
}
static gx_downscaler_ht_t bogus_ets_halftone;
-int gx_downscaler_init_trapped_cm_ets(gx_downscaler_t *ds,
- gx_device *dev,
- int src_bpc,
- int dst_bpc,
- int num_comps,
- int factor,
- int mfs,
- int (*adjust_width_proc)(int, int),
- int adjust_width,
- int trap_w,
- int trap_h,
- const int *comp_order,
- gx_downscale_cm_fn *apply_cm,
- void *apply_cm_arg,
- int post_cm_num_comps,
- int ets)
-{
- return gx_downscaler_init_trapped_cm_halftone(ds,
- dev,
- src_bpc,
- dst_bpc,
- num_comps,
- factor,
- mfs,
- adjust_width_proc,
- adjust_width,
- trap_w,
- trap_h,
- comp_order,
- apply_cm,
- apply_cm_arg,
- post_cm_num_comps,
- ets ? &bogus_ets_halftone : NULL);
+int gx_downscaler_init_cm(gx_downscaler_t *ds,
+ gx_device *dev,
+ int src_bpc,
+ int dst_bpc,
+ int num_comps,
+ const gx_downscaler_params *params,
+ int (*adjust_width_proc)(int, int),
+ int adjust_width,
+ gx_downscale_cm_fn *apply_cm,
+ void *apply_cm_arg,
+ int post_cm_num_comps)
+{
+ return gx_downscaler_init_cm_halftone(ds, dev, src_bpc, dst_bpc,
+ num_comps, params,
+ adjust_width_proc, adjust_width,
+ apply_cm, apply_cm_arg,
+ post_cm_num_comps,
+ params->ets ? &bogus_ets_halftone : NULL);
}
-
static gx_downscale_core *
select_8_to_8_core(int nc, int factor)
{
@@ -2332,23 +2419,25 @@ select_8_to_8_core(int nc, int factor)
return NULL;
}
+#ifdef WITH_CAL
+static unsigned char bg0[GX_DEVICE_COLOR_MAX_COMPONENTS] = {0};
+static unsigned char bg1[GX_DEVICE_COLOR_MAX_COMPONENTS] = {
+ 0xFF, 0xFF, 0xFF, 0xFF };
+#endif
+
int
-gx_downscaler_init_trapped_cm_halftone(gx_downscaler_t *ds,
- gx_device *dev,
- int src_bpc,
- int dst_bpc,
- int num_comps,
- int factor,
- int mfs,
- int (*adjust_width_proc)(int, int),
- int adjust_width,
- int trap_w,
- int trap_h,
- const int *comp_order,
- gx_downscale_cm_fn *apply_cm,
- void *apply_cm_arg,
- int post_cm_num_comps,
- gx_downscaler_ht_t *ht)
+gx_downscaler_init_cm_halftone(gx_downscaler_t *ds,
+ gx_device *dev,
+ int src_bpc,
+ int dst_bpc,
+ int num_comps,
+ const gx_downscaler_params *params,
+ int (*adjust_width_proc)(int, int),
+ int adjust_width,
+ gx_downscale_cm_fn *apply_cm,
+ void *apply_cm_arg,
+ int post_cm_num_comps,
+ gx_downscaler_ht_t *ht)
{
int size;
int post_size;
@@ -2356,16 +2445,18 @@ gx_downscaler_init_trapped_cm_halftone(gx_downscaler_t *ds,
int width;
int awidth;
int pad_white;
- int code;
+ int code = 0;
gx_downscale_core *core;
int upfactor;
int downfactor;
int nc;
+ int factor = params->downscale_factor;
+ int mfs = params->min_feature_size;
size = gdev_mem_bytes_per_scan_line((gx_device *)dev);
post_size = bitmap_raster(dev->width * src_bpc * post_cm_num_comps);
- decode_factor(factor, &upfactor, &downfactor);
+ gx_downscaler_decode_factor(factor, &upfactor, &downfactor);
/* width = scaled width */
width = (dev->width * upfactor)/downfactor;
@@ -2393,20 +2484,140 @@ gx_downscaler_init_trapped_cm_halftone(gx_downscaler_t *ds,
ds->ht = ht;
ds->dst_bpc = dst_bpc;
ds->num_comps = num_comps;
+ ds->do_skew_detection = params->do_skew_detection;
+
+ /* The primary line source comes always from getbits. */
+ {
+ liner_getbits_chunky *gb_liner;
- code = check_trapping(dev->memory, trap_w, trap_h, num_comps, comp_order);
+ code = alloc_liner(dev->memory,
+ liner_getbits_chunky,
+ getbits_chunky_line,
+ getbits_chunky_drop,
+ &gb_liner);
+ if (code < 0)
+ goto cleanup;
+ gb_liner->dev = dev;
+ ds->liner = &gb_liner->base;
+ }
+
+#ifdef WITH_CAL
+ if (ds->do_skew_detection) {
+ /* Do a skew detection pass */
+ int j;
+ int w = ds->dev->width;
+ int h = ds->dev->height;
+ int n = ds->dev->color_info.num_components;
+ cal_skew *skew;
+ byte *buffer = gs_alloc_bytes(ds->dev->memory, w*n, "skew_row");
+ if (buffer == NULL)
+ return_error(gs_error_VMerror);
+ skew = cal_skew_init(ds->dev->memory->gs_lib_ctx->core->cal_ctx,
+ ds->dev->memory,
+ w, h);
+ if (skew == NULL)
+ code = gs_error_VMerror;
+ for (j = 0; code >= 0 && j < h; j++) {
+ code = ds->liner->get_line(ds->liner, buffer, j);
+ /* Craply turn that into "greyscale" */
+ if (n > 1) {
+ int i, k;
+ const byte *src = buffer;
+ byte *dst = buffer;
+ for (i = w; i > 0; i--) {
+ int v = 0;
+ for (k = n; k > 0; k--)
+ v += *src++;
+ *dst++ = (v+(n>>1))/n;
+ }
+ }
+ code = cal_skew_process(skew, ds->dev->memory, buffer);
+ }
+ if (code >= 0)
+ ds->skew_angle = cal_skew_detect(skew, ds->dev->memory);
+ gs_free_object(ds->dev->memory, buffer, "skew_row");
+ cal_skew_fin(skew, ds->dev->memory);
+ if (code < 0)
+ goto cleanup;
+
+ if (ds->skew_angle != 0) {
+ liner_skew *sk_liner;
+ unsigned int dw, dh;
+
+ code = alloc_liner(dev->memory,
+ liner_skew,
+ skew_line,
+ skew_drop,
+ &sk_liner);
+ if (code < 0)
+ goto cleanup;
+ sk_liner->chain = ds->liner;
+ sk_liner->get_row = 0;
+ sk_liner->got_row = 0;
+ sk_liner->height = dev->height;
+ ds->liner = &sk_liner->base;
+ sk_liner->deskewer = cal_deskewer_init(
+ ds->dev->memory->gs_lib_ctx->core->cal_ctx,
+ ds->dev->memory,
+ ds->dev->width, ds->dev->height,
+ &dw,
+ &dh,
+ ds->skew_angle,
+ 1, /* Keep the page size constant */
+ 1.0, 1.0, 1.0, 1.0,
+ (ds->num_comps <= 3 ? bg1 : bg0),
+ ds->num_comps);
+ if (sk_liner->deskewer == NULL) {
+ emprintf(dev->memory, "Deskewer initialisation failed");
+ code = gs_note_error(gs_error_VMerror);
+ goto cleanup;
+ }
+ sk_liner->bander = cal_deskewer_band_begin(sk_liner->deskewer,
+ ds->dev->memory,
+ 0, 0);
+ if (sk_liner->bander == NULL) {
+ emprintf(dev->memory, "Deskewer initialisation(2) failed");
+ code = gs_note_error(gs_error_VMerror);
+ goto cleanup;
+ }
+ }
+ }
+#endif
+
+ code = check_trapping(dev->memory, params->trap_w, params->trap_h,
+ num_comps, params->trap_order);
if (code < 0)
return code;
- if (trap_w > 0 || trap_h > 0) {
- ds->claptrap = ClapTrap_Init(dev->memory, width, dev->height, num_comps, comp_order, trap_w, trap_h, get_line_for_trap, ds);
- if (ds->claptrap == NULL) {
+ if (params->trap_w > 0 || params->trap_h > 0) {
+ liner_claptrap *ct_liner;
+
+ code = alloc_liner(dev->memory,
+ liner_claptrap,
+ claptrap_line,
+ claptrap_drop,
+ &ct_liner);
+ if (code < 0)
+ goto cleanup;
+ ct_liner->chain = ds->liner;
+ ct_liner->y = 0;
+ ct_liner->height = dev->height;
+ ds->liner = &ct_liner->base;
+ ct_liner->claptrap = ClapTrap_Init(dev->memory,
+ width,
+ dev->height,
+ num_comps,
+ params->trap_order,
+ params->trap_w,
+ params->trap_h,
+ get_line_for_trap,
+ ct_liner);
+ if (ct_liner->claptrap == NULL) {
emprintf(dev->memory, "Trapping initialisation failed");
code = gs_note_error(gs_error_VMerror);
goto cleanup;
}
- } else
- ds->claptrap = NULL;
+ }
/* Choose an appropriate core. Try to honour our early_cm
* choice, and fallback to late cm if we can't. */
@@ -2488,7 +2699,7 @@ gx_downscaler_init_trapped_cm_halftone(gx_downscaler_t *ds,
if (apply_cm) {
ds->post_cm[0] = gs_alloc_bytes(dev->memory,
- post_size * downfactor,
+ (size_t)post_size * downfactor,
"gx_downscaler(data)");
if (ds->post_cm[0] == NULL) {
code = gs_note_error(gs_error_VMerror);
@@ -2498,8 +2709,8 @@ gx_downscaler_init_trapped_cm_halftone(gx_downscaler_t *ds,
if (core != NULL || apply_cm) {
ds->pre_cm[0] = gs_alloc_bytes(dev->memory,
- span * downfactor,
- "gx_downscaler(data)");
+ (size_t)span * downfactor,
+ "gx_downscaler(data)");
if (ds->pre_cm[0] == NULL) {
code = gs_note_error(gs_error_VMerror);
goto cleanup;
@@ -2508,23 +2719,23 @@ gx_downscaler_init_trapped_cm_halftone(gx_downscaler_t *ds,
if (core != NULL) {
if (mfs > 1) {
ds->mfs_data = (byte *)gs_alloc_bytes(dev->memory,
- (awidth+1)*nc,
+ (size_t)(awidth+1)*nc,
"gx_downscaler(mfs)");
if (ds->mfs_data == NULL) {
code = gs_note_error(gs_error_VMerror);
goto cleanup;
}
- memset(ds->mfs_data, 0, (awidth+1)*nc);
+ memset(ds->mfs_data, 0, (size_t)nc*(awidth+1));
}
if (dst_bpc == 1) {
ds->errors = (int *)gs_alloc_bytes(dev->memory,
- nc*(awidth+3)*sizeof(int),
+ (size_t)nc*(awidth+3)*sizeof(int),
"gx_downscaler(errors)");
if (ds->errors == NULL) {
code = gs_note_error(gs_error_VMerror);
goto cleanup;
}
- memset(ds->errors, 0, nc * (awidth+3) * sizeof(int));
+ memset(ds->errors, 0, (size_t)nc * (awidth+3) * sizeof(int));
}
}
@@ -2538,11 +2749,17 @@ gx_downscaler_init_trapped_cm_halftone(gx_downscaler_t *ds,
void gx_downscaler_fin(gx_downscaler_t *ds)
{
int plane;
+
+ if (ds->dev == NULL)
+ return;
+
for (plane=0; plane < GS_CLIENT_COLOR_MAX_COMPONENTS; plane++) {
gs_free_object(ds->dev->memory, ds->pre_cm[plane],
"gx_downscaler(planar_data)");
gs_free_object(ds->dev->memory, ds->post_cm[plane],
"gx_downscaler(planar_data)");
+ ds->pre_cm[plane] = NULL;
+ ds->post_cm[plane] = NULL;
}
ds->num_planes = 0;
@@ -2556,11 +2773,13 @@ void gx_downscaler_fin(gx_downscaler_t *ds)
ds->htrow = NULL;
ds->htrow_alloc = NULL;
- if (ds->claptrap)
- ClapTrap_Fin(ds->dev->memory, ds->claptrap);
+ if (ds->liner)
+ ds->liner->drop(ds->liner, ds->dev->memory);
+ ds->liner = NULL;
if (ds->ets_config)
ets_destroy(ds->dev->memory, ds->ets_config);
+ ds->ets_config = NULL;
}
/* Chunky case */
@@ -2573,14 +2792,13 @@ int gx_downscaler_getbits(gx_downscaler_t *ds,
byte *data_ptr;
int upfactor, downfactor;
- decode_factor(ds->factor, &upfactor, &downfactor);
+ gx_downscaler_decode_factor(ds->factor, &upfactor, &downfactor);
/* Check for the simple case */
if (ds->down_core == NULL) {
- if (ds->claptrap)
- code = ClapTrap_GetLine(ds->claptrap, ds->apply_cm ? ds->pre_cm[0] : out_data);
- else
- code = (*dev_proc(ds->dev, get_bits))(ds->dev, row, ds->apply_cm ? ds->pre_cm[0] : out_data, NULL);
+ code = ds->liner->get_line(ds->liner,
+ ds->apply_cm ? ds->pre_cm[0] : out_data,
+ row);
if (code < 0)
return code;
if (ds->apply_cm) {
@@ -2594,23 +2812,13 @@ int gx_downscaler_getbits(gx_downscaler_t *ds,
y = row * downfactor;
y_end = y + downfactor;
data_ptr = ds->pre_cm[0];
- if (ds->claptrap) {
- do {
- code = ClapTrap_GetLine(ds->claptrap, data_ptr);
- if (code < 0)
- return code;
- data_ptr += ds->span;
- y++;
- } while (y < y_end);
- } else {
- do {
- code = (*dev_proc(ds->dev, get_bits))(ds->dev, y, data_ptr, NULL);
- if (code < 0)
- return code;
- data_ptr += ds->span;
- y++;
- } while (y < y_end);
- }
+ do {
+ code = ds->liner->get_line(ds->liner, data_ptr, y);
+ if (code < 0)
+ return code;
+ data_ptr += ds->span;
+ y++;
+ } while (y < y_end);
if (ds->apply_cm) {
if (ds->early_cm) {
@@ -2636,7 +2844,7 @@ int gx_downscaler_get_bits_rectangle(gx_downscaler_t *ds,
gs_get_bits_params_t *params,
int row)
{
- int code;
+ int code = 0;
gs_int_rect rect;
int plane;
int factor = ds->factor;
@@ -2644,9 +2852,13 @@ int gx_downscaler_get_bits_rectangle(gx_downscaler_t *ds,
int upfactor, downfactor;
int subrow;
int copy = (ds->dev->width * ds->src_bpc + 7)>>3;
- int i, j;
+ int i, j, n;
- decode_factor(factor, &upfactor, &downfactor);
+ n = ds->dev->width;
+ if (ds->dev->color_info.depth > ds->dev->color_info.num_components*8+8)
+ n *= 2;
+
+ gx_downscaler_decode_factor(factor, &upfactor, &downfactor);
subrow = row % upfactor;
if (subrow) {
@@ -2662,7 +2874,7 @@ int gx_downscaler_get_bits_rectangle(gx_downscaler_t *ds,
rect.q.y = ((row/upfactor) + 1) * downfactor;
/* Check for the simple case */
- if (ds->down_core == NULL && ds->claptrap == NULL) {
+ if (ds->down_core == NULL) {
gs_get_bits_params_t saved;
if (ds->apply_cm) {
/* Always do the request giving our own workspace,
@@ -2672,7 +2884,7 @@ int gx_downscaler_get_bits_rectangle(gx_downscaler_t *ds,
params->data[i] = ds->pre_cm[i];
params->options |= GB_RETURN_POINTER;
}
- code = (*dev_proc(ds->dev, get_bits_rectangle))(ds->dev, &rect, params, NULL);
+ code = ds->liner->get_line(ds->liner, params, row);
if (code < 0)
return code;
if (ds->apply_cm) {
@@ -2697,46 +2909,37 @@ int gx_downscaler_get_bits_rectangle(gx_downscaler_t *ds,
for (i = 0; i < ds->num_planes; i++)
params2.data[i] = ds->pre_cm[i];
- /* Get downfactor rows worth of data */
- if (ds->claptrap)
- code = gs_error_rangecheck; /* Always work a line at a time with claptrap */
- else
- code = (*dev_proc(ds->dev, get_bits_rectangle))(ds->dev, &rect, &params2, NULL);
- if (code == gs_error_rangecheck) {
- /* At the bottom of a band, the get_bits_rectangle call can fail to be
- * able to return us enough lines of data at the same time. We therefore
- * drop back to reading them one at a time, and copying them into our
- * own buffer. */
- for (i = 0; i < downfactor; i++) {
- rect.q.y = rect.p.y+1;
- if (rect.q.y > ds->dev->height)
- break;
- memcpy(&params2, &ds->params, sizeof(params2));
- for (j = 0; j < ds->num_planes; j++)
- params2.data[j] = ds->pre_cm[j] + i * ds->span;
- if (ds->claptrap) {
- ds->claptrap_params = &params2;
- code = ClapTrap_GetLinePlanar(ds->claptrap, &params2.data[0]);
- } else {
- /* We always want a copy */
- params2.options &= ~GB_RETURN_POINTER;
- params2.options |= GB_RETURN_COPY;
- code = (*dev_proc(ds->dev, get_bits_rectangle))(ds->dev, &rect, &params2, NULL);
- }
- if (code < 0)
- break;
- rect.p.y++;
+ /* Get downfactor rows worth of data - we always work a line at a
+ * time now. */
+ for (i = 0; i < downfactor; i++) {
+ rect.q.y = rect.p.y+1;
+ if (rect.q.y > ds->dev->height)
+ break;
+ memcpy(&params2, &ds->params, sizeof(params2));
+ for (j = 0; j < ds->num_planes; j++)
+ params2.data[j] = ds->pre_cm[j] + i * ds->span;
+ code = ds->liner->get_line(ds->liner, &params2, rect.p.y);
+ if (code < 0)
+ break;
+ for (j = 0; j < ds->num_planes; j++) {
+ byte *tgt = ds->pre_cm[j] + i * ds->span;
+ if (params2.data[j] != tgt)
+ memcpy(tgt, params2.data[j], n);
}
- if (i == 0)
- return code;
- /* If we still haven't got enough, we've hit the end of the page; just
- * duplicate the last line we did get. */
- for (;i < downfactor; i++)
- for (j = 0; j < ds->num_planes; j++)
- memcpy(ds->pre_cm[j] + i*ds->span, ds->pre_cm[j] + (i-1)*ds->span, copy);
+ rect.p.y++;
}
+ if (i == 0)
+ return code;
if (code < 0)
return code;
+ /* If we still haven't got enough, we've hit the end of the page; just
+ * duplicate the last line we did get. */
+ for (; i < downfactor; i++)
+ for (j = 0; j < ds->num_planes; j++)
+ memcpy(ds->pre_cm[j] + i*ds->span, ds->pre_cm[j] + (i-1)*ds->span, copy);
+
+ for (j = 0; j < ds->num_planes; j++)
+ params2.data[j] = ds->pre_cm[j];
if (ds->early_cm && ds->apply_cm) {
code = ds->apply_cm(ds->apply_cm_arg, ds->params.data, ds->post_cm, ds->dev->width, downfactor, params->raster);
@@ -2878,7 +3081,7 @@ static int downscaler_process_fn(void *arg_, gx_device *dev, gx_device *bdev, co
}
/* Pass on to further processing */
- if (code >= 0 && arg->orig_options && arg->orig_options->process_fn) {
+ if (arg->orig_options && arg->orig_options->process_fn) {
out_rect.p.y = rect->p.y*arg->upfactor/arg->downfactor;
out_rect.q.y += out_rect.p.y;
code = arg->orig_options->process_fn(arg->orig_options->arg, dev,
@@ -2925,7 +3128,7 @@ int gx_downscaler_process_page(gx_device *dev,
gx_downscale_core *core;
arg.orig_options = options;
- decode_factor(factor, &arg.upfactor, &arg.downfactor);
+ gx_downscaler_decode_factor(factor, &arg.upfactor, &arg.downfactor);
arg.ds.dev = dev;
arg.ds.width = (dev->width * arg.upfactor + arg.downfactor-1)/arg.downfactor;
arg.ds.awidth = arg.ds.width;
@@ -2981,7 +3184,7 @@ int gx_downscaler_read_params(gs_param_list *plist,
int features)
{
int code;
- int downscale, mfs, ets;
+ int downscale, mfs, ets, deskew;
int trap_w, trap_h;
const char *param_name;
gs_param_int_array trap_order;
@@ -3004,6 +3207,22 @@ int gx_downscaler_read_params(gs_param_list *plist,
return code;
}
+ switch (code = param_read_int(plist,
+ (param_name = "Deskew"),
+ &deskew)) {
+ case 1:
+ break;
+ case 0:
+ if (deskew >= 0) {
+ params->do_skew_detection = deskew;
+ break;
+ }
+ code = gs_error_rangecheck;
+ default:
+ param_signal_error(plist, param_name, code);
+ return code;
+ }
+
if (features & GX_DOWNSCALER_PARAMS_MFS)
{
switch (code = param_read_int(plist, (param_name = "MinFeatureSize"), &mfs)) {
@@ -3136,6 +3355,8 @@ int gx_downscaler_write_params(gs_param_list *plist,
if ((code = param_write_int(plist, "DownScaleFactor", &params->downscale_factor)) < 0)
ecode = code;
+ if ((code = param_write_int(plist, "Deskew", &params->do_skew_detection)) < 0)
+ ecode = code;
if (features & GX_DOWNSCALER_PARAMS_MFS)
{
if ((code = param_write_int(plist, "MinFeatureSize", &params->min_feature_size)) < 0)
@@ -3167,9 +3388,9 @@ void *ets_malloc(void *malloc_arg, int size)
void *ets_calloc(void *malloc_arg, int count, int size)
{
- void *p = ets_malloc(malloc_arg, count * size);
+ void *p = ets_malloc(malloc_arg, (size_t)count * size);
if (p)
- memset(p, 0, count * size);
+ memset(p, 0, (size_t)count * size);
return p;
}
diff --git a/base/gxdownscale.h b/base/gxdownscale.h
index d237a648..c9db668e 100644
--- a/base/gxdownscale.h
+++ b/base/gxdownscale.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -69,6 +69,8 @@ typedef void (gx_downscale_core)(gx_downscaler_t *ds,
int plane,
int span);
+typedef struct gx_downscale_liner_s gx_downscale_liner;
+
struct gx_downscaler_s {
gx_device *dev; /* Device */
int width; /* Width (pixels) */
@@ -87,9 +89,7 @@ struct gx_downscaler_s {
int num_comps; /* Number of components as rendered */
int num_planes; /* Number of planes if planar, 0 otherwise */
- ClapTrap *claptrap; /* ClapTrap pointer (if trapping) */
- int claptrap_y; /* y pointer (if trapping) */
- gs_get_bits_params_t *claptrap_params; /* params (if trapping) */
+ gx_downscale_liner *liner; /* Source for line data */
int early_cm;
gx_downscale_cm_fn *apply_cm;
@@ -107,8 +107,26 @@ struct gx_downscaler_s {
byte *htrow_alloc;
byte *inbuf;
byte *inbuf_alloc;
+
+ int do_skew_detection;
+ int skew_detected;
+ double skew_angle;
};
+/* The following structure is used to hold the configuration
+ * parameters for the downscaler.
+ */
+typedef struct gx_downscaler_params_s
+{
+ int downscale_factor;
+ int min_feature_size;
+ int trap_w;
+ int trap_h;
+ int trap_order[GS_CLIENT_COLOR_MAX_COMPONENTS];
+ int ets;
+ int do_skew_detection;
+} gx_downscaler_params;
+
/* To use the downscaler:
*
* + define a gx_downscaler_t on the stack.
@@ -118,7 +136,7 @@ struct gx_downscaler_s {
* gx_downscaler_get_bits_rectangle (for planar mode)
* + finalise with gx_downscaler_fin
*/
-
+
/* For chunky mode, currently only:
* src_bpc == 8 && dst_bpc == 1 && num_comps == 1
* src_bpc == 8 && dst_bpc == 8 && num_comps == 1
@@ -131,179 +149,59 @@ struct gx_downscaler_s {
* src_bpp == 16 && dst_bpp == 16
* are supported.
*/
-int gx_downscaler_init(gx_downscaler_t *ds,
- gx_device *dev,
- int src_bpc,
- int dst_bpc,
- int num_comps,
- int factor,
- int mfs,
- int (*adjust_width_proc)(int, int),
- int adjust_width);
-
-int gx_downscaler_init_ets(gx_downscaler_t *ds,
- gx_device *dev,
- int src_bpc,
- int dst_bpc,
- int num_comps,
- int factor,
- int mfs,
- int (*adjust_width_proc)(int, int),
- int adjust_width,
- int ets);
-
-int gx_downscaler_init_trapped(gx_downscaler_t *ds,
- gx_device *dev,
- int src_bpc,
- int dst_bpc,
- int num_comps,
- int factor,
- int mfs,
- int (*adjust_width_proc)(int, int),
- int adjust_width,
- int trap_w,
- int trap_h,
- const int *comp_order);
-
-int gx_downscaler_init_trapped_ets(gx_downscaler_t *ds,
- gx_device *dev,
- int src_bpc,
- int dst_bpc,
- int num_comps,
- int factor,
- int mfs,
- int (*adjust_width_proc)(int, int),
- int adjust_width,
- int trap_w,
- int trap_h,
- const int *comp_order,
- int ets);
-
-int gx_downscaler_init_cm(gx_downscaler_t *ds,
- gx_device *dev,
- int src_bpc,
- int dst_bpc,
- int num_comps,
- int factor,
- int mfs,
- int (*adjust_width_proc)(int, int),
- int adjust_width,
- gx_downscale_cm_fn *apply_cm,
- void *apply_cm_arg,
- int post_cm_num_comps);
-
-int gx_downscaler_init_cm_ets(gx_downscaler_t *ds,
- gx_device *dev,
- int src_bpc,
- int dst_bpc,
- int num_comps,
- int factor,
- int mfs,
- int (*adjust_width_proc)(int, int),
- int adjust_width,
- gx_downscale_cm_fn *apply_cm,
- void *apply_cm_arg,
- int post_cm_num_comps,
- int ets);
-
-int gx_downscaler_init_trapped_cm(gx_downscaler_t *ds,
- gx_device *dev,
- int src_bpc,
- int dst_bpc,
- int num_comps,
- int factor,
- int mfs,
- int (*adjust_width_proc)(int, int),
- int adjust_width,
- int trap_w,
- int trap_h,
- const int *comp_order,
- gx_downscale_cm_fn *apply_cm,
- void *apply_cm_arg,
- int post_cm_num_comps);
-
-int gx_downscaler_init_trapped_cm_ets(gx_downscaler_t *ds,
- gx_device *dev,
- int src_bpc,
- int dst_bpc,
- int num_comps,
- int factor,
- int mfs,
- int (*adjust_width_proc)(int, int),
- int adjust_width,
- int trap_w,
- int trap_h,
- const int *comp_order,
- gx_downscale_cm_fn *apply_cm,
- void *apply_cm_arg,
- int post_cm_num_comps,
- int ets);
-
-int gx_downscaler_init_trapped_cm_halftone(gx_downscaler_t *ds,
- gx_device *dev,
- int src_bpc,
- int dst_bpc,
- int num_comps,
- int factor,
- int mfs,
- int (*adjust_width_proc)(int, int),
- int adjust_width,
- int trap_w,
- int trap_h,
- const int *comp_order,
- gx_downscale_cm_fn *apply_cm,
- void *apply_cm_arg,
- int post_cm_num_comps,
- gx_downscaler_ht_t *ht);
+int gx_downscaler_init(gx_downscaler_t *ds,
+ gx_device *dev,
+ int src_bpc,
+ int dst_bpc,
+ int num_comps,
+ const gx_downscaler_params *params,
+ int (*adjust_width_proc)(int, int),
+ int adjust_width);
+
+int gx_downscaler_init_cm(gx_downscaler_t *ds,
+ gx_device *dev,
+ int src_bpc,
+ int dst_bpc,
+ int num_comps,
+ const gx_downscaler_params *params,
+ int (*adjust_width_proc)(int, int),
+ int adjust_width,
+ gx_downscale_cm_fn *apply_cm,
+ void *apply_cm_arg,
+ int post_cm_num_comps);
+
+int gx_downscaler_init_cm_halftone(gx_downscaler_t *ds,
+ gx_device *dev,
+ int src_bpc,
+ int dst_bpc,
+ int num_comps,
+ const gx_downscaler_params *params,
+ int (*adjust_width_proc)(int, int),
+ int adjust_width,
+ gx_downscale_cm_fn *apply_cm,
+ void *apply_cm_arg,
+ int post_cm_num_comps,
+ gx_downscaler_ht_t *ht);
int gx_downscaler_init_planar(gx_downscaler_t *ds,
gx_device *dev,
- gs_get_bits_params_t *params,
- int num_comps,
- int factor,
- int mfs,
int src_bpc,
- int dst_bpc);
-
-int gx_downscaler_init_planar_trapped(gx_downscaler_t *ds,
- gx_device *dev,
- gs_get_bits_params_t *params,
- int num_comps,
- int factor,
- int mfs,
- int src_bpc,
- int dst_bpc,
- int trap_w,
- int trap_h,
- const int *comp_order);
+ int dst_bpc,
+ int num_comps,
+ const gx_downscaler_params *params,
+ const gs_get_bits_params_t *gb_params);
int gx_downscaler_init_planar_cm(gx_downscaler_t *ds,
gx_device *dev,
- gs_get_bits_params_t *params,
- int num_comps,
- int factor,
- int mfs,
int src_bpc,
int dst_bpc,
+ int num_comps,
+ const gx_downscaler_params *params,
+ const gs_get_bits_params_t *gb_params,
gx_downscale_cm_fn *apply_cm,
void *apply_cm_arg,
int post_cm_num_comps);
-int gx_downscaler_init_planar_trapped_cm(gx_downscaler_t *ds,
- gx_device *dev,
- gs_get_bits_params_t *params,
- int num_comps,
- int factor,
- int mfs,
- int src_bpc,
- int dst_bpc,
- int trap_w,
- int trap_h,
- const int *comp_order,
- gx_downscale_cm_fn *apply_cm,
- void *apply_cm_arg,
- int post_cm_num_comps);
-
int gx_downscaler_getbits(gx_downscaler_t *ds,
byte *out_data,
int row);
@@ -316,6 +214,8 @@ int gx_downscaler_get_bits_rectangle(gx_downscaler_t *ds,
* fin several times) */
void gx_downscaler_fin(gx_downscaler_t *ds);
+void gx_downscaler_decode_factor(int factor, int *up, int *down);
+
int
gx_downscaler_scale(int width, int factor);
@@ -331,21 +231,8 @@ int gx_downscaler_process_page(gx_device *dev,
gx_process_page_options_t *options,
int factor);
-/* The following structure is used to hold the configuration
- * parameters for the downscaler.
- */
-typedef struct gx_downscaler_params_s
-{
- int downscale_factor;
- int min_feature_size;
- int trap_w;
- int trap_h;
- int trap_order[GS_CLIENT_COLOR_MAX_COMPONENTS];
- int ets;
-} gx_downscaler_params;
-
#define GX_DOWNSCALER_PARAMS_DEFAULTS \
-{ 1, 0, 0, 0, { 3, 1, 0, 2 } }
+{ 1, 0, 0, 0, { 3, 1, 0, 2 }, 0, 0 }
enum {
GX_DOWNSCALER_PARAMS_MFS = 1,
diff --git a/base/gxdtfill.h b/base/gxdtfill.h
index 5c1d3da6..7ee73003 100644
--- a/base/gxdtfill.h
+++ b/base/gxdtfill.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxfapi.c b/base/gxfapi.c
index 8c072599..e6bc445d 100644
--- a/base/gxfapi.c
+++ b/base/gxfapi.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -809,7 +809,7 @@ fapi_image_uncached_glyph(gs_font *pfont, gs_gstate *pgs, gs_show_enum *penum,
* compression ratios) we therefore set such bytes to zero. It would
* be nicer if this was fixed in future.
*/
- r = gs_alloc_bytes(penum->memory, dstr * rast->height,
+ r = gs_alloc_bytes(penum->memory, (size_t)dstr * rast->height,
"fapi_finish_render_aux");
if (!r) {
return_error(gs_error_VMerror);
@@ -1687,12 +1687,12 @@ gs_fapi_do_char(gs_font *pfont, gs_gstate *pgs, gs_text_enum_t *penum, char *fon
if (bCID) {
code =
- I->ff.fapi_set_cache(penum, pbfont, &enc_char_name_string, index,
+ I->ff.fapi_set_cache(penum, pbfont, &enc_char_name_string, index + GS_MIN_CID_GLYPH,
sbw + 2, &char_bbox, sbwp, &imagenow);
}
else {
code =
- I->ff.fapi_set_cache(penum, pbfont, &enc_char_name_string, -1,
+ I->ff.fapi_set_cache(penum, pbfont, &enc_char_name_string, index,
sbw + 2, &char_bbox, sbwp, &imagenow);
}
diff --git a/base/gxfapi.h b/base/gxfapi.h
index 687cd3e6..a1a747b6 100644
--- a/base/gxfapi.h
+++ b/base/gxfapi.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -179,42 +179,44 @@ struct gs_fapi_font_s
const void *char_data;
int char_data_len;
float embolden;
- unsigned short (*get_word) (gs_fapi_font *ff,
- gs_fapi_font_feature var_id, int index);
- unsigned long (*get_long) (gs_fapi_font *ff, gs_fapi_font_feature var_id,
- int index);
- float (*get_float) (gs_fapi_font *ff, gs_fapi_font_feature var_id,
- int index);
- int (*get_name) (gs_fapi_font *ff, gs_fapi_font_feature var_id,
- int index, char *buffer, int len);
- int (*get_proc) (gs_fapi_font *ff, gs_fapi_font_feature var_id,
- int index, char *Buffer);
- unsigned short (*get_gsubr) (gs_fapi_font *ff, int index, byte *buf,
- ushort buf_length);
- unsigned short (*get_subr) (gs_fapi_font *ff, int index, byte *buf,
- ushort buf_length);
- unsigned short (*get_raw_subr) (gs_fapi_font *ff, int index, byte *buf,
- ushort buf_length);
- int (*get_glyph) (gs_fapi_font *ff, int char_code, byte *buf,
- ushort buf_length);
- unsigned short (*serialize_tt_font) (gs_fapi_font *ff, void *buf,
- int buf_size);
- unsigned short (*get_charstring) (gs_fapi_font *ff, int index,
- byte *buf, ushort buf_length);
- unsigned short (*get_charstring_name) (gs_fapi_font *ff, int index,
- byte *buf, ushort buf_length);
- int (*get_glyphdirectory_data) (gs_fapi_font *ff, int char_code,
- const byte **ptr);
+
+ int (*get_word) (gs_fapi_font *ff, gs_fapi_font_feature var_id, int index, unsigned short *ret);
+
+ int (*get_long) (gs_fapi_font *ff, gs_fapi_font_feature var_id, int index, unsigned long *ret);
+
+ int (*get_float) (gs_fapi_font *ff, gs_fapi_font_feature var_id, int index, float *ret);
+
+ int (*get_name) (gs_fapi_font *ff, gs_fapi_font_feature var_id, int index, char *buffer, int len);
+
+ int (*get_proc) (gs_fapi_font *ff, gs_fapi_font_feature var_id, int index, char *Buffer);
+
+ int (*get_gsubr) (gs_fapi_font *ff, int index, byte *buf, int buf_length);
+
+ int (*get_subr) (gs_fapi_font *ff, int index, byte *buf, int buf_length);
+
+ int (*get_raw_subr) (gs_fapi_font *ff, int index, byte *buf, int buf_length);
+
+ int (*get_glyph) (gs_fapi_font *ff, gs_glyph char_code, byte *buf, int buf_length);
+
+ int (*serialize_tt_font) (gs_fapi_font *ff, void *buf, int buf_size);
+
+ int (*get_charstring) (gs_fapi_font *ff, int index, byte *buf, ushort buf_length);
+
+ int (*get_charstring_name) (gs_fapi_font *ff, int index, byte *buf, ushort buf_length);
+
+ int (*get_glyphdirectory_data) (gs_fapi_font *ff, int char_code, const byte **ptr);
+
int (*get_glyphname_or_cid) (gs_text_enum_t *penum, gs_font_base *pbfont,
gs_string *charstring, gs_string *name,
- int ccode, gs_string *enc_char_name,
+ gs_glyph ccode, gs_string *enc_char_name,
char *font_file_path, gs_fapi_char_ref *cr,
bool bCID);
- int (*fapi_get_metrics) (gs_fapi_font *ff, gs_string *char_name,
- int cid, double *m, bool vertical);
+
+ int (*fapi_get_metrics) (gs_fapi_font *ff, gs_string *char_name, gs_glyph cid, double *m, bool vertical);
+
int (*fapi_set_cache) (gs_text_enum_t *penum,
const gs_font_base *pbfont,
- const gs_string *char_name, int cid,
+ const gs_string *char_name, gs_glyph cid,
const double pwidth[2], const gs_rect *pbbox,
const double Metrics2_sbw_default[4],
bool *imagenow);
diff --git a/base/gxfapiu.c b/base/gxfapiu.c
index a15ce006..125b47f5 100644
--- a/base/gxfapiu.c
+++ b/base/gxfapiu.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxfapiu.h b/base/gxfapiu.h
index 10ea80c0..16117c29 100644
--- a/base/gxfapiu.h
+++ b/base/gxfapiu.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxfarith.h b/base/gxfarith.h
index c1d312d2..7a3aefc3 100644
--- a/base/gxfarith.h
+++ b/base/gxfarith.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxfcache.h b/base/gxfcache.h
index 9409ed00..b265f2f3 100644
--- a/base/gxfcache.h
+++ b/base/gxfcache.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxfcid.h b/base/gxfcid.h
index ee8b61ec..5b42e3dc 100644
--- a/base/gxfcid.h
+++ b/base/gxfcid.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxfcmap.h b/base/gxfcmap.h
index 880d59f5..29c2b7a7 100644
--- a/base/gxfcmap.h
+++ b/base/gxfcmap.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxfcmap1.h b/base/gxfcmap1.h
index fe528ab7..496a97c3 100644
--- a/base/gxfcmap1.h
+++ b/base/gxfcmap1.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxfill.c b/base/gxfill.c
index 68bcdafc..bde98416 100644
--- a/base/gxfill.c
+++ b/base/gxfill.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -155,15 +155,15 @@ gs_private_st_simple(st_active_line, active_line, "active_line");
static void
print_active_line(const gs_memory_t *mem, const char *label, const active_line * alp)
{
- dmlprintf5(mem, "[f]%s 0x%lx(%d): x_current=%f x_next=%f\n",
- label, (ulong) alp, alp->direction,
+ dmlprintf5(mem, "[f]%s "PRI_INTPTR"(%d): x_current=%f x_next=%f\n",
+ label, (intptr_t)alp, alp->direction,
fixed2float(alp->x_current), fixed2float(alp->x_next));
- dmlprintf5(mem, " start=(%f,%f) pt_end=0x%lx(%f,%f)\n",
+ dmlprintf5(mem, " start=(%f,%f) pt_end="PRI_INTPTR"(%f,%f)\n",
fixed2float(alp->start.x), fixed2float(alp->start.y),
- (ulong) alp->pseg,
+ (intptr_t)alp->pseg,
fixed2float(alp->end.x), fixed2float(alp->end.y));
- dmlprintf2(mem, " prev=0x%lx next=0x%lx\n",
- (ulong) alp->prev, (ulong) alp->next);
+ dmlprintf2(mem, " prev="PRI_INTPTR" next="PRI_INTPTR"\n",
+ (intptr_t)alp->prev, (intptr_t)alp->next);
}
static void
print_line_list(const gs_memory_t *mem, const active_line * flp)
@@ -173,8 +173,8 @@ print_line_list(const gs_memory_t *mem, const active_line * flp)
for (lp = flp; lp != 0; lp = lp->next) {
fixed xc = lp->x_current, xn = lp->x_next;
- dmlprintf3(mem, "[f]0x%lx(%d): x_current/next=%g",
- (ulong) lp, lp->direction,
+ dmlprintf3(mem, "[f]"PRI_INTPTR"(%d): x_current/next=%g",
+ (intptr_t)lp, lp->direction,
fixed2float(xc));
if (xn != xc)
dmprintf1(mem, "/%g", fixed2float(xn));
@@ -1337,7 +1337,7 @@ remove_al(const line_list *ll, active_line *alp)
alp->prev->next = nlp;
if (nlp)
nlp->prev = alp->prev;
- if_debug1m('F', ll->memory, "[F]drop 0x%lx\n", (ulong) alp);
+ if_debug1m('F', ll->memory, "[F]drop "PRI_INTPTR"\n", (intptr_t)alp);
}
/*
@@ -1616,8 +1616,8 @@ resort_x_line(active_line * alp)
if (next)
next->prev = prev;
while (x_order(prev, alp) > 0) {
- if_debug2('F', "[F]swap 0x%lx,0x%lx\n",
- (ulong) alp, (ulong) prev);
+ if_debug2('F', "[F]swap "PRI_INTPTR","PRI_INTPTR"\n",
+ (intptr_t)alp, (intptr_t)prev);
next = prev, prev = prev->prev;
}
alp->next = next;
@@ -2153,8 +2153,8 @@ range_alloc(coord_range_list_t *pcrl)
static void
range_delete(coord_range_list_t *pcrl, coord_range_t *pcr)
{
- if_debug3('Q', "[Qr]delete 0x%lx: [%d,%d)\n", (ulong)pcr, pcr->rmin,
- pcr->rmax);
+ if_debug3('Q', "[Qr]delete "PRI_INTPTR": [%d,%d)\n",
+ (intptr_t)pcr, pcr->rmin, pcr->rmax);
pcr->prev->next = pcr->next;
pcr->next->prev = pcr->prev;
pcr->next = pcrl->freed;
@@ -2274,13 +2274,13 @@ range_list_add(coord_range_list_t *pcrl, coord_value_t rmin, coord_value_t rmax)
* abut if the adjacent range is the special min or max range.
*/
if (rmin < pcr->rmin) {
- if_debug3('Q', "[Qr]update 0x%lx => [%d,%d)\n", (ulong)pcr, rmin,
- pcr->rmax);
+ if_debug3('Q', "[Qr]update "PRI_INTPTR" => [%d,%d)\n",
+ (intptr_t)pcr, rmin, pcr->rmax);
pcr->rmin = rmin;
}
if (rmax > pcr->rmax) {
- if_debug3('Q', "[Qr]update 0x%lx => [%d,%d)\n", (ulong)pcr, pcr->rmin,
- rmax);
+ if_debug3('Q', "[Qr]update "PRI_INTPTR" => [%d,%d)\n",
+ (intptr_t)pcr, pcr->rmin, rmax);
pcr->rmax = rmax;
}
pcrl->current = pcr->next;
@@ -2292,7 +2292,7 @@ range_list_add(coord_range_list_t *pcrl, coord_value_t rmin, coord_value_t rmax)
if (prev == 0)
return_error(gs_error_VMerror);
- if_debug3('Q', "[Qr]insert 0x%lx: [%d,%d)\n", (ulong)prev, rmin, rmax);
+ if_debug3('Q', "[Qr]insert "PRI_INTPTR": [%d,%d)\n", (intptr_t)prev, rmin, rmax);
prev->rmin = rmin, prev->rmax = rmax;
(prev->prev = pcr->prev)->next = prev;
prev->next = pcr;
diff --git a/base/gxfill.h b/base/gxfill.h
index 17fa0a88..4ca95cd3 100644
--- a/base/gxfill.h
+++ b/base/gxfill.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxfillsl.h b/base/gxfillsl.h
index 0714c040..c479d01b 100644
--- a/base/gxfillsl.h
+++ b/base/gxfillsl.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -151,8 +151,8 @@ TEMPLATE_spot_into_scanlines (line_list *ll, fixed band_mask)
) {
int x0 = pcr->rmin, x1 = pcr->rmax;
- if_debug4m('Q', ll->memory, "[Qr]draw 0x%lx: [%d,%d),%d\n", (ulong)pcr,
- x0, x1, y0);
+ if_debug4m('Q', ll->memory, "[Qr]draw "PRI_INTPTR": [%d,%d),%d\n",
+ (intptr_t)pcr, x0, x1, y0);
code = LOOP_FILL_RECTANGLE_DIRECT(&fo, x0, y0, x1 - x0, 1);
if_debug3m('F', ll->memory, "[F]drawing [%d:%d),%d\n", x0, x1, y0);
if (code < 0)
diff --git a/base/gxfilltr.h b/base/gxfilltr.h
index 0b5dd33b..0ac779bf 100644
--- a/base/gxfilltr.h
+++ b/base/gxfilltr.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxfillts.h b/base/gxfillts.h
index 3e40b0a0..e693415b 100644
--- a/base/gxfillts.h
+++ b/base/gxfillts.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxfixed.h b/base/gxfixed.h
index e164cd04..2049df03 100644
--- a/base/gxfixed.h
+++ b/base/gxfixed.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxfmap.h b/base/gxfmap.h
index d1588fbb..32d21955 100644
--- a/base/gxfmap.h
+++ b/base/gxfmap.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxfont.h b/base/gxfont.h
index 53edcdeb..c277e0c1 100644
--- a/base/gxfont.h
+++ b/base/gxfont.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxfont0.h b/base/gxfont0.h
index dd6f3d0f..bd72fbd1 100644
--- a/base/gxfont0.h
+++ b/base/gxfont0.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxfont0c.h b/base/gxfont0c.h
index e16b2ed4..f436e6b4 100644
--- a/base/gxfont0c.h
+++ b/base/gxfont0c.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxfont1.h b/base/gxfont1.h
index 8ba6f131..51a4ecf1 100644
--- a/base/gxfont1.h
+++ b/base/gxfont1.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxfont42.h b/base/gxfont42.h
index a7cf09da..5cacf809 100644
--- a/base/gxfont42.h
+++ b/base/gxfont42.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -96,7 +96,7 @@ struct gs_type42_data_s {
* the definition and/or by changing the name of the data member, we add
* another member trueNumGlyphs to hold the value from maxp.
*/
- uint numGlyphs; /* from size of loca */
+ int numGlyphs; /* from size of loca */
uint trueNumGlyphs; /* from maxp */
uint maxPoints; /* from maxp (used by pdfwrite) */
uint maxContours; /* from maxp (used by pdfwrite) */
diff --git a/base/gxfrac.h b/base/gxfrac.h
index 620d9eb1..4af9cecc 100644
--- a/base/gxfrac.h
+++ b/base/gxfrac.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxftype.h b/base/gxftype.h
index 4a01b8f7..10d73275 100644
--- a/base/gxftype.h
+++ b/base/gxftype.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxfunc.h b/base/gxfunc.h
index 5e16a899..eea2e8d9 100644
--- a/base/gxfunc.h
+++ b/base/gxfunc.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxgetbit.h b/base/gxgetbit.h
index b8228ee1..54b13d1a 100644
--- a/base/gxgetbit.h
+++ b/base/gxgetbit.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxgstate.h b/base/gxgstate.h
index e6dd92f7..2ab96a3f 100644
--- a/base/gxgstate.h
+++ b/base/gxgstate.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -240,9 +240,7 @@ struct gs_gstate_s {
gs_point subpath_start;
bool clamp_coordinates;
gs_logical_operation_t log_op;
- gx_color_value alpha;
gs_blend_mode_t blend_mode;
- gs_transparency_source_t opacity, shape;
gs_xstate_trans_flags_t trans_flags;
gs_id soft_mask_id;
bool text_knockout;
@@ -325,9 +323,9 @@ struct gs_gstate_s {
0, 0, { gx_line_params_initial }, 0,\
{ (float)(scale), 0.0, 0.0, (float)(-(scale)), 0.0, 0.0 },\
false, {0, 0}, {0, 0}, false, \
- lop_default, gx_max_color_value, BLEND_MODE_Compatible,\
-{ 1.0 }, { 1.0 }, {0, 0}, 0, 0/*false*/, 0, 0/*false*/, 0, 0/*false*/, 0, 0/*false*/, 1.0, \
- { fixed_half, fixed_half }, 0/*false*/, 1/*true*/, 0/*false*/, 1.0,\
+ lop_default, BLEND_MODE_Compatible,\
+ {0, 0}, 0, 1/*true*/, 0, 0/*false*/, 0, 0/*false*/, 0, 0/*false*/, 1.0, \
+ { fixed_half, fixed_half }, 0/*false*/, 1/*true*/, 0/*false*/, (float)0.02,\
1, 1/* bpt true */, 0, 0, 0, INIT_CUSTOM_COLOR_PTR /* 'Custom color' callback pointer */ \
gx_default_get_cmap_procs
@@ -344,10 +342,7 @@ struct gs_gstate_s {
s->subpath_start = __state_init.subpath_start; \
s->clamp_coordinates = __state_init.clamp_coordinates; \
s->log_op = __state_init.log_op; \
- s->alpha = __state_init.alpha; \
s->blend_mode = __state_init.blend_mode; \
- s->opacity = __state_init.opacity; \
- s->shape = __state_init.shape; \
s->trans_flags = __state_init.trans_flags; \
s->soft_mask_id = __state_init.soft_mask_id; \
s->text_knockout = __state_init.text_knockout; \
@@ -371,6 +366,14 @@ struct gs_gstate_s {
s->get_cmap_procs = __state_init.get_cmap_procs; \
s->show_gstate = NULL; \
s->is_fill_color = 1; \
+ s->strokeconstantalpha = 1.0; \
+ s->fillconstantalpha = 1.0; \
+ s->alphaisshape = 0; \
+ s->texthscaling = 100.0; \
+ s->textspacing = 0.0; \
+ s->textleading = 0.0; \
+ s->wordspacing = 0.0; \
+ s->textrise = 0.0; \
} while (0)
struct_proc_finalize(gs_gstate_finalize);
@@ -417,10 +420,6 @@ struct_proc_finalize(gs_gstate_finalize);
/* gs_gstate_initial. */
int gs_gstate_initialize(gs_gstate * pgs, gs_memory_t * mem);
-/* Make a temporary copy of a gs_gstate. Note that this does not */
-/* do all the necessary reference counting, etc. */
-gs_gstate * gs_gstate_copy_temp(const gs_gstate * pgs, gs_memory_t * mem);
-
/* Increment reference counts to note that a graphics state has been copied. */
void gs_gstate_copied(gs_gstate * pgs);
diff --git a/base/gxhintn.c b/base/gxhintn.c
index dc28c00d..30847bcb 100644
--- a/base/gxhintn.c
+++ b/base/gxhintn.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -648,11 +648,11 @@ static void t1_hinter__make_zone(t1_hinter * self, t1_zone *zone, float * blues,
static bool t1_hinter__realloc_array(gs_memory_t *mem, void **a, void *a0, int *max_count, int elem_size, int enhancement, const char *cname)
{
- void *aa = gs_alloc_bytes(mem, (*max_count + enhancement * 2) * elem_size, cname);
+ void *aa = gs_alloc_bytes(mem, (size_t)(*max_count + enhancement * 2) * elem_size, cname);
if (aa == NULL)
return true;
- memcpy(aa, *a, *max_count * elem_size);
+ memcpy(aa, *a, (size_t)*max_count * elem_size);
if (*a != a0)
gs_free_object(mem, *a, cname);
*a = aa;
diff --git a/base/gxhintn.h b/base/gxhintn.h
index 9b889992..115c7582 100644
--- a/base/gxhintn.h
+++ b/base/gxhintn.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxhintn1.c b/base/gxhintn1.c
index e6c8ea14..ad579893 100644
--- a/base/gxhintn1.c
+++ b/base/gxhintn1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxhldevc.c b/base/gxhldevc.c
index 806aada4..9060590e 100644
--- a/base/gxhldevc.c
+++ b/base/gxhldevc.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxhldevc.h b/base/gxhldevc.h
index 4c50be2a..60b275c0 100644
--- a/base/gxhldevc.h
+++ b/base/gxhldevc.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxht.c b/base/gxht.c
index be8f1a0e..77ea765a 100644
--- a/base/gxht.c
+++ b/base/gxht.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -752,8 +752,8 @@ render_ht(gx_ht_tile * pbt, int level /* [1..num_bits-1] */ ,
byte *data = pbt->tiles.data;
int code;
- if_debug7('H', "[H]Halftone cache slot 0x%lx: old=%d, new=%d, w=%d(%d), h=%d(%d):\n",
- (ulong) data, pbt->level, level,
+ if_debug7('H', "[H]Halftone cache slot "PRI_INTPTR": old=%d, new=%d, w=%d(%d), h=%d(%d):\n",
+ (intptr_t)data, pbt->level, level,
pbt->tiles.size.x, porder->width,
pbt->tiles.size.y, porder->num_bits / porder->width);
#ifdef DEBUG
diff --git a/base/gxht.h b/base/gxht.h
index 55464b98..f2b33f0d 100644
--- a/base/gxht.h
+++ b/base/gxht.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -164,7 +164,7 @@ extern_st(st_ht_component_element);
typedef struct gs_multiple_halftone_s {
gs_halftone_component *components;
uint num_comp;
- int (*get_colorname_string)(const gs_memory_t *mem, gs_separation_name colorname_index,
+ int (*get_colorname_string)(gs_gstate *pgs, gs_separation_name colorname_index,
unsigned char **ppstr, unsigned int *pname_size);
} gs_multiple_halftone;
diff --git a/base/gxht_thresh.c b/base/gxht_thresh.c
index 0b6e5a8e..eb4d6edb 100644
--- a/base/gxht_thresh.c
+++ b/base/gxht_thresh.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -718,7 +718,7 @@ gxht_thresh_image_init(gx_image_enum *penum)
penum->ht_buffer =
gs_alloc_bytes(penum->memory,
- penum->ht_stride * max_height * spp_out,
+ (size_t)penum->ht_stride * max_height * spp_out,
"gxht_thresh");
penum->ht_plane_height = penum->ht_stride * max_height;
/* We want to have 128 bit alignement for our contone and
@@ -744,7 +744,7 @@ gxht_thresh_image_init(gx_image_enum *penum)
penum->line = gs_alloc_bytes(penum->memory, penum->line_size * spp_out,
"gxht_thresh");
penum->thresh_buffer = gs_alloc_bytes(penum->memory,
- penum->line_size * max_height,
+ (size_t)penum->line_size * max_height,
"gxht_thresh");
if (penum->line == NULL || penum->thresh_buffer == NULL ||
penum->ht_buffer == NULL) {
diff --git a/base/gxht_thresh.h b/base/gxht_thresh.h
index dba1b02d..3ac7eab9 100644
--- a/base/gxht_thresh.h
+++ b/base/gxht_thresh.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxhtbit.c b/base/gxhtbit.c
index 339f669b..6cb6fdcb 100644
--- a/base/gxhtbit.c
+++ b/base/gxhtbit.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -94,7 +94,7 @@ construct_ht_order_short(gx_ht_order *porder, const byte *thresholds)
phtr->elt_size == sizeof(ushort) &&
!memcmp(phtr->levels, levels, num_levels * sizeof(*levels)) &&
!memcmp(phtr->bit_data, porder->bit_data,
- size * phtr->elt_size)
+ (size_t)size * phtr->elt_size)
) {
/*
* This is a predefined halftone. Free the levels and
diff --git a/base/gxhttile.h b/base/gxhttile.h
index 661a99d4..6558784a 100644
--- a/base/gxhttile.h
+++ b/base/gxhttile.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxhttype.h b/base/gxhttype.h
index ab3a09a4..d6605aeb 100644
--- a/base/gxhttype.h
+++ b/base/gxhttype.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxi12bit.c b/base/gxi12bit.c
index 0cb70fee..fdf56fb1 100644
--- a/base/gxi12bit.c
+++ b/base/gxi12bit.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -412,14 +412,14 @@ image_render_frac(gx_image_enum * penum, const byte * buffer, int data_x,
f:
if (sizeof(pdevc_next->colors.binary.color[0]) <= sizeof(ulong))
if_debug7m('B', penum->memory,
- "[B]0x%x,0x%x,0x%x,0x%x -> 0x%lx,0x%lx,0x%lx\n",
+ "[B]0x%x,0x%x,0x%x,0x%x -> 0x%lx,0x%lx," PRI_INTPTR "\n",
next.v[0], next.v[1], next.v[2], next.v[3],
(ulong)pdevc_next->colors.binary.color[0],
(ulong)pdevc_next->colors.binary.color[1],
- (ulong)pdevc_next->type);
+ (intptr_t)pdevc_next->type);
else
if_debug9m('B', penum->memory,
- "[B]0x%x,0x%x,0x%x,0x%x -> 0x%08lx%08lx,0x%08lx%08lx,0x%lx\n",
+ "[B]0x%x,0x%x,0x%x,0x%x -> 0x%08lx%08lx,0x%08lx%08lx," PRI_INTPTR "\n",
next.v[0], next.v[1], next.v[2], next.v[3],
(ulong)(pdevc_next->colors.binary.color[0] >>
8 * (sizeof(pdevc_next->colors.binary.color[0]) - sizeof(ulong))),
@@ -427,7 +427,7 @@ f:
(ulong)(pdevc_next->colors.binary.color[1] >>
8 * (sizeof(pdevc_next->colors.binary.color[1]) - sizeof(ulong))),
(ulong)pdevc_next->colors.binary.color[1],
- (ulong)pdevc_next->type);
+ (intptr_t)pdevc_next->type);
/* NB: sizeof gx_color_index is 4 or 8 bytes! */
/* Even though the supplied colors don't match, */
diff --git a/base/gxi16bit.c b/base/gxi16bit.c
index 8e229dce..7d2f7da3 100644
--- a/base/gxi16bit.c
+++ b/base/gxi16bit.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxiclass.h b/base/gxiclass.h
index 730d08be..89721ae9 100644
--- a/base/gxiclass.h
+++ b/base/gxiclass.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxicolor.c b/base/gxicolor.c
index 3bee9814..58ead88a 100644
--- a/base/gxicolor.c
+++ b/base/gxicolor.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -698,7 +698,7 @@ image_render_color_thresh(gx_image_enum *penum_orig, const byte *buffer, int dat
penum->ht_offset_bits)) & 15;
for (k = 0; k < spp_out; k ++) {
offset_contone[k] = (- (((long)(penum->line)) +
- contone_stride * k +
+ (long)contone_stride * k +
penum->ht_offset_bits)) & 15;
}
data_length = dest_width;
@@ -724,7 +724,7 @@ image_render_color_thresh(gx_image_enum *penum_orig, const byte *buffer, int dat
offset_threshold = (-(long)(penum->thresh_buffer)) & 15;
for (k = 0; k < spp_out; k ++) {
offset_contone[k] = (- ((long)(penum->line) +
- contone_stride * k)) & 15;
+ (long)contone_stride * k)) & 15;
}
/* In the landscaped case, we want to accumulate multiple columns
of data before sending to the device. We want to have a full
@@ -1222,14 +1222,14 @@ mapped: if (mcode < 0)
goto fill;
if (sizeof(pdevc_next->colors.binary.color[0]) <= sizeof(ulong))
if_debug7m('B', penum->memory,
- "[B]0x%x,0x%x,0x%x,0x%x -> 0x%lx,0x%lx,0x%lx\n",
+ "[B]0x%x,0x%x,0x%x,0x%x -> 0x%lx,0x%lx," PRI_INTPTR "\n",
next.v[0], next.v[1], next.v[2], next.v[3],
(ulong)pdevc_next->colors.binary.color[0],
(ulong)pdevc_next->colors.binary.color[1],
- (ulong) pdevc_next->type);
+ (intptr_t)pdevc_next->type);
else
if_debug9m('B', penum->memory,
- "[B]0x%x,0x%x,0x%x,0x%x -> 0x%08lx%08lx,0x%08lx%08lx,0x%lx\n",
+ "[B]0x%x,0x%x,0x%x,0x%x -> 0x%08lx%08lx,0x%08lx%08lx," PRI_INTPTR "\n",
next.v[0], next.v[1], next.v[2], next.v[3],
(ulong)(pdevc_next->colors.binary.color[0] >>
8 * (sizeof(pdevc_next->colors.binary.color[0]) - sizeof(ulong))),
@@ -1237,7 +1237,7 @@ mapped: if (mcode < 0)
(ulong)(pdevc_next->colors.binary.color[1] >>
8 * (sizeof(pdevc_next->colors.binary.color[1]) - sizeof(ulong))),
(ulong)pdevc_next->colors.binary.color[1],
- (ulong) pdevc_next->type);
+ (intptr_t)pdevc_next->type);
/* NB: printf above fails to account for sizeof gx_color_index 4 or 8 bytes */
if (posture != image_skewed && dev_color_eq(*pdevc, *pdevc_next))
goto set;
diff --git a/base/gxidata.c b/base/gxidata.c
index f29fca27..857d314d 100644
--- a/base/gxidata.c
+++ b/base/gxidata.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -74,7 +74,7 @@ gx_image1_plane_data(gx_image_enum_common_t * info,
int px;
for (px = 0; px < num_planes; ++px)
- offsets[px] = planes[px].raster * penum->used.y;
+ offsets[px] = (size_t)planes[px].raster * penum->used.y;
penum->used.y = 0;
} else
memset(offsets, 0, num_planes * sizeof(offsets[0]));
diff --git a/base/gxifast.c b/base/gxifast.c
index aa8012ac..97188230 100644
--- a/base/gxifast.c
+++ b/base/gxifast.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gximag3x.c b/base/gximag3x.c
index 7a5f2c37..1c39b487 100644
--- a/base/gximag3x.c
+++ b/base/gximag3x.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gximag3x.h b/base/gximag3x.h
index 59fc345a..989c80a9 100644
--- a/base/gximag3x.h
+++ b/base/gximag3x.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gximage.c b/base/gximage.c
index 9df48630..74456b47 100644
--- a/base/gximage.c
+++ b/base/gximage.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gximage.h b/base/gximage.h
index 7de46962..ae492d29 100644
--- a/base/gximage.h
+++ b/base/gximage.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gximage1.c b/base/gximage1.c
index 87d1e3e0..a008fb54 100644
--- a/base/gximage1.c
+++ b/base/gximage1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gximage3.c b/base/gximage3.c
index 37693578..522c71ff 100644
--- a/base/gximage3.c
+++ b/base/gximage3.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gximage3.h b/base/gximage3.h
index 8a992cb4..dac31c3b 100644
--- a/base/gximage3.h
+++ b/base/gximage3.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gximage4.c b/base/gximage4.c
index 3107f68e..4bd9ddb2 100644
--- a/base/gximage4.c
+++ b/base/gximage4.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gximask.c b/base/gximask.c
index f61bd1bd..d1c155b7 100644
--- a/base/gximask.c
+++ b/base/gximask.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gximask.h b/base/gximask.h
index 5219a600..58807e64 100644
--- a/base/gximask.h
+++ b/base/gximask.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gximdecode.c b/base/gximdecode.c
index 9d42b2fb..b41de6a0 100644
--- a/base/gximdecode.c
+++ b/base/gximdecode.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2018 Artifex Software, Inc.
+/* Copyright (C) 2014-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gximdecode.h b/base/gximdecode.h
index 8829de49..2a21d973 100644
--- a/base/gximdecode.h
+++ b/base/gximdecode.h
@@ -16,6 +16,9 @@ CA 94945, U.S.A., +1(415)492-9861, for further information.
/* Prototypes for decoding and unpacking image data. Used for color
monitoring in clist and for creating TIFF files for xpswrite device */
+#ifndef gximdecode_h_INCLUDED
+#define gximdecode_h_INCLUDED
+
#include "gx.h"
#include "gxfixed.h"
#include "gximage.h"
@@ -40,3 +43,5 @@ void get_unpack_proc(gx_image_enum_common_t *pie, image_decode_t *imd,
void get_map(image_decode_t *imd, gs_image_format_t format, const float *decode);
void applymap16(sample_map map[], const void *psrc, int spp, void *pdes, void *bufend);
void applymap8(sample_map map[], const void *psrc, int spp, void *pdes, void *bufend);
+
+#endif
diff --git a/base/gximono.c b/base/gximono.c
index ee2c69b4..77fa700e 100644
--- a/base/gximono.c
+++ b/base/gximono.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -140,7 +140,7 @@ halftone_init(gx_image_enum *penum)
penum->pgs->dev_ht->components[k].corder.threshold_inverted,
penum->pgs->dev_ht->components[k].corder.width,
penum->pgs->dev_ht->components[k].corder.full_height,
- -penum->pgs->screen_phase[k].x,
+ penum->pgs->screen_phase[k].x,
-penum->pgs->screen_phase[k].y,
penum->pgs->dev_ht->components[k].corder.threshold) < 0)
goto fail;
@@ -1072,7 +1072,7 @@ image_render_mono_ht(gx_image_enum * penum_orig, const byte * buffer, int data_x
penum->ht_offset_bits)) & 15;
for (k = 0; k < spp_out; k ++) {
offset_contone[k] = (- (((long)(penum->line)) +
- contone_stride * k +
+ (long)contone_stride * k +
penum->ht_offset_bits)) & 15;
}
data_length = dest_width;
@@ -1098,7 +1098,7 @@ image_render_mono_ht(gx_image_enum * penum_orig, const byte * buffer, int data_x
offset_threshold = (-(long)(penum->thresh_buffer)) & 15;
for (k = 0; k < spp_out; k ++) {
offset_contone[k] = (- ((long)(penum->line) +
- contone_stride * k)) & 15;
+ (long)contone_stride * k)) & 15;
}
/* In the landscaped case, we want to accumulate multiple columns
of data before sending to the device. We want to have a full
diff --git a/base/gxiodev.h b/base/gxiodev.h
index fa9065f6..704ab9ac 100644
--- a/base/gxiodev.h
+++ b/base/gxiodev.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -205,4 +205,11 @@ gs_iodev_init(gs_memory_t * mem);
void
gs_iodev_finit(gs_memory_t * mem);
+/* Backdoor into romfs for reading file length.
+ * Required because C++ and C seem to differ on sizeof(stat).
+ */
+int
+romfs_file_len(gs_memory_t * mem, const char *name);
+
+
#endif /* gxiodev_INCLUDED */
diff --git a/base/gxiparam.h b/base/gxiparam.h
index 00007ec2..8d6083fb 100644
--- a/base/gxiparam.h
+++ b/base/gxiparam.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxipixel.c b/base/gxipixel.c
index 9aad6c8a..c6057577 100644
--- a/base/gxipixel.c
+++ b/base/gxipixel.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -1215,7 +1215,7 @@ image_init_color_cache(gx_image_enum * penum, int bps, int spp)
to decode first. Then we can apply CM. Create a temp buffer in
the source space and then transform it with one call */
temp_buffer = (byte*) gs_alloc_bytes(penum->memory,
- num_entries * num_src_comp,
+ (size_t)num_entries * num_src_comp,
"image_init_color_cache");
if (need_decode) {
if (is_indexed) {
diff --git a/base/gxiscale.c b/base/gxiscale.c
index 3eec2f7d..83427431 100644
--- a/base/gxiscale.c
+++ b/base/gxiscale.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -499,7 +499,7 @@ gs_image_class_0_interpolate(gx_image_enum * penum, irender_proc_t *render_fn)
iss.BitsPerComponentIn = sizeof(frac) * 8;
iss.MaxValueIn = frac_1;
}
- in_size = round_up(iss.WidthIn * iss.spp_decode * sizeof(frac),
+ in_size = round_up(iss.WidthIn * iss.spp_decode * (int)sizeof(frac),
align_bitmap_mod);
/* Size to allocate space to store the input as frac type */
}
@@ -1079,12 +1079,13 @@ get_color_handler(gx_image_enum *penum, int spp_decode,
/* If we are in a non device space then work from the pcs not from the
concrete space also handle index case, where base case was device type */
/* We'll have done the interpolation in the base space, not the indexed
- * space, so allow for that here. */
+ * space, so allow for that here. Also avoid problems with separation
+ * color spaces with check for presence of ICC profile */
if (is_index_space)
pcs = pcs->base_space;
- if (dev_profile->usefastcolor &&
+ if (dev_profile->usefastcolor && pcs->cmm_icc_profile_data != NULL &&
gsicc_is_default_profile(pcs->cmm_icc_profile_data) &&
- dev_profile->device_profile[0]->num_comps == spp_decode) {
+ dev_profile->device_profile[GS_DEFAULT_DEVICE_PROFILE]->num_comps == spp_decode) {
const gs_color_space * pconcs = cs_concrete_space(pcs, pgs);
if (pconcs && pconcs == pcs) {
*pconc = pconcs;
@@ -2159,7 +2160,7 @@ image_render_interpolate_icc(gx_image_enum * penum, const byte * buffer,
/* Get the buffers set up. */
p_cm_buff =
(byte *) gs_alloc_bytes(pgs->memory,
- num_bytes_decode * width_in * spp_cm,
+ (size_t)num_bytes_decode * width_in * spp_cm,
"image_render_interpolate_icc");
/* Set up the buffer descriptors. We keep the bytes the same */
gsicc_init_buffer(&input_buff_desc, spp_decode, num_bytes_decode,
@@ -2183,6 +2184,9 @@ image_render_interpolate_icc(gx_image_enum * penum, const byte * buffer,
p_cm_buff = (byte *) gs_alloc_bytes(pgs->memory,
sizeof(unsigned short) * width * spp_cm,
"image_render_interpolate_icc");
+ if (!p_cm_buff) {
+ return gs_error_VMerror;
+ }
/* Set up the buffer descriptors. */
gsicc_init_buffer(&input_buff_desc, spp_decode, 2,
false, false, false, 0, width * spp_decode,
@@ -2645,7 +2649,7 @@ image_render_interpolate_landscape_icc(gx_image_enum * penum,
/* Get the buffers set up. */
p_cm_buff =
(byte *) gs_alloc_bytes(pgs->memory,
- num_bytes_decode * width_in * spp_cm,
+ (size_t)num_bytes_decode * width_in * spp_cm,
"image_render_interpolate_icc");
/* Set up the buffer descriptors. We keep the bytes the same */
gsicc_init_buffer(&input_buff_desc, spp_decode, num_bytes_decode,
diff --git a/base/gxline.h b/base/gxline.h
index 6c6a7be2..1571e585 100644
--- a/base/gxline.h
+++ b/base/gxline.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxlum.h b/base/gxlum.h
index 9b9669ea..38f3940d 100644
--- a/base/gxlum.h
+++ b/base/gxlum.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxmatrix.h b/base/gxmatrix.h
index 5dd92cbe..3a987694 100644
--- a/base/gxmatrix.h
+++ b/base/gxmatrix.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxmclip.c b/base/gxmclip.c
index dcefa823..7e991416 100644
--- a/base/gxmclip.c
+++ b/base/gxmclip.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxmclip.h b/base/gxmclip.h
index 27b778bb..926a72e3 100644
--- a/base/gxmclip.h
+++ b/base/gxmclip.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxobj.h b/base/gxobj.h
index 6505f825..376bab4f 100644
--- a/base/gxobj.h
+++ b/base/gxobj.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxoprect.c b/base/gxoprect.c
index 14562363..b04d9032 100644
--- a/base/gxoprect.c
+++ b/base/gxoprect.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxoprect.h b/base/gxoprect.h
index e7dd4c51..6a8d77df 100644
--- a/base/gxoprect.h
+++ b/base/gxoprect.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxp1fill.c b/base/gxp1fill.c
index 61eae3fc..80180972 100644
--- a/base/gxp1fill.c
+++ b/base/gxp1fill.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxp1impl.h b/base/gxp1impl.h
index 07b3714a..303319b4 100644
--- a/base/gxp1impl.h
+++ b/base/gxp1impl.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxpaint.c b/base/gxpaint.c
index 19e56b43..f570334e 100644
--- a/base/gxpaint.c
+++ b/base/gxpaint.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxpaint.h b/base/gxpaint.h
index 558e3978..2dee3a66 100644
--- a/base/gxpaint.h
+++ b/base/gxpaint.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxpath.c b/base/gxpath.c
index 7b2e6d34..ffdea761 100644
--- a/base/gxpath.c
+++ b/base/gxpath.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -137,8 +137,8 @@ gx_path_init_contained_shared(gx_path * ppath, const gx_path * shared,
{
if (shared) {
if (shared->segments == &shared->local_segments) {
- lprintf1("Attempt to share (local) segments of path 0x%lx!\n",
- (ulong) shared);
+ lprintf1("Attempt to share (local) segments of path "PRI_INTPTR"!\n",
+ (intptr_t)shared);
return_error(gs_error_Fatal);
}
*ppath = *shared;
@@ -172,8 +172,8 @@ gx_path_alloc_shared(const gx_path * shared, gs_memory_t * mem,
ppath->procs = &default_path_procs;
if (shared) {
if (shared->segments == &shared->local_segments) {
- lprintf1("Attempt to share (local) segments of path 0x%lx!\n",
- (ulong) shared);
+ lprintf1("Attempt to share (local) segments of path "PRI_INTPTR"!\n",
+ (intptr_t)shared);
gs_free_object(mem, ppath, cname);
return 0;
}
@@ -203,8 +203,8 @@ gx_path_init_local_shared(gx_path * ppath, const gx_path * shared,
{
if (shared) {
if (shared->segments == &shared->local_segments) {
- lprintf1("Attempt to share (local) segments of path 0x%lx!\n",
- (ulong) shared);
+ lprintf1("Attempt to share (local) segments of path "PRI_INTPTR"!\n",
+ (intptr_t)shared);
return_error(gs_error_Fatal);
}
*ppath = *shared;
@@ -323,6 +323,7 @@ gx_path_assign_preserve(gx_path * ppto, gx_path * ppfrom)
int
gx_path_assign_free(gx_path * ppto, gx_path * ppfrom)
{
+ int code = 0;
/*
* Detect the special case where both paths have non-shared local
* segments, since we can avoid allocating new segments in this case.
@@ -349,13 +350,10 @@ gx_path_assign_free(gx_path * ppto, gx_path * ppfrom)
#undef tosegs
} else {
/* In all other cases, just do assign + free. */
- int code = gx_path_assign_preserve(ppto, ppfrom);
-
- if (code < 0)
- return code;
+ code = gx_path_assign_preserve(ppto, ppfrom);
}
gx_path_free(ppfrom, "gx_path_assign_free");
- return 0;
+ return code;
}
/*
@@ -991,7 +989,7 @@ path_alloc_copy(gx_path * ppath)
void
gx_dump_path(const gx_path * ppath, const char *tag)
{
- dmlprintf2(ppath->memory, "[P]Path 0x%lx %s:\n", (ulong) ppath, tag);
+ dmlprintf2(ppath->memory, "[P]Path "PRI_INTPTR" %s:\n", (intptr_t)ppath, tag);
gx_path_print(ppath);
}
@@ -1006,15 +1004,15 @@ gx_path_print(const gx_path * ppath)
ppath->state_flags, ppath->subpath_count, ppath->curve_count,
fixed2float(ppath->position.x),
fixed2float(ppath->position.y));
- dmlprintf5(ppath->memory," %% box=(%f,%f),(%f,%f) last=0x%lx\n",
+ dmlprintf5(ppath->memory," %% box=(%f,%f),(%f,%f) last="PRI_INTPTR"\n",
fixed2float(ppath->bbox.p.x), fixed2float(ppath->bbox.p.y),
fixed2float(ppath->bbox.q.x), fixed2float(ppath->bbox.q.y),
- (ulong) ppath->box_last);
+ (intptr_t)ppath->box_last);
dmlprintf4(ppath->memory,
- " %% segments=0x%lx (refct=%ld, first=0x%lx, current=0x%lx)\n",
- (ulong) ppath->segments, (long)ppath->segments->rc.ref_count,
- (ulong) ppath->segments->contents.subpath_first,
- (ulong) ppath->segments->contents.subpath_current);
+ " %% segments="PRI_INTPTR" (refct=%ld, first="PRI_INTPTR", current="PRI_INTPTR")\n",
+ (intptr_t)ppath->segments, (long)ppath->segments->rc.ref_count,
+ (intptr_t)ppath->segments->contents.subpath_first,
+ (intptr_t)ppath->segments->contents.subpath_current);
while (pseg) {
dmlputs(ppath->memory,"");
gx_print_segment(ppath->memory, pseg);
@@ -1028,14 +1026,14 @@ gx_print_segment(const gs_memory_t *mem, const segment * pseg)
double py = fixed2float(pseg->pt.y);
char out[80];
- gs_sprintf(out, "0x%lx<0x%lx,0x%lx>:%u",
- (ulong) pseg, (ulong) pseg->prev, (ulong) pseg->next, pseg->notes);
+ gs_sprintf(out, PRI_INTPTR "<"PRI_INTPTR","PRI_INTPTR">:%u",
+ (intptr_t)pseg, (intptr_t)pseg->prev, (intptr_t)pseg->next, pseg->notes);
switch (pseg->type) {
case s_start:{
const subpath *const psub = (const subpath *)pseg;
- dmprintf5(mem, " %1.4f %1.4f moveto\t%% %s #curves=%d last=0x%lx\n",
- px, py, out, psub->curve_count, (ulong) psub->last);
+ dmprintf5(mem, " %1.4f %1.4f moveto\t%% %s #curves=%d last="PRI_INTPTR"\n",
+ px, py, out, psub->curve_count, (intptr_t)psub->last);
break;
}
case s_curve:{
@@ -1066,13 +1064,13 @@ gx_print_segment(const gs_memory_t *mem, const segment * pseg)
const line_close_segment *const plc =
(const line_close_segment *)pseg;
- dmprintf4(mem, " closepath\t%% %s %1.4f %1.4f 0x%lx\n",
- out, px, py, (ulong) (plc->sub));
+ dmprintf4(mem, " closepath\t%% %s %1.4f %1.4f "PRI_INTPTR"\n",
+ out, px, py, (intptr_t)(plc->sub));
break;
}
default:
- dmprintf4(mem, " %1.4f %1.4f <type 0x%x>\t%% %s\n",
- px, py, pseg->type, out);
+ dmprintf4(mem, " %1.4f %1.4f <type "PRI_INTPTR">\t%% %s\n",
+ px, py, (intptr_t)pseg->type, out);
}
}
diff --git a/base/gxpath.h b/base/gxpath.h
index 3c8d4124..01a04240 100644
--- a/base/gxpath.h
+++ b/base/gxpath.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxpath2.c b/base/gxpath2.c
index ed795ca5..d1bbe236 100644
--- a/base/gxpath2.c
+++ b/base/gxpath2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxpcache.h b/base/gxpcache.h
index e619e3ef..8b37771e 100644
--- a/base/gxpcache.h
+++ b/base/gxpcache.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -35,8 +35,8 @@ struct gx_pattern_cache_s {
uint num_tiles;
uint tiles_used;
uint next; /* round-robin index */
- ulong bits_used;
- ulong max_bits;
+ size_t bits_used;
+ size_t max_bits;
void (*free_all) (gx_pattern_cache *);
};
diff --git a/base/gxpcmap.c b/base/gxpcmap.c
index ebd1de22..356ec0f9 100644
--- a/base/gxpcmap.c
+++ b/base/gxpcmap.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -216,27 +216,25 @@ static dev_proc_destroy_buf_device(dummy_destroy_buf_device)
/* Attempt to determine the size of a pattern (the approximate amount that will */
/* be needed in the pattern cache). If we end up using the clist, this is only */
/* a guess -- we use the tile size which will _probably_ be too large. */
-static int
+static size_t
gx_pattern_size_estimate(gs_pattern1_instance_t *pinst, bool has_tags)
{
gx_device *tdev = pinst->saved->device;
int depth = (pinst->templat.PaintType == 2 ? 1 : tdev->color_info.depth);
- int64_t raster;
- int64_t size;
+ size_t raster;
+ size_t size;
if (pinst->size.x == 0 || pinst->size.y == 0)
return 0;
if (pinst->templat.uses_transparency) {
/* if the device has tags, add in an extra tag byte for the pdf14 compositor */
- raster = ((int64_t)pinst->size.x * ((depth/8) + 1 + (has_tags ? 1 : 0)));
+ raster = ((size_t)pinst->size.x * ((depth/8) + 1 + (has_tags ? 1 : 0)));
} else {
- raster = ((int64_t)pinst->size.x * depth + 7) / 8;
+ raster = ((size_t)pinst->size.x * depth + 7) / 8;
}
- size = raster > max_int / pinst->size.y ? (max_int & ~0xFFFF) : raster * pinst->size.y;
- if (size > (int64_t)max_int)
- size = (max_int & ~0xFFFF);
- return (int)size;
+ size = raster > max_size_t / pinst->size.y ? (max_size_t - 0xFFFF) : raster * pinst->size.y;
+ return size;
}
static void gx_pattern_accum_finalize_cw(gx_device * dev)
@@ -262,10 +260,10 @@ gx_pattern_accum_alloc(gs_memory_t * mem, gs_memory_t * storage_memory,
{
gx_device *tdev = pinst->saved->device;
bool has_tags = device_encodes_tags(tdev);
- int size = gx_pattern_size_estimate(pinst, has_tags);
+ size_t size = gx_pattern_size_estimate(pinst, has_tags);
gx_device_forward *fdev;
int force_no_clist = 0;
- int max_pattern_bitmap = tdev->MaxPatternBitmap == 0 ? MaxPatternBitmap_DEFAULT :
+ size_t max_pattern_bitmap = tdev->MaxPatternBitmap == 0 ? MaxPatternBitmap_DEFAULT :
tdev->MaxPatternBitmap;
pinst->is_planar = tdev->is_planar;
@@ -311,7 +309,7 @@ gx_pattern_accum_alloc(gs_memory_t * mem, gs_memory_t * storage_memory,
gx_device_clist_writer *cwdev;
const int data_size = 1024*128;
gx_band_params_t band_params = { 0 };
- byte *data = gs_alloc_bytes(tdev->memory->non_gc_memory, data_size, cname);
+ byte *data = gs_alloc_bytes(mem->non_gc_memory, data_size, cname);
if (data == NULL)
return 0;
@@ -321,7 +319,7 @@ gx_pattern_accum_alloc(gs_memory_t * mem, gs_memory_t * storage_memory,
band_params.BandHeight = pinst->size.y;
band_params.BandBufferSpace = 0;
- cdev = clist_make_accum_device(tdev, "pattern-clist", data, data_size,
+ cdev = clist_make_accum_device(mem, tdev, "pattern-clist", data, data_size,
&buf_procs, &band_params, true, /* use_memory_clist */
pinst->templat.uses_transparency, pinst);
if (cdev == 0) {
@@ -431,7 +429,7 @@ pattern_accum_open(gx_device * dev)
code = (*dev_proc(mask, open_device)) ((gx_device *) mask);
if (code >= 0) {
mask_open = true;
- memset(mask->base, 0, mask->raster * mask->height);
+ memset(mask->base, 0, (size_t)mask->raster * mask->height);
}
}
@@ -727,7 +725,10 @@ blank_unmasked_bits(gx_device * mask,
ptr += raster;
}
} else {
- if (depth/num_comps != 8)
+ /* Planar, only handle 8 or 16 bits */
+ int bytes_per_component = (depth/num_comps) >> 3;
+
+ if (depth/num_comps != 8 && depth/num_comps != 16)
return_error(gs_error_rangecheck);
for (y = 0; y < h; y++)
{
@@ -746,8 +747,10 @@ blank_unmasked_bits(gx_device * mask,
int xx = x+x0;
if (((mine[xx>>3]>>(x&7)) & 1) == 0) {
*ptr++ = blank;
+ if (bytes_per_component > 1)
+ *ptr++ = blank;
} else {
- ptr++;
+ ptr += bytes_per_component;
}
}
}
@@ -950,7 +953,7 @@ gx_pattern_cache_free_entry(gx_pattern_cache * pcache, gx_color_tile * ctile)
if (ctile->ttrans != NULL) {
if_debug2m('v', mem,
- "[v*] Freeing trans pattern from cache, uid = %ld id = %ld \n",
+ "[v*] Freeing trans pattern from cache, uid = %ld id = %ld\n",
ctile->uid.id, ctile->id);
if ( ctile->ttrans->pdev14 == NULL) {
/* This can happen if we came from the clist */
@@ -987,7 +990,7 @@ gx_pattern_cache_free_entry(gx_pattern_cache * pcache, gx_color_tile * ctile)
/* enough space is available (or nothing left to free). */
/* This will allow 1 oversized entry */
void
-gx_pattern_cache_ensure_space(gs_gstate * pgs, int needed)
+gx_pattern_cache_ensure_space(gs_gstate * pgs, size_t needed)
{
int code = ensure_pattern_cache(pgs);
gx_pattern_cache *pcache;
@@ -1015,7 +1018,7 @@ gx_pattern_cache_ensure_space(gs_gstate * pgs, int needed)
/* Export updating the pattern_cache bits_used and tiles_used for clist reading */
void
-gx_pattern_cache_update_used(gs_gstate *pgs, ulong used)
+gx_pattern_cache_update_used(gs_gstate *pgs, size_t used)
{
gx_pattern_cache *pcache = pgs->pattern_cache;
@@ -1040,7 +1043,6 @@ gx_pattern_cache_add_entry(gs_gstate * pgs,
gx_bitmap_id id;
gx_color_tile *ctile;
int code = ensure_pattern_cache(pgs);
- extern dev_proc_open_device(pattern_clist_open_device);
gx_device_memory *mmask = NULL;
gx_device_memory *mbits = NULL;
gx_pattern_trans_t *trans = NULL;
@@ -1107,7 +1109,7 @@ gx_pattern_cache_add_entry(gs_gstate * pgs,
used += mask_used;
}
if (trans != 0) {
- trans_used = trans->planestride*trans->n_chan;
+ trans_used = (size_t)trans->planestride*trans->n_chan;
used += trans_used;
}
} else {
@@ -1161,7 +1163,7 @@ gx_pattern_cache_add_entry(gs_gstate * pgs,
ctile->tmask.data = 0;
if (trans != 0) {
if_debug2m('v', pgs->memory,
- "[v*] Adding trans pattern to cache, uid = %ld id = %ld \n",
+ "[v*] Adding trans pattern to cache, uid = %ld id = %ld\n",
ctile->uid.id, ctile->id);
ctile->ttrans = trans;
}
diff --git a/base/gxpcolor.h b/base/gxpcolor.h
index 38cd625b..9d1856bd 100644
--- a/base/gxpcolor.h
+++ b/base/gxpcolor.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -294,12 +294,12 @@ bool gx_device_is_pattern_accum(gx_device *dev);
/* Given the size of a new pattern tile, free entries from the cache until */
/* enough space is available (or nothing left to free). */
/* This will allow 1 oversized entry */
-void gx_pattern_cache_ensure_space(gs_gstate * pgs, int needed);
+void gx_pattern_cache_ensure_space(gs_gstate * pgs, size_t needed);
-void gx_pattern_cache_update_used(gs_gstate *pgs, ulong used);
+void gx_pattern_cache_update_used(gs_gstate *pgs, size_t used);
/* Update cache tile space */
-void gx_pattern_cache_update_space(gs_gstate * pgs, int64_t used);
+void gx_pattern_cache_update_space(gs_gstate * pgs, size_t used);
/* Add an accumulated pattern to the cache. */
/* Note that this does not free any of the data in the accumulator */
diff --git a/base/gxpcopy.c b/base/gxpcopy.c
index 5d77de78..51abb19d 100644
--- a/base/gxpcopy.c
+++ b/base/gxpcopy.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxpdash.c b/base/gxpdash.c
index c4e73291..2e45b3cd 100644
--- a/base/gxpdash.c
+++ b/base/gxpdash.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxpflat.c b/base/gxpflat.c
index 06a778c8..fa90fc28 100644
--- a/base/gxpflat.c
+++ b/base/gxpflat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxrplane.h b/base/gxrplane.h
index 2b0ea604..38694e89 100644
--- a/base/gxrplane.h
+++ b/base/gxrplane.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxsample.c b/base/gxsample.c
index a7969842..519abd82 100644
--- a/base/gxsample.c
+++ b/base/gxsample.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxsample.h b/base/gxsample.h
index 23982abf..25db3174 100644
--- a/base/gxsample.h
+++ b/base/gxsample.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxsamplp.h b/base/gxsamplp.h
index c936c22b..c6f6c0ae 100644
--- a/base/gxsamplp.h
+++ b/base/gxsamplp.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxscanc.c b/base/gxscanc.c
index 1a4bb23c..7776d486 100644
--- a/base/gxscanc.c
+++ b/base/gxscanc.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxscanc.h b/base/gxscanc.h
index c46d29e7..a585ef44 100644
--- a/base/gxscanc.h
+++ b/base/gxscanc.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxshade.c b/base/gxshade.c
index 2372c85f..27413ac1 100644
--- a/base/gxshade.c
+++ b/base/gxshade.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -173,12 +173,13 @@ cs_next_packed_decoded(shade_coord_stream_t * cs, int num_bits,
int code = cs->get_value(cs, num_bits, &value);
double max_value = (double)(uint)
(num_bits == sizeof(uint) * 8 ? ~0 : ((1 << num_bits) - 1));
+ double dvalue = (double)value;
if (code < 0)
return code;
*pvalue =
- (decode == 0 ? value / max_value :
- decode[0] + value * (decode[1] - decode[0]) / max_value);
+ (decode == 0 ? dvalue / max_value :
+ decode[0] + dvalue * (decode[1] - decode[0]) / max_value);
return 0;
}
@@ -433,6 +434,33 @@ top:
if (cs_lin_test && !gx_has_transfer(pgs, dev->color_info.num_components)) {
pfs->cs_always_linear = true;
}
+
+#ifdef IGNORE_SPEC_MATCH_ADOBE_SHADINGS
+ /* Per the spec. If the source space is DeviceN or Separation and the
+ colorants are not supported (i.e. if we are using the alternate tint
+ transform) the interpolation should occur in the source space to
+ accommodate non-linear tint transform functions.
+ e.g. We had a case where the transform function
+ was an increasing staircase. Including that function in the
+ gradient smoothness calculation gave us severe quantization. AR on
+ the other hand is doing the interpolation in device color space
+ and has a smooth result for that case. So AR is not following the spec. The
+ bit below solves the issues for Type 4 and Type 5 shadings as
+ this will avoid interpolations in source space. Type 6 and Type 7 will still
+ have interpolations in the source space even if pfs->cs_always_linear == true.
+ So the approach below does not solve those issues. To do that
+ without changing the shading code, we could make a linear
+ approximation to the alternate tint transform, which would
+ ensure smoothness like what AR provides.
+ */
+ if ((gs_color_space_get_index(pcs) == gs_color_space_index_DeviceN ||
+ gs_color_space_get_index(pcs) == gs_color_space_index_Separation) &&
+ using_alt_color_space((gs_gstate*)pgs) && (psh->head.type == 4 ||
+ psh->head.type == 5)) {
+ pfs->cs_always_linear = true;
+ }
+#endif
+
return 0;
}
diff --git a/base/gxshade.h b/base/gxshade.h
index 90ed61a1..19a0aa38 100644
--- a/base/gxshade.h
+++ b/base/gxshade.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxshade1.c b/base/gxshade1.c
index 95dc7ee0..4b86d138 100644
--- a/base/gxshade1.c
+++ b/base/gxshade1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxshade4.c b/base/gxshade4.c
index 77fbded9..86cc1a57 100644
--- a/base/gxshade4.c
+++ b/base/gxshade4.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -196,7 +196,9 @@ gs_shading_LfGt_fill_rectangle(const gs_shading_t * psh0, const gs_rect * rect,
code = gs_note_error(gs_error_VMerror);
goto out;
}
- color_buffer = gs_alloc_bytes(pgs->memory, pfs.color_stack_step * per_row, "gs_shading_LfGt_fill_rectangle");
+ color_buffer = gs_alloc_bytes(pgs->memory,
+ (size_t)pfs.color_stack_step * per_row,
+ "gs_shading_LfGt_fill_rectangle");
if (color_buffer == NULL) {
code = gs_note_error(gs_error_VMerror);
goto out;
diff --git a/base/gxshade4.h b/base/gxshade4.h
index 56e31c8a..973a43c9 100644
--- a/base/gxshade4.h
+++ b/base/gxshade4.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxshade6.c b/base/gxshade6.c
index 41ab5adc..e48bcfb4 100644
--- a/base/gxshade6.c
+++ b/base/gxshade6.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -2389,7 +2389,7 @@ fill_wedges_aux(patch_fill_state_t *pfs, int k, int ka,
pfs->inside = save_inside;
return code;
} else {
- if (INTERPATCH_PADDING && (wedge_type & interpatch_padding)) {
+ if ((INTERPATCH_PADDING != 0) && (wedge_type & interpatch_padding)) {
code = mesh_padding(pfs, &pole[0], &pole[3], c0, c1);
if (code < 0)
return code;
diff --git a/base/gxstate.h b/base/gxstate.h
index 68ed3bb3..2d67efb8 100644
--- a/base/gxstate.h
+++ b/base/gxstate.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -42,7 +42,7 @@ gs_memory_t *gs_gstate_swap_memory(gs_gstate *, gs_memory_t *);
*/
typedef void *(*gs_gstate_alloc_proc_t) (gs_memory_t * mem);
typedef int (*gs_gstate_copy_proc_t) (void *to, const void *from);
-typedef void (*gs_gstate_free_proc_t) (void *old, gs_memory_t * mem);
+typedef void (*gs_gstate_free_proc_t) (void *old, gs_memory_t * mem, gs_gstate *pgs);
typedef enum {
copy_for_gsave, /* from = current, to = new(saved) */
diff --git a/base/gxstdio.h b/base/gxstdio.h
index 8b5ccb00..0956c560 100644
--- a/base/gxstdio.h
+++ b/base/gxstdio.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxstroke.c b/base/gxstroke.c
index 52c15437..e99497b6 100644
--- a/base/gxstroke.c
+++ b/base/gxstroke.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -625,10 +625,10 @@ gx_stroke_path_only_aux(gx_path * ppath, gx_path * to_path, gx_device * pdev,
Well we could use eigenvalues of the quadratic form,
but it gives same result with a bigger calculus.
*/
- double max_rr = (xx*xx + xy*xy + yx*yx + yy*yy +
- sqrt( ((xy + yx)*(xy + yx) + (xx - yy)*(xx - yy)) *
- ((xy - yx)*(xy - yx) + (xx + yy)*(xx + yy))
- )
+ double max_rr = ((double)(xx*xx + xy*xy + yx*yx + yy*yy) +
+ sqrt((double)((xy + yx)*(xy + yx) + (xx - yy)*(xx - yy)) *
+ ((xy - yx)*(xy - yx) + (xx + yy)*(xx + yy))
+ )
)/2;
always_thin = max_rr * line_width * line_width < 0.25;
@@ -1093,12 +1093,51 @@ width_is_thin(pl_ptr plp)
if ((dx = plp->vector.x) == 0)
return any_abs(wx) < fixed_half;
- /*
- * If both horizontal and vertical widths are less than
- * 0.5, the line is thin.
+ /* For the longest time, we used to have a test here that
+ * attempted to trivially accept diagonal lines as being
+ * thin based on the components of the perpendicular
+ * width vector in device space as both being less than 0.5.
+ * Bug 702196 showed some examples where this was clearly
+ * wrong.
+ *
+ * The cause for this bug was that the 0.5 figure was wrong.
+ * For the point to be less than 1/2 a pixel perpendicular
+ * distant from the line, we'd need x^2 + y^2 < .5^2.
+ * For a 45 degree line, that'd be 2(x^2) < 1/4 = x^2 < 1/8
+ * or x < sqr(1/8). 45 degree line is the "worst case", so
+ * if both horizontal and vertical widths are less than
+ * sqr(1/8), the line is thin. sqr(1/8) = 0.35355339059.
+ * So, we should be using sqr(1/8) rather than 0.5.
+ *
+ * Fixing this did indeed produce many many progressions,
+ * but left just the odd file still showing problems.
+ *
+ * Further investigations show that those cases were due to
+ * the use of "non-uniform" scaling matrices, for example
+ * (83 0 0 51 0 0). With such matrices, it's possible for
+ * nearly horizontal lines to be thin, but nearly vertical
+ * ones to be thick (or vice versa). Having the style of
+ * line "pop" between thick and thin in a single stroke
+ * looks very noticeable.
+ *
+ * We could change the trivial optimisation below to only
+ * apply in the 'uniform' case, but that would never actually
+ * trigger (as tested on the cluster), because all such
+ * cases are caught by the "always_thin" condition in the
+ * caller.
+ *
+ * Just removing the trivial test and leaving the 'complicated'
+ * test below us would leave us vulnerable to "popping",
+ * so we disable both. In practice this makes no difference
+ * to the number of tests showing diffs in the cluster.
*/
- if (any_abs(wx) < fixed_half && any_abs(wy) < fixed_half)
- return true;
+#if 0 /* DISABLED TEST, see above */
+ {
+ /* thin_threshold = fixed sqr(1/8) - see above. */
+ const fixed thin_threshold = float2fixed(0.35355339059f);
+ if (any_abs(wx) < thin_threshold && any_abs(wy) < thin_threshold)
+ return true;
+ }
/*
* We have to do this the hard way, by actually computing the
@@ -1116,6 +1155,9 @@ width_is_thin(pl_ptr plp)
/* so we don't need to do any de-scaling for the test. */
return fabs(num) < denom * 0.5;
}
+#else
+ return false;
+#endif
}
/* Adjust the endpoints and width of a stroke segment along a specified axis */
@@ -1640,6 +1682,162 @@ wide_underjoin(pl_ptr plp, pl_ptr nplp)
}
#endif
+static int
+check_miter(const gx_line_params * pgs_lp, pl_ptr plp, pl_ptr nplp,
+ const gs_matrix * pmat, p_ptr outp, p_ptr np, p_ptr mpt,
+ bool ccw0)
+{
+ /*
+ * Check whether a miter join is appropriate.
+ * Let a, b be the angles of the two lines.
+ * We check tan(a-b) against the miter_check
+ * by using the following formula:
+ * If tan(a)=u1/v1 and tan(b)=u2/v2, then
+ * tan(a-b) = (u1*v2 - u2*v1) / (u1*u2 + v1*v2).
+ *
+ * We can do all the computations unscaled,
+ * because we're only concerned with ratios.
+ * However, if we have a non-uniform coordinate
+ * system (indicated by pmat != 0), we must do the
+ * computations in user space.
+ */
+ float check;
+ double u1, v1, u2, v2;
+ double num, denom;
+ int code;
+
+ /*
+ * Don't bother with the miter check if the two
+ * points to be joined are very close together,
+ * namely, in the same square half-pixel.
+ */
+ if (fixed2long(outp->x << 1) == fixed2long(np->x << 1) &&
+ fixed2long(outp->y << 1) == fixed2long(np->y << 1))
+ return 1;
+
+ check = pgs_lp->miter_check;
+ u1 = plp->vector.y, v1 = plp->vector.x;
+ u2 = -nplp->vector.y, v2 = -nplp->vector.x;
+
+ if (pmat) {
+ gs_point pt;
+
+ code = gs_distance_transform_inverse(v1, u1, pmat, &pt);
+ if (code < 0)
+ return code;
+ v1 = pt.x, u1 = pt.y;
+ code = gs_distance_transform_inverse(v2, u2, pmat, &pt);
+ if (code < 0)
+ return code;
+ v2 = pt.x, u2 = pt.y;
+ /*
+ * We need to recompute ccw according to the
+ * relative positions of the lines in user space.
+ * We repeat the computation described above,
+ * using the cdelta values instead of the widths.
+ * Because the definition of ccw above is inverted
+ * from the intuitive one (for historical reasons),
+ * we actually have to do the test backwards.
+ */
+ ccw0 = v1 * u2 < v2 * u1;
+#if defined(DEBUG) && !defined(GS_THREADSAFE)
+ {
+ double a1 = atan2(u1, v1), a2 = atan2(u2, v2), dif = a1 - a2;
+
+ if (dif < 0)
+ dif += 2 * M_PI;
+ else if (dif >= 2 * M_PI)
+ dif -= 2 * M_PI;
+ if (dif != 0 && (dif < M_PI) != ccw0)
+ lprintf8("ccw wrong: tan(a1=%g)=%g/%g, tan(a2=%g)=%g,%g, dif=%g, ccw0=%d\n",
+ a1, u1, v1, a2, u2, v2, dif, ccw0);
+ }
+#endif
+ }
+ num = u1 * v2 - u2 * v1;
+ denom = u1 * u2 + v1 * v2;
+ /*
+ * We will want either tan(a-b) or tan(b-a)
+ * depending on the orientations of the lines.
+ * Fortunately we know the relative orientations already.
+ */
+ if (!ccw0) /* have plp - nplp, want vice versa */
+ num = -num;
+#if defined(DEBUG) && !defined(GS_THREADSAFE)
+ if (gs_debug_c('O')) {
+ dlprintf4("[o]Miter check: u1/v1=%f/%f, u2/v2=%f/%f,\n",
+ u1, v1, u2, v2);
+ dlprintf3(" num=%f, denom=%f, check=%f\n",
+ num, denom, check);
+ }
+#endif
+ /*
+ * If we define T = num / denom, then we want to use
+ * a miter join iff arctan(T) >= arctan(check).
+ * We know that both of these angles are in the 1st
+ * or 2nd quadrant, and since arctan is monotonic
+ * within each quadrant, we can do the comparisons
+ * on T and check directly, taking signs into account
+ * as follows:
+ * sign(T) sign(check) atan(T) >= atan(check)
+ * ------- ----------- ----------------------
+ * + + T >= check
+ * - + true
+ * + - false
+ * - - T >= check
+ */
+ if (num == 0 && denom == 0)
+ return_error(gs_error_unregistered); /* Must not happen. */
+ if (denom < 0)
+ num = -num, denom = -denom;
+ /* Now denom >= 0, so sign(num) = sign(T). */
+ if (check > 0 ?
+ (num < 0 || num >= denom * check) :
+ (num < 0 && num >= denom * check)
+ ) {
+ /* OK to use a miter join. */
+ gs_fixed_point dirn1, dirn2;
+
+ dirn1.x = plp->e.cdelta.x;
+ dirn1.y = plp->e.cdelta.y;
+ /* If this direction is small enough that we might have
+ * underflowed and the vector record is suitable for us
+ * to use to calculate a better one, then do so. */
+ if ((abs(dirn1.x) + abs(dirn1.y) < 16) &&
+ ((plp->vector.x != 0) || (plp->vector.y != 0)))
+ {
+ float scale = 65536.0;
+ if (abs(plp->vector.x) > abs(plp->vector.y))
+ scale /= abs(plp->vector.x);
+ else
+ scale /= abs(plp->vector.y);
+ dirn1.x = (fixed)(plp->vector.x*scale);
+ dirn1.y = (fixed)(plp->vector.y*scale);
+ }
+ dirn2.x = nplp->o.cdelta.x;
+ dirn2.y = nplp->o.cdelta.y;
+ /* If this direction is small enough that we might have
+ * underflowed and the vector record is suitable for us
+ * to use to calculate a better one, then do so. */
+ if ((abs(dirn2.x) + abs(dirn2.y) < 16) &&
+ ((nplp->vector.x != 0) || (nplp->vector.y != 0)))
+ {
+ float scale = 65536.0;
+ if (abs(nplp->vector.x) > abs(nplp->vector.y))
+ scale /= abs(nplp->vector.x);
+ else
+ scale /= abs(nplp->vector.y);
+ dirn2.x = (fixed)(-nplp->vector.x*scale);
+ dirn2.y = (fixed)(-nplp->vector.y*scale);
+ }
+ if_debug0('O', " ... passes.\n");
+ /* Compute the intersection of the extended edge lines. */
+ if (line_intersect(outp, &dirn1, np, &dirn2, mpt) == 0)
+ return 0;
+ }
+ return 1;
+}
+
/* Add a segment to the path.
* This works by crafting 2 paths, one for each edge, that will later be
* merged together. */
@@ -1660,6 +1858,14 @@ stroke_add_fast(gx_path * ppath, gx_path * rpath, bool ensure_closed, int first,
bool moveto_first = false;
bool rmoveto_first = false;
gs_line_cap start_cap, end_cap;
+ const gs_matrix *pmat = (uniform ? (const gs_matrix *)NULL : &ctm_only(pgs));
+ enum {
+ joinsense_cap = 0,
+ joinsense_cw = 1,
+ joinsense_ccw = 2,
+ joinsense_over = 4,
+ joinsense_under = 8,
+ } joinsense = joinsense_cap;
if (plp->thin) {
/* We didn't set up the endpoint parameters before, */
@@ -1702,6 +1908,100 @@ stroke_add_fast(gx_path * ppath, gx_path * rpath, bool ensure_closed, int first,
ASSIGN_POINT(&rpoints[nrpoints], plp->e.ce);
npoints++;
nrpoints++;
+
+ if (nplp != NULL && !nplp->thin) {
+ /* We need to do a join. What sense is it it? */
+ double l, r;
+
+ l = (double)(plp->width.x) /* x1 */ * (nplp->width.y) /* y2 */;
+ r = (double)(nplp->width.x) /* x2 */ * (plp->width.y) /* y1 */;
+
+ if ((l == r) && (join == gs_join_round))
+ joinsense = joinsense_cap;
+ else if ((l > r) ^ reflected)
+ joinsense = joinsense_ccw | joinsense_over | joinsense_under;
+ else
+ joinsense = joinsense_cw | joinsense_over | joinsense_under;
+
+ if (joinsense != joinsense_cap && join == gs_join_miter) {
+ /* We need to do a miter line join. Miters are 'special'
+ * in that we'd like to do them by adjusting the existing
+ * points, rather than adding new ones. */
+ gs_fixed_point mpt;
+ if (joinsense & joinsense_ccw) {
+ /* Underjoin (in reverse path):
+ * A = plp->o.co, B = plp->e.ce, C = nplp->o.co, D = nplp->e.ce */
+ double xa = plp->o.co.x, ya = plp->o.co.y;
+ double xb = plp->e.ce.x, yb = plp->e.ce.y;
+ double xc = nplp->o.co.x, yc = nplp->o.co.y;
+ double xd = nplp->e.ce.x, yd = nplp->e.ce.y;
+ double xab = xa-xb, xac = xa-xc, xcd = xc-xd;
+ double yab = ya-yb, yac = ya-yc, ycd = yc-yd;
+ double t_num = xac * ycd - yac * xcd;
+ double t_den = xab * ycd - yab * xcd;
+ code = check_miter(pgs_lp, plp, nplp, pmat, &plp->e.co,
+ &nplp->o.ce, &mpt, true);
+ if (code < 0)
+ return code;
+ if (code == 0) {
+ points[npoints-1].x = mpt.x;
+ points[npoints-1].y = mpt.y;
+ if (ensure_closed) {
+ points[npoints].x = nplp->o.ce.x;
+ points[npoints].y = nplp->o.ce.y;
+ npoints++;
+ }
+ joinsense &= ~joinsense_over;
+ } else
+ join = gs_join_bevel;
+ if (t_den != 0 &&
+ ((t_num >= 0 && t_num <= t_den) ||
+ (t_num <= 0 && t_num >= t_den))) {
+ double x = xa - xab * t_num / t_den;
+ double y = ya - yab * t_num / t_den;
+ rpoints[nrpoints-1].x = (fixed)x;
+ rpoints[nrpoints-1].y = (fixed)y;
+ joinsense &= ~joinsense_under;
+ }
+ } else {
+ /* Underjoin (in fwd path):
+ * A = plp->o.ce, B = plp->e.co, C = nplp->o.ce, D = nplp->e.co */
+ double xa = plp->o.ce.x, ya = plp->o.ce.y;
+ double xb = plp->e.co.x, yb = plp->e.co.y;
+ double xc = nplp->o.ce.x, yc = nplp->o.ce.y;
+ double xd = nplp->e.co.x, yd = nplp->e.co.y;
+ double xab = xa-xb, xac = xa-xc, xcd = xc-xd;
+ double yab = ya-yb, yac = ya-yc, ycd = yc-yd;
+ double t_num = xac * ycd - yac * xcd;
+ double t_den = xab * ycd - yab * xcd;
+ code = check_miter(pgs_lp, plp, nplp, pmat, &plp->e.ce,
+ &nplp->o.co, &mpt, false);
+ if (code < 0)
+ return code;
+ if (code == 0) {
+ rpoints[nrpoints-1].x = mpt.x;
+ rpoints[nrpoints-1].y = mpt.y;
+ if (ensure_closed) {
+ rpoints[nrpoints].x = nplp->o.co.x;
+ rpoints[nrpoints].y = nplp->o.co.y;
+ nrpoints++;
+ }
+ joinsense &= ~joinsense_over;
+ } else
+ join = gs_join_bevel;
+ if (t_den != 0 &&
+ ((t_num >= 0 && t_num <= t_den) ||
+ (t_num <= 0 && t_num >= t_den))) {
+ double x = xa - xab * t_num / t_den;
+ double y = ya - yab * t_num / t_den;
+ points[npoints-1].x = (fixed)x;
+ points[npoints-1].y = (fixed)y;
+ joinsense &= ~joinsense_under;
+ }
+ }
+ }
+ }
+
if ((code = add_points(ppath, points, npoints, moveto_first)) < 0)
return code;
if ((code = add_points(rpath, rpoints, nrpoints, rmoveto_first)) < 0)
@@ -1719,28 +2019,22 @@ stroke_add_fast(gx_path * ppath, gx_path * rpath, bool ensure_closed, int first,
} else if (nplp->thin) { /* no join */
code = cap_points(gs_cap_butt, &plp->e, points);
npoints = code;
- } else {
- /* We need to do a join */
- double l, r;
-
- l = (double)(plp->width.x) /* x1 */ * (nplp->width.y) /* y2 */;
- r = (double)(nplp->width.x) /* x2 */ * (plp->width.y) /* y1 */;
-
- if ((l == r) && (join == gs_join_round)) {
- /* Do a cap */
- code = add_pie_cap(ppath, &plp->e);
- if (code >= 0) {
- /* If the next line is in the opposite direction as the current one
- * we want to leave the point on the same side as it was
- * originally. This is required for paths that come to a stop
- * and then reverse themselves, but may produce more complexity
- * than we'd really like at the ends of smooth beziers. */
- if ((double)(plp->width.x) * nplp->width.x + (double)plp->width.y * nplp->width.y >= 0)
- code = gx_path_add_line(ppath, plp->e.co.x, plp->e.co.y);
- }
- } else if ((l > r) ^ reflected) {
- /* CCW rotation. Join in the forward path. "Underjoin" in the
- * reverse path. */
+ } else if (joinsense == joinsense_cap) {
+ /* Do a cap */
+ code = add_pie_cap(ppath, &plp->e);
+ if (code >= 0) {
+ /* If the next line is in the opposite direction as the current one
+ * we want to leave the point on the same side as it was
+ * originally. This is required for paths that come to a stop
+ * and then reverse themselves, but may produce more complexity
+ * than we'd really like at the ends of smooth beziers. */
+ if ((double)(plp->width.x) * nplp->width.x + (double)plp->width.y * nplp->width.y >= 0)
+ code = gx_path_add_line(ppath, plp->e.co.x, plp->e.co.y);
+ }
+ } else if (joinsense & joinsense_ccw) {
+ /* CCW rotation. Join in the forward path. "Underjoin" in the
+ * reverse path. */
+ if (joinsense & joinsense_over) {
/* RJW: Ideally we should include the "|| flags" clause in
* the following condition. This forces all joins between
* line segments generated from arcs to be round. This would
@@ -1750,14 +2044,13 @@ stroke_add_fast(gx_path * ppath, gx_path * rpath, bool ensure_closed, int first,
code = add_pie_join_fast_ccw(ppath, plp, nplp, reflected);
} else { /* non-round join */
code = line_join_points_fast_ccw(pgs_lp, plp, nplp,
- points,
- (uniform ? (gs_matrix *) 0 :
- &ctm_only(pgs)),
- join);
+ points, pmat, join);
npoints = code;
}
if (code < 0)
return code;
+ }
+ if (joinsense & joinsense_under) {
/* The underjoin */
#ifndef SLOWER_BUT_MORE_ACCURATE_STROKING
if ((flags & (nf_some_from_arc | nf_prev_some_from_arc)) == 0) {
@@ -1799,9 +2092,11 @@ stroke_add_fast(gx_path * ppath, gx_path * rpath, bool ensure_closed, int first,
}
#endif
code = gx_path_add_line(rpath, nplp->o.co.x, nplp->o.co.y);
- } else {
- /* CW rotation. Join in the reverse path. "Underjoin" in the
- * forward path. */
+ }
+ } else if (joinsense & joinsense) {
+ /* CW rotation. Join in the reverse path. "Underjoin" in the
+ * forward path. */
+ if (joinsense & joinsense_over) {
/* RJW: Ideally we should include the "|| flags" clause in
* the following condition. This forces all joins between
* line segments generated from arcs to be round. This would
@@ -1811,17 +2106,17 @@ stroke_add_fast(gx_path * ppath, gx_path * rpath, bool ensure_closed, int first,
code = add_pie_join_fast_cw(rpath, plp, nplp, reflected);
} else { /* non-round join */
code = line_join_points_fast_cw(pgs_lp, plp, nplp,
- rpoints,
- (uniform ? (gs_matrix *) 0 :
- &ctm_only(pgs)),
- join);
+ rpoints, pmat, join);
nrpoints = code;
}
if (code < 0)
return code;
+ }
+ if (joinsense & joinsense_under) {
/* The underjoin */
#ifndef SLOWER_BUT_MORE_ACCURATE_STROKING
- if ((flags & (nf_some_from_arc | nf_prev_some_from_arc)) == 0) {
+ if ((flags & (nf_some_from_arc | nf_prev_some_from_arc)) == 0 &&
+ join != gs_join_miter) {
/* RJW: This is an approximation. We ought to draw a line
* back to nplp->o.p, and then independently fill any exposed
* region under the curve with a round join. Sadly, that's
@@ -2047,150 +2342,6 @@ add_points(gx_path * ppath, const gs_fixed_point * points, int npoints,
/* ---------------- Join computation ---------------- */
-static int
-check_miter(const gx_line_params * pgs_lp, pl_ptr plp, pl_ptr nplp,
- const gs_matrix * pmat, p_ptr outp, p_ptr np, p_ptr mpt,
- bool ccw0)
-{
- /*
- * Check whether a miter join is appropriate.
- * Let a, b be the angles of the two lines.
- * We check tan(a-b) against the miter_check
- * by using the following formula:
- * If tan(a)=u1/v1 and tan(b)=u2/v2, then
- * tan(a-b) = (u1*v2 - u2*v1) / (u1*u2 + v1*v2).
- *
- * We can do all the computations unscaled,
- * because we're only concerned with ratios.
- * However, if we have a non-uniform coordinate
- * system (indicated by pmat != 0), we must do the
- * computations in user space.
- */
- float check = pgs_lp->miter_check;
- double u1 = plp->vector.y, v1 = plp->vector.x;
- double u2 = -nplp->vector.y, v2 = -nplp->vector.x;
- double num, denom;
- int code;
-
- if (pmat) {
- gs_point pt;
-
- code = gs_distance_transform_inverse(v1, u1, pmat, &pt);
- if (code < 0)
- return code;
- v1 = pt.x, u1 = pt.y;
- code = gs_distance_transform_inverse(v2, u2, pmat, &pt);
- if (code < 0)
- return code;
- v2 = pt.x, u2 = pt.y;
- /*
- * We need to recompute ccw according to the
- * relative positions of the lines in user space.
- * We repeat the computation described above,
- * using the cdelta values instead of the widths.
- * Because the definition of ccw above is inverted
- * from the intuitive one (for historical reasons),
- * we actually have to do the test backwards.
- */
- ccw0 = v1 * u2 < v2 * u1;
-#if defined(DEBUG) && !defined(GS_THREADSAFE)
- {
- double a1 = atan2(u1, v1), a2 = atan2(u2, v2), dif = a1 - a2;
-
- if (dif < 0)
- dif += 2 * M_PI;
- else if (dif >= 2 * M_PI)
- dif -= 2 * M_PI;
- if (dif != 0 && (dif < M_PI) != ccw0)
- lprintf8("ccw wrong: tan(a1=%g)=%g/%g, tan(a2=%g)=%g,%g, dif=%g, ccw0=%d\n",
- a1, u1, v1, a2, u2, v2, dif, ccw0);
- }
-#endif
- }
- num = u1 * v2 - u2 * v1;
- denom = u1 * u2 + v1 * v2;
- /*
- * We will want either tan(a-b) or tan(b-a)
- * depending on the orientations of the lines.
- * Fortunately we know the relative orientations already.
- */
- if (!ccw0) /* have plp - nplp, want vice versa */
- num = -num;
-#if defined(DEBUG) && !defined(GS_THREADSAFE)
- if (gs_debug_c('O')) {
- dlprintf4("[o]Miter check: u1/v1=%f/%f, u2/v2=%f/%f,\n",
- u1, v1, u2, v2);
- dlprintf3(" num=%f, denom=%f, check=%f\n",
- num, denom, check);
- }
-#endif
- /*
- * If we define T = num / denom, then we want to use
- * a miter join iff arctan(T) >= arctan(check).
- * We know that both of these angles are in the 1st
- * or 2nd quadrant, and since arctan is monotonic
- * within each quadrant, we can do the comparisons
- * on T and check directly, taking signs into account
- * as follows:
- * sign(T) sign(check) atan(T) >= atan(check)
- * ------- ----------- ----------------------
- * + + T >= check
- * - + true
- * + - false
- * - - T >= check
- */
- if (num == 0 && denom == 0)
- return_error(gs_error_unregistered); /* Must not happen. */
- if (denom < 0)
- num = -num, denom = -denom;
- /* Now denom >= 0, so sign(num) = sign(T). */
- if (check > 0 ?
- (num < 0 || num >= denom * check) :
- (num < 0 && num >= denom * check)
- ) {
- /* OK to use a miter join. */
- gs_fixed_point dirn1, dirn2;
-
- dirn1.x = plp->e.cdelta.x;
- dirn1.y = plp->e.cdelta.y;
- /* If this direction is small enough that we might have
- * underflowed and the vector record is suitable for us
- * to use to calculate a better one, then do so. */
- if ((abs(dirn1.x) + abs(dirn1.y) < 16) &&
- ((plp->vector.x != 0) || (plp->vector.y != 0)))
- {
- float scale = 65536.0;
- if (abs(plp->vector.x) > abs(plp->vector.y))
- scale /= abs(plp->vector.x);
- else
- scale /= abs(plp->vector.y);
- dirn1.x = (fixed)(plp->vector.x*scale);
- dirn1.y = (fixed)(plp->vector.y*scale);
- }
- dirn2.x = nplp->o.cdelta.x;
- dirn2.y = nplp->o.cdelta.y;
- /* If this direction is small enough that we might have
- * underflowed and the vector record is suitable for us
- * to use to calculate a better one, then do so. */
- if ((abs(dirn2.x) + abs(dirn2.y) < 16) &&
- ((nplp->vector.x != 0) || (nplp->vector.y != 0)))
- {
- float scale = 65536.0;
- if (abs(nplp->vector.x) > abs(nplp->vector.y))
- scale /= abs(nplp->vector.x);
- else
- scale /= abs(nplp->vector.y);
- dirn2.x = (fixed)(-nplp->vector.x*scale);
- dirn2.y = (fixed)(-nplp->vector.y*scale);
- }
- if_debug0('O', " ... passes.\n");
- /* Compute the intersection of the extended edge lines. */
- if (line_intersect(outp, &dirn1, np, &dirn2, mpt) == 0)
- return 0;
- }
- return 1;
-}
-
/* Compute the points for a bevel, miter, or triangle join. */
/* Treat no join the same as a bevel join. */
/* If pmat != 0, we must inverse-transform the distances for */
@@ -2238,6 +2389,7 @@ line_join_points(const gx_line_params * pgs_lp, pl_ptr plp, pl_ptr nplp,
bool ccw0 = ccw;
p_ptr outp, np;
int code;
+ gs_fixed_point mpt;
ccw ^= reflected;
@@ -2280,21 +2432,11 @@ line_join_points(const gx_line_params * pgs_lp, pl_ptr plp, pl_ptr nplp,
}
return 5;
}
- /*
- * Don't bother with the miter check if the two
- * points to be joined are very close together,
- * namely, in the same square half-pixel.
- */
if (join == gs_join_miter &&
- !(fixed2long(outp->x << 1) == fixed2long(np->x << 1) &&
- fixed2long(outp->y << 1) == fixed2long(np->y << 1))
- ) {
- gs_fixed_point mpt;
- code = check_miter(pgs_lp, plp, nplp, pmat, outp, np, &mpt, ccw0);
+ (code = check_miter(pgs_lp, plp, nplp, pmat, outp, np, &mpt, ccw0)) <= 0) {
if (code < 0)
return code;
- if (code == 0)
- ASSIGN_POINT(outp, mpt);
+ ASSIGN_POINT(outp, mpt);
}
return 4;
}
@@ -2324,26 +2466,6 @@ line_join_points_fast_cw(const gx_line_params * pgs_lp,
/* Set up for a Bevel join */
ASSIGN_POINT(&rjoin_points[0], nplp->o.co);
- /*
- * Don't bother with the miter check if the two
- * points to be joined are very close together,
- * namely, in the same square half-pixel.
- */
- if (join == gs_join_miter &&
- !(fixed2long(plp->e.ce.x << 1) == fixed2long(nplp->o.co.x << 1) &&
- fixed2long(plp->e.ce.y << 1) == fixed2long(nplp->o.co.y << 1))
- ) {
- gs_fixed_point mpt;
- int code = check_miter(pgs_lp, plp, nplp, pmat, &plp->e.ce,
- &nplp->o.co, &mpt, false);
- if (code < 0)
- return code;
- if (code == 0) {
- ASSIGN_POINT(&rjoin_points[0], mpt);
- ASSIGN_POINT(&rjoin_points[1], nplp->o.co);
- return 2;
- }
- }
return 1;
}
@@ -2371,26 +2493,6 @@ line_join_points_fast_ccw(const gx_line_params * pgs_lp,
/* Set up for a Bevel join */
ASSIGN_POINT(&join_points[0], nplp->o.ce);
- /*
- * Don't bother with the miter check if the two
- * points to be joined are very close together,
- * namely, in the same square half-pixel.
- */
- if (join == gs_join_miter &&
- !(fixed2long(plp->e.co.x << 1) == fixed2long(nplp->o.ce.x << 1) &&
- fixed2long(plp->e.co.y << 1) == fixed2long(nplp->o.ce.y << 1))
- ) {
- gs_fixed_point mpt;
- int code = check_miter(pgs_lp, plp, nplp, pmat, &plp->e.co,
- &nplp->o.ce, &mpt, true);
- if (code < 0)
- return code;
- if (code == 0) {
- ASSIGN_POINT(&join_points[0], mpt);
- ASSIGN_POINT(&join_points[1], nplp->o.ce);
- return 2;
- }
- }
return 1;
}
/* ---------------- Cap computations ---------------- */
diff --git a/base/gxsync.c b/base/gxsync.c
index 8bb30ef1..7f41a273 100644
--- a/base/gxsync.c
+++ b/base/gxsync.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxsync.h b/base/gxsync.h
index d3cf85e4..762fb2fe 100644
--- a/base/gxsync.h
+++ b/base/gxsync.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxtext.h b/base/gxtext.h
index 1d5fa9b9..afe0bc89 100644
--- a/base/gxtext.h
+++ b/base/gxtext.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxtmap.h b/base/gxtmap.h
index dadb10d7..994c38e5 100644
--- a/base/gxtmap.h
+++ b/base/gxtmap.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxttf.h b/base/gxttf.h
index c737f052..ab683ba9 100644
--- a/base/gxttf.h
+++ b/base/gxttf.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxttfb.c b/base/gxttfb.c
index cd47b0c3..d0a8c882 100644
--- a/base/gxttfb.c
+++ b/base/gxttfb.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxttfb.h b/base/gxttfb.h
index a7584393..487ac941 100644
--- a/base/gxttfb.h
+++ b/base/gxttfb.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxtype1.c b/base/gxtype1.c
index a383015e..3169751f 100644
--- a/base/gxtype1.c
+++ b/base/gxtype1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxtype1.h b/base/gxtype1.h
index a2122a32..6519f113 100644
--- a/base/gxtype1.h
+++ b/base/gxtype1.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gxxfont.h b/base/gxxfont.h
index 0eeb3600..b239cd27 100644
--- a/base/gxxfont.h
+++ b/base/gxxfont.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gzacpath.h b/base/gzacpath.h
index 04f62aaf..4670b478 100644
--- a/base/gzacpath.h
+++ b/base/gzacpath.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gzcpath.h b/base/gzcpath.h
index 2f48c791..da5d2758 100644
--- a/base/gzcpath.h
+++ b/base/gzcpath.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gzht.h b/base/gzht.h
index 7a581c90..1adb06d0 100644
--- a/base/gzht.h
+++ b/base/gzht.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gzline.h b/base/gzline.h
index cfd5c2f0..919b3ad6 100644
--- a/base/gzline.h
+++ b/base/gzline.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gzpath.h b/base/gzpath.h
index fa574f6d..1c78caf8 100644
--- a/base/gzpath.h
+++ b/base/gzpath.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gzspotan.c b/base/gzspotan.c
index e6264ce0..46fd35bf 100644
--- a/base/gzspotan.c
+++ b/base/gzspotan.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gzspotan.h b/base/gzspotan.h
index 1093006f..4a60b19e 100644
--- a/base/gzspotan.h
+++ b/base/gzspotan.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/gzstate.h b/base/gzstate.h
index d20e6c7b..648534c3 100644
--- a/base/gzstate.h
+++ b/base/gzstate.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/ijs.mak b/base/ijs.mak
index 4c7fcab7..557dae5b 100644
--- a/base/ijs.mak
+++ b/base/ijs.mak
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2019 Artifex Software, Inc.
+# Copyright (C) 2001-2020 Artifex Software, Inc.
# All Rights Reserved.
#
# This software is provided AS-IS with no warranty, either express or
diff --git a/base/instcopy b/base/instcopy
index 119b44bd..ef1e260d 100755
--- a/base/instcopy
+++ b/base/instcopy
@@ -1,5 +1,5 @@
#!/bin/sh
-# Copyright (C) 2001-2019 Artifex Software, Inc.
+# Copyright (C) 2001-2020 Artifex Software, Inc.
# All Rights Reserved.
#
# This software is provided AS-IS with no warranty, either express or
diff --git a/base/jbig2.mak b/base/jbig2.mak
index c3d275b9..2ec14d94 100644
--- a/base/jbig2.mak
+++ b/base/jbig2.mak
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2019 Artifex Software, Inc.
+# Copyright (C) 2001-2020 Artifex Software, Inc.
# All Rights Reserved.
#
# This software is provided AS-IS with no warranty, either express or
diff --git a/base/jerror_.h b/base/jerror_.h
index cd7b1d59..dafcf480 100644
--- a/base/jerror_.h
+++ b/base/jerror_.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/jmemcust.c b/base/jmemcust.c
index b452d83a..bdcbb7ec 100644
--- a/base/jmemcust.c
+++ b/base/jmemcust.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/jmemcust.h b/base/jmemcust.h
index e71e6b20..8d2f97d5 100644
--- a/base/jmemcust.h
+++ b/base/jmemcust.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/jpeg.mak b/base/jpeg.mak
index c7554410..c1929e63 100644
--- a/base/jpeg.mak
+++ b/base/jpeg.mak
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2019 Artifex Software, Inc.
+# Copyright (C) 2001-2020 Artifex Software, Inc.
# All Rights Reserved.
#
# This software is provided AS-IS with no warranty, either express or
@@ -67,6 +67,40 @@ jpeg.clean : jpeg.config-clean jpeg.clean-not-config-clean
### WRONG. MUST DELETE OBJ AND GEN FILES SELECTIVELY.
jpeg.clean-not-config-clean :
$(RM_) $(JOBJ)*.$(OBJ)
+ $(RM_) $(GLGEN)jcomapi.c
+ $(RM_) $(GLGEN)jutils.c
+ $(RM_) $(GLGEN)jmemmgr.c
+ $(RM_) $(GLGEN)jerror.c
+ $(RM_) $(GLGEN)jaricom.c
+ $(RM_) $(GLGEN)jcapimin.c
+ $(RM_) $(GLGEN)jcapistd.c
+ $(RM_) $(GLGEN)jcinit.c
+ $(RM_) $(GLGEN)jccoefct.c
+ $(RM_) $(GLGEN)jccolor.c
+ $(RM_) $(GLGEN)jcdctmgr.c
+ $(RM_) $(GLGEN)jchuff.c
+ $(RM_) $(GLGEN)jcmainct.c
+ $(RM_) $(GLGEN)jcmarker.c
+ $(RM_) $(GLGEN)jcmaster.c
+ $(RM_) $(GLGEN)jcparam.c
+ $(RM_) $(GLGEN)jcprepct.c
+ $(RM_) $(GLGEN)jcsample.c
+ $(RM_) $(GLGEN)jfdctint.c
+ $(RM_) $(GLGEN)jcarith.c
+ $(RM_) $(GLGEN)jdapimin.c
+ $(RM_) $(GLGEN)jdapistd.c
+ $(RM_) $(GLGEN)jdcoefct.c
+ $(RM_) $(GLGEN)jdcolor.c
+ $(RM_) $(GLGEN)jddctmgr.c
+ $(RM_) $(GLGEN)jdhuff.c
+ $(RM_) $(GLGEN)jdinput.c
+ $(RM_) $(GLGEN)jdmainct.c
+ $(RM_) $(GLGEN)jdmarker.c
+ $(RM_) $(GLGEN)jdmaster.c
+ $(RM_) $(GLGEN)jdpostct.c
+ $(RM_) $(GLGEN)jdsample.c
+ $(RM_) $(GLGEN)jidctint.c
+ $(RM_) $(GLGEN)jdarith.c
jpeg.config-clean :
$(RMN_) $(JGEN)jpeg*.dev
@@ -183,27 +217,22 @@ $(JGEN)jpegc0.dev : $(JPEG_MAK) $(ECHOGS_XE) $(jpegc0_)
$(JOBJ)jcomapi.$(OBJ) : $(JSRC)jcomapi.c $(JDEP)
$(CP_) $(JSRC)jcomapi.c $(GLGEN)jcomapi.c
$(JCC) $(JO_)jcomapi.$(OBJ) $(C_) $(GLGEN)jcomapi.c
- $(RM_) $(GLGEN)jcomapi.c
$(JOBJ)jutils.$(OBJ) : $(JSRC)jutils.c $(JDEP)
$(CP_) $(JSRC)jutils.c $(GLGEN)jutils.c
$(JCC) $(JO_)jutils.$(OBJ) $(C_) $(GLGEN)jutils.c
- $(RM_) $(GLGEN)jutils.c
$(JOBJ)jmemmgr.$(OBJ) : $(JSRC)jmemmgr.c $(JDEP)
$(CP_) $(JSRC)jmemmgr.c $(GLGEN)jmemmgr.c
$(JCC) $(JO_)jmemmgr.$(OBJ) $(C_) $(GLGEN)jmemmgr.c
- $(RM_) $(GLGEN)jmemmgr.c
$(JOBJ)jerror.$(OBJ) : $(JSRC)jerror.c $(JDEP)
$(CP_) $(JSRC)jerror.c $(GLGEN)jerror.c
$(JCC) $(JO_)jerror.$(OBJ) $(C_) $(GLGEN)jerror.c
- $(RM_) $(GLGEN)jerror.c
$(JOBJ)jaricom.$(OBJ) : $(JSRC)jaricom.c $(JDEP)
$(CP_) $(JSRC)jaricom.c $(GLGEN)jaricom.c
$(JCC) $(JO_)jaricom.$(OBJ) $(C_) $(GLGEN)jaricom.c
- $(RM_) $(GLGEN)jaricom.c
# Encoding (compression) code.
@@ -233,77 +262,62 @@ $(JGEN)jpege6.dev : $(JPEG_MAK) $(ECHOGS_XE) $(JGEN)jpegc0.dev $(jpege6) $(jpege
$(JOBJ)jcapimin.$(OBJ) : $(JSRC)jcapimin.c $(JDEP)
$(CP_) $(JSRC)jcapimin.c $(GLGEN)jcapimin.c
$(JCC) $(JO_)jcapimin.$(OBJ) $(C_) $(GLGEN)jcapimin.c
- $(RM_) $(GLGEN)jcapimin.c
$(JOBJ)jcapistd.$(OBJ) : $(JSRC)jcapistd.c $(JDEP)
$(CP_) $(JSRC)jcapistd.c $(GLGEN)jcapistd.c
$(JCC) $(JO_)jcapistd.$(OBJ) $(C_) $(GLGEN)jcapistd.c
- $(RM_) $(GLGEN)jcapistd.c
$(JOBJ)jcinit.$(OBJ) : $(JSRC)jcinit.c $(JDEP)
$(CP_) $(JSRC)jcinit.c $(GLGEN)jcinit.c
$(JCC) $(JO_)jcinit.$(OBJ) $(C_) $(GLGEN)jcinit.c
- $(RM_) $(GLGEN)jcinit.c
$(JOBJ)jccoefct.$(OBJ) : $(JSRC)jccoefct.c $(JDEP)
$(CP_) $(JSRC)jccoefct.c $(GLGEN)jccoefct.c
$(JCC) $(JO_)jccoefct.$(OBJ) $(C_) $(GLGEN)jccoefct.c
- $(RM_) $(GLGEN)jccoefct.c
$(JOBJ)jccolor.$(OBJ) : $(JSRC)jccolor.c $(JDEP)
$(CP_) $(JSRC)jccolor.c $(GLGEN)jccolor.c
$(JCC) $(JO_)jccolor.$(OBJ) $(C_) $(GLGEN)jccolor.c
- $(RM_) $(GLGEN)jccolor.c
$(JOBJ)jcdctmgr.$(OBJ) : $(JSRC)jcdctmgr.c $(JDEP)
$(CP_) $(JSRC)jcdctmgr.c $(GLGEN)jcdctmgr.c
$(JCC) $(JO_)jcdctmgr.$(OBJ) $(C_) $(GLGEN)jcdctmgr.c
- $(RM_) $(GLGEN)jcdctmgr.c
$(JOBJ)jchuff.$(OBJ) : $(JSRC)jchuff.c $(JDEP)
$(CP_) $(JSRC)jchuff.c $(GLGEN)jchuff.c
$(JCC) $(JO_)jchuff.$(OBJ) $(C_) $(GLGEN)jchuff.c
- $(RM_) $(GLGEN)jchuff.c
$(JOBJ)jcmainct.$(OBJ) : $(JSRC)jcmainct.c $(JDEP)
$(CP_) $(JSRC)jcmainct.c $(GLGEN)jcmainct.c
$(JCC) $(JO_)jcmainct.$(OBJ) $(C_) $(GLGEN)jcmainct.c
- $(RM_) $(GLGEN)jcmainct.c
$(JOBJ)jcmarker.$(OBJ) : $(JSRC)jcmarker.c $(JDEP)
$(CP_) $(JSRC)jcmarker.c $(GLGEN)jcmarker.c
$(JCC) $(JO_)jcmarker.$(OBJ) $(C_) $(GLGEN)jcmarker.c
- $(RM_) $(GLGEN)jcmarker.c
$(JOBJ)jcmaster.$(OBJ) : $(JSRC)jcmaster.c $(JDEP)
$(CP_) $(JSRC)jcmaster.c $(GLGEN)jcmaster.c
$(JCC) $(JO_)jcmaster.$(OBJ) $(C_) $(GLGEN)jcmaster.c
- $(RM_) $(GLGEN)jcmaster.c
$(JOBJ)jcparam.$(OBJ) : $(JSRC)jcparam.c $(JDEP)
$(CP_) $(JSRC)jcparam.c $(GLGEN)jcparam.c
$(JCC) $(JO_)jcparam.$(OBJ) $(C_) $(GLGEN)jcparam.c
- $(RM_) $(GLGEN)jcparam.c
$(JOBJ)jcprepct.$(OBJ) : $(JSRC)jcprepct.c $(JDEP)
$(CP_) $(JSRC)jcprepct.c $(GLGEN)jcprepct.c
$(JCC) $(JO_)jcprepct.$(OBJ) $(C_) $(GLGEN)jcprepct.c
- $(RM_) $(GLGEN)jcprepct.c
$(JOBJ)jcsample.$(OBJ) : $(JSRC)jcsample.c $(JDEP)
$(CP_) $(JSRC)jcsample.c $(GLGEN)jcsample.c
$(JCC) $(JO_)jcsample.$(OBJ) $(C_) $(GLGEN)jcsample.c
- $(RM_) $(GLGEN)jcsample.c
$(JOBJ)jfdctint.$(OBJ) : $(JSRC)jfdctint.c $(JDEP)
$(CP_) $(JSRC)jfdctint.c $(GLGEN)jfdctint.c
$(JCC) $(JO_)jfdctint.$(OBJ) $(C_) $(GLGEN)jfdctint.c
- $(RM_) $(GLGEN)jfdctint.c
$(JOBJ)jcarith.$(OBJ) : $(JSRC)jcarith.c $(JDEP)
$(CP_) $(JSRC)jcarith.c $(GLGEN)jcarith.c
$(JCC) $(JO_)jcarith.$(OBJ) $(C_) $(GLGEN)jcarith.c
- $(RM_) $(GLGEN)jcarith.c
# Decompression code
@@ -334,52 +348,42 @@ $(JGEN)jpegd6.dev : $(JPEG_MAK) $(ECHOGS_XE) $(JGEN)jpegc0.dev $(jpegd6) $(jpegd
$(JOBJ)jdapimin.$(OBJ) : $(JSRC)jdapimin.c $(JDEP)
$(CP_) $(JSRC)jdapimin.c $(GLGEN)jdapimin.c
$(JCC) $(JO_)jdapimin.$(OBJ) $(C_) $(GLGEN)jdapimin.c
- $(RM_) $(GLGEN)jdapimin.c
$(JOBJ)jdapistd.$(OBJ) : $(JSRC)jdapistd.c $(JDEP)
$(CP_) $(JSRC)jdapistd.c $(GLGEN)jdapistd.c
$(JCC) $(JO_)jdapistd.$(OBJ) $(C_) $(GLGEN)jdapistd.c
- $(RM_) $(GLGEN)jdapistd.c
$(JOBJ)jdcoefct.$(OBJ) : $(JSRC)jdcoefct.c $(JDEP)
$(CP_) $(JSRC)jdcoefct.c $(GLGEN)jdcoefct.c
$(JCC) $(JO_)jdcoefct.$(OBJ) $(C_) $(GLGEN)jdcoefct.c
- $(RM_) $(GLGEN)jdcoefct.c
$(JOBJ)jdcolor.$(OBJ) : $(JSRC)jdcolor.c $(JDEP)
$(CP_) $(JSRC)jdcolor.c $(GLGEN)jdcolor.c
$(JCC) $(JO_)jdcolor.$(OBJ) $(C_) $(GLGEN)jdcolor.c
- $(RM_) $(GLGEN)jdcolor.c
$(JOBJ)jddctmgr.$(OBJ) : $(JSRC)jddctmgr.c $(JDEP)
$(CP_) $(JSRC)jddctmgr.c $(GLGEN)jddctmgr.c
$(JCC) $(JO_)jddctmgr.$(OBJ) $(C_) $(GLGEN)jddctmgr.c
- $(RM_) $(GLGEN)jddctmgr.c
$(JOBJ)jdhuff.$(OBJ) : $(JSRC)jdhuff.c $(JDEP)
$(CP_) $(JSRC)jdhuff.c $(GLGEN)jdhuff.c
$(JCC) $(JO_)jdhuff.$(OBJ) $(C_) $(GLGEN)jdhuff.c
- $(RM_) $(GLGEN)jdhuff.c
$(JOBJ)jdinput.$(OBJ) : $(JSRC)jdinput.c $(JDEP)
$(CP_) $(JSRC)jdinput.c $(GLGEN)jdinput.c
$(JCC) $(JO_)jdinput.$(OBJ) $(C_) $(GLGEN)jdinput.c
- $(RM_) $(GLGEN)jdinput.c
$(JOBJ)jdmainct.$(OBJ) : $(JSRC)jdmainct.c $(JDEP)
$(CP_) $(JSRC)jdmainct.c $(GLGEN)jdmainct.c
$(JCC) $(JO_)jdmainct.$(OBJ) $(C_) $(GLGEN)jdmainct.c
- $(RM_) $(GLGEN)jdmainct.c
$(JOBJ)jdmarker.$(OBJ) : $(JSRC)jdmarker.c $(JDEP)
$(CP_) $(JSRC)jdmarker.c $(GLGEN)jdmarker.c
$(JCC) $(JO_)jdmarker.$(OBJ) $(C_) $(GLGEN)jdmarker.c
- $(RM_) $(GLGEN)jdmarker.c
$(JOBJ)jdmaster.$(OBJ) : $(JSRC)jdmaster.c $(JDEP)
$(CP_) $(JSRC)jdmaster.c $(GLGEN)jdmaster.c
$(JCC) $(JO_)jdmaster.$(OBJ) $(C_) $(GLGEN)jdmaster.c
- $(RM_) $(GLGEN)jdmaster.c
#$(JOBJ)jdhuff.$(OBJ) : $(JSRC)jdhuff.c $(JDEP)
# $(CP_) $(JSRC)jdhuff.c $(GLGEN)jdhuff.c
@@ -389,19 +393,15 @@ $(JOBJ)jdmaster.$(OBJ) : $(JSRC)jdmaster.c $(JDEP)
$(JOBJ)jdpostct.$(OBJ) : $(JSRC)jdpostct.c $(JDEP)
$(CP_) $(JSRC)jdpostct.c $(GLGEN)jdpostct.c
$(JCC) $(JO_)jdpostct.$(OBJ) $(C_) $(GLGEN)jdpostct.c
- $(RM_) $(GLGEN)jdpostct.c
$(JOBJ)jdsample.$(OBJ) : $(JSRC)jdsample.c $(JDEP)
$(CP_) $(JSRC)jdsample.c $(GLGEN)jdsample.c
$(JCC) $(JO_)jdsample.$(OBJ) $(C_) $(GLGEN)jdsample.c
- $(RM_) $(GLGEN)jdsample.c
$(JOBJ)jidctint.$(OBJ) : $(JSRC)jidctint.c $(JDEP)
$(CP_) $(JSRC)jidctint.c $(GLGEN)jidctint.c
$(JCC) $(JO_)jidctint.$(OBJ) $(C_) $(GLGEN)jidctint.c
- $(RM_) $(GLGEN)jidctint.c
$(JOBJ)jdarith.$(OBJ) : $(JSRC)jdarith.c $(JDEP)
$(CP_) $(JSRC)jdarith.c $(GLGEN)jdarith.c
$(JCC) $(JO_)jdarith.$(OBJ) $(C_) $(GLGEN)jdarith.c
- $(RM_) $(GLGEN)jdarith.c
diff --git a/base/jpegxr.mak b/base/jpegxr.mak
index 01bce19c..daa5f62f 100644
--- a/base/jpegxr.mak
+++ b/base/jpegxr.mak
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2019 Artifex Software, Inc.
+# Copyright (C) 2001-2020 Artifex Software, Inc.
# All Rights Reserved.
#
# This software is provided AS-IS with no warranty, either express or
diff --git a/base/lcms2.mak b/base/lcms2.mak
index ebd745c2..a4224675 100644
--- a/base/lcms2.mak
+++ b/base/lcms2.mak
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2019 Artifex Software, Inc.
+# Copyright (C) 2001-2020 Artifex Software, Inc.
# All Rights Reserved.
#
# This software is provided AS-IS with no warranty, either express or
diff --git a/base/lcms2mt.mak b/base/lcms2mt.mak
index 5d773817..68974579 100644
--- a/base/lcms2mt.mak
+++ b/base/lcms2mt.mak
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2019 Artifex Software, Inc.
+# Copyright (C) 2001-2020 Artifex Software, Inc.
# All Rights Reserved.
#
# This software is provided AS-IS with no warranty, either express or
@@ -80,7 +80,7 @@ lcms2.config-clean :
# NB: we can't use the normal $(CC_) here because msvccmd.mak
# adds /Za which conflicts with the lcms source.
-LCMS2_CC=$(CC) $(D_)SHARE_LCMS=$(SHARE_LCMS)$(_D) $(GENOPT) $(CAPOPT) $(CFLAGS) $(LCMS2_CFLAGS) $(I_)$(LCMS2MTSRCDIR)$(D)include $(LCMS2CF_)
+LCMS2_CC=$(CC) $(CFLAGS_VISIBILITY) $(D_)SHARE_LCMS=$(SHARE_LCMS)$(_D) $(GENOPT) $(CAPOPT) $(CFLAGS) $(LCMS2_CFLAGS) $(I_)$(LCMS2MTSRCDIR)$(D)include $(LCMS2CF_)
LCMS2O_=$(O_)$(LCMS2OBJ)
# switch in the version of lcms2mt.dev we're actually using
diff --git a/base/lcups.mak b/base/lcups.mak
index da33fb04..e5974625 100644
--- a/base/lcups.mak
+++ b/base/lcups.mak
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2019 Artifex Software, Inc.
+# Copyright (C) 2001-2020 Artifex Software, Inc.
# All Rights Reserved.
#
# This software is provided AS-IS with no warranty, either express or
diff --git a/base/lcupsi.mak b/base/lcupsi.mak
index 33f78124..5b861174 100644
--- a/base/lcupsi.mak
+++ b/base/lcupsi.mak
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2019 Artifex Software, Inc.
+# Copyright (C) 2001-2020 Artifex Software, Inc.
# All Rights Reserved.
#
# This software is provided AS-IS with no warranty, either express or
diff --git a/base/ldf_jb2.mak b/base/ldf_jb2.mak
index 4adf0622..5005d80a 100644
--- a/base/ldf_jb2.mak
+++ b/base/ldf_jb2.mak
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2019 Artifex Software, Inc.
+# Copyright (C) 2001-2020 Artifex Software, Inc.
# All Rights Reserved.
#
# This software is provided AS-IS with no warranty, either express or
diff --git a/base/leptonica.mak b/base/leptonica.mak
new file mode 100644
index 00000000..0929e376
--- /dev/null
+++ b/base/leptonica.mak
@@ -0,0 +1,644 @@
+LEPTINCLUDES=\
+ $(I_)$(LEPTONICADIR)/src$(_I)\
+ $(I_)$(GLSRCDIR)$(_I)\
+ $(I_)$(GLGENDIR)$(_I)
+
+LEPTCFLAGS_LOCAL=\
+ -DLEPTONICA_INTERCEPT_MALLOC=1\
+ -DHAVE_LIBJPEG=0\
+ -DHAVE_LIBTIFF=0\
+ -DHAVE_LIBPNG=0\
+ -DHAVE_LIBZ=0\
+ -DHAVE_LIBGIF=0\
+ -DHAVE_LIBUNGIF=0\
+ -DHAVE_LIBWEBP=0\
+ -DHAVE_LIBWEBP_ANIM=0\
+ -DHAVE_LIBJP2K=0
+
+LEPTCC = $(CC) $(CCFLAGS) $(LEPTINCLUDES) $(LEPTCFLAGS_LOCAL)
+LEPTOBJ = $(GLOBJDIR)$(D)leptonica_
+LEPTO_ = $(O_)$(LEPTOBJ)
+
+LEPTDEPS=\
+ $(arch_h)\
+ $(GLSRCDIR)/leptonica.mak\
+ $(MAKEDIRS)
+
+$(LEPTOBJ)adaptmap.$(OBJ) : $(LEPTONICADIR)/src/adaptmap.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)adaptmap.$(OBJ) $(C_) $(LEPTONICADIR)/src/adaptmap.c
+
+$(LEPTOBJ)affine.$(OBJ) : $(LEPTONICADIR)/src/affine.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)affine.$(OBJ) $(C_) $(LEPTONICADIR)/src/affine.c
+
+$(LEPTOBJ)affinecompose.$(OBJ) : $(LEPTONICADIR)/src/affinecompose.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)affinecompose.$(OBJ) $(C_) $(LEPTONICADIR)/src/affinecompose.c
+
+$(LEPTOBJ)arrayaccess.$(OBJ) : $(LEPTONICADIR)/src/arrayaccess.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)arrayaccess.$(OBJ) $(C_) $(LEPTONICADIR)/src/arrayaccess.c
+
+$(LEPTOBJ)baseline.$(OBJ) : $(LEPTONICADIR)/src/baseline.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)baseline.$(OBJ) $(C_) $(LEPTONICADIR)/src/baseline.c
+
+$(LEPTOBJ)bbuffer.$(OBJ) : $(LEPTONICADIR)/src/bbuffer.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)bbuffer.$(OBJ) $(C_) $(LEPTONICADIR)/src/bbuffer.c
+
+$(LEPTOBJ)bilateral.$(OBJ) : $(LEPTONICADIR)/src/bilateral.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)bilateral.$(OBJ) $(C_) $(LEPTONICADIR)/src/bilateral.c
+
+$(LEPTOBJ)bilinear.$(OBJ) : $(LEPTONICADIR)/src/bilinear.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)bilinear.$(OBJ) $(C_) $(LEPTONICADIR)/src/bilinear.c
+
+$(LEPTOBJ)binexpand.$(OBJ) : $(LEPTONICADIR)/src/binexpand.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)binexpand.$(OBJ) $(C_) $(LEPTONICADIR)/src/binexpand.c
+
+$(LEPTOBJ)binreduce.$(OBJ) : $(LEPTONICADIR)/src/binreduce.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)binreduce.$(OBJ) $(C_) $(LEPTONICADIR)/src/binreduce.c
+
+$(LEPTOBJ)blend.$(OBJ) : $(LEPTONICADIR)/src/blend.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)blend.$(OBJ) $(C_) $(LEPTONICADIR)/src/blend.c
+
+$(LEPTOBJ)bmf.$(OBJ) : $(LEPTONICADIR)/src/bmf.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)bmf.$(OBJ) $(C_) $(LEPTONICADIR)/src/bmf.c
+
+$(LEPTOBJ)bmpio.$(OBJ) : $(LEPTONICADIR)/src/bmpio.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)bmpio.$(OBJ) $(C_) $(LEPTONICADIR)/src/bmpio.c
+
+$(LEPTOBJ)bmpiostub.$(OBJ) : $(LEPTONICADIR)/src/bmpiostub.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)bmpiostub.$(OBJ) $(C_) $(LEPTONICADIR)/src/bmpiostub.c
+
+$(LEPTOBJ)bootnumgen1.$(OBJ) : $(LEPTONICADIR)/src/bootnumgen1.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)bootnumgen1.$(OBJ) $(C_) $(LEPTONICADIR)/src/bootnumgen1.c
+
+$(LEPTOBJ)bootnumgen2.$(OBJ) : $(LEPTONICADIR)/src/bootnumgen2.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)bootnumgen2.$(OBJ) $(C_) $(LEPTONICADIR)/src/bootnumgen2.c
+
+$(LEPTOBJ)bootnumgen3.$(OBJ) : $(LEPTONICADIR)/src/bootnumgen3.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)bootnumgen3.$(OBJ) $(C_) $(LEPTONICADIR)/src/bootnumgen3.c
+
+$(LEPTOBJ)bootnumgen4.$(OBJ) : $(LEPTONICADIR)/src/bootnumgen4.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)bootnumgen4.$(OBJ) $(C_) $(LEPTONICADIR)/src/bootnumgen4.c
+
+$(LEPTOBJ)boxbasic.$(OBJ) : $(LEPTONICADIR)/src/boxbasic.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)boxbasic.$(OBJ) $(C_) $(LEPTONICADIR)/src/boxbasic.c
+
+$(LEPTOBJ)boxfunc1.$(OBJ) : $(LEPTONICADIR)/src/boxfunc1.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)boxfunc1.$(OBJ) $(C_) $(LEPTONICADIR)/src/boxfunc1.c
+
+$(LEPTOBJ)boxfunc2.$(OBJ) : $(LEPTONICADIR)/src/boxfunc2.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)boxfunc2.$(OBJ) $(C_) $(LEPTONICADIR)/src/boxfunc2.c
+
+$(LEPTOBJ)boxfunc3.$(OBJ) : $(LEPTONICADIR)/src/boxfunc3.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)boxfunc3.$(OBJ) $(C_) $(LEPTONICADIR)/src/boxfunc3.c
+
+$(LEPTOBJ)boxfunc4.$(OBJ) : $(LEPTONICADIR)/src/boxfunc4.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)boxfunc4.$(OBJ) $(C_) $(LEPTONICADIR)/src/boxfunc4.c
+
+$(LEPTOBJ)boxfunc5.$(OBJ) : $(LEPTONICADIR)/src/boxfunc5.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)boxfunc5.$(OBJ) $(C_) $(LEPTONICADIR)/src/boxfunc5.c
+
+$(LEPTOBJ)bytearray.$(OBJ) : $(LEPTONICADIR)/src/bytearray.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)bytearray.$(OBJ) $(C_) $(LEPTONICADIR)/src/bytearray.c
+
+$(LEPTOBJ)ccbord.$(OBJ) : $(LEPTONICADIR)/src/ccbord.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)ccbord.$(OBJ) $(C_) $(LEPTONICADIR)/src/ccbord.c
+
+$(LEPTOBJ)classapp.$(OBJ) : $(LEPTONICADIR)/src/classapp.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)classapp.$(OBJ) $(C_) $(LEPTONICADIR)/src/classapp.c
+
+$(LEPTOBJ)colorcontent.$(OBJ) : $(LEPTONICADIR)/src/colorcontent.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)colorcontent.$(OBJ) $(C_) $(LEPTONICADIR)/src/colorcontent.c
+
+$(LEPTOBJ)colorinfo.$(OBJ) : $(LEPTONICADIR)/src/colorinfo.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)colorinfo.$(OBJ) $(C_) $(LEPTONICADIR)/src/colorinfo.c
+
+$(LEPTOBJ)coloring.$(OBJ) : $(LEPTONICADIR)/src/coloring.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)coloring.$(OBJ) $(C_) $(LEPTONICADIR)/src/coloring.c
+
+$(LEPTOBJ)colormap.$(OBJ) : $(LEPTONICADIR)/src/colormap.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)colormap.$(OBJ) $(C_) $(LEPTONICADIR)/src/colormap.c
+
+$(LEPTOBJ)colormorph.$(OBJ) : $(LEPTONICADIR)/src/colormorph.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)colormorph.$(OBJ) $(C_) $(LEPTONICADIR)/src/colormorph.c
+
+$(LEPTOBJ)colorquant1.$(OBJ) : $(LEPTONICADIR)/src/colorquant1.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)colorquant1.$(OBJ) $(C_) $(LEPTONICADIR)/src/colorquant1.c
+
+$(LEPTOBJ)colorquant2.$(OBJ) : $(LEPTONICADIR)/src/colorquant2.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)colorquant2.$(OBJ) $(C_) $(LEPTONICADIR)/src/colorquant2.c
+
+$(LEPTOBJ)colorseg.$(OBJ) : $(LEPTONICADIR)/src/colorseg.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)colorseg.$(OBJ) $(C_) $(LEPTONICADIR)/src/colorseg.c
+
+$(LEPTOBJ)colorspace.$(OBJ) : $(LEPTONICADIR)/src/colorspace.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)colorspace.$(OBJ) $(C_) $(LEPTONICADIR)/src/colorspace.c
+
+$(LEPTOBJ)compare.$(OBJ) : $(LEPTONICADIR)/src/compare.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)compare.$(OBJ) $(C_) $(LEPTONICADIR)/src/compare.c
+
+$(LEPTOBJ)conncomp.$(OBJ) : $(LEPTONICADIR)/src/conncomp.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)conncomp.$(OBJ) $(C_) $(LEPTONICADIR)/src/conncomp.c
+
+$(LEPTOBJ)convertfiles.$(OBJ) : $(LEPTONICADIR)/src/convertfiles.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)convertfiles.$(OBJ) $(C_) $(LEPTONICADIR)/src/convertfiles.c
+
+$(LEPTOBJ)convolve.$(OBJ) : $(LEPTONICADIR)/src/convolve.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)convolve.$(OBJ) $(C_) $(LEPTONICADIR)/src/convolve.c
+
+$(LEPTOBJ)correlscore.$(OBJ) : $(LEPTONICADIR)/src/correlscore.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)correlscore.$(OBJ) $(C_) $(LEPTONICADIR)/src/correlscore.c
+
+$(LEPTOBJ)dewarp1.$(OBJ) : $(LEPTONICADIR)/src/dewarp1.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)dewarp1.$(OBJ) $(C_) $(LEPTONICADIR)/src/dewarp1.c
+
+$(LEPTOBJ)dewarp2.$(OBJ) : $(LEPTONICADIR)/src/dewarp2.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)dewarp2.$(OBJ) $(C_) $(LEPTONICADIR)/src/dewarp2.c
+
+$(LEPTOBJ)dewarp3.$(OBJ) : $(LEPTONICADIR)/src/dewarp3.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)dewarp3.$(OBJ) $(C_) $(LEPTONICADIR)/src/dewarp3.c
+
+$(LEPTOBJ)dewarp4.$(OBJ) : $(LEPTONICADIR)/src/dewarp4.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)dewarp4.$(OBJ) $(C_) $(LEPTONICADIR)/src/dewarp4.c
+
+$(LEPTOBJ)dnabasic.$(OBJ) : $(LEPTONICADIR)/src/dnabasic.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)dnabasic.$(OBJ) $(C_) $(LEPTONICADIR)/src/dnabasic.c
+
+$(LEPTOBJ)dnafunc1.$(OBJ) : $(LEPTONICADIR)/src/dnafunc1.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)dnafunc1.$(OBJ) $(C_) $(LEPTONICADIR)/src/dnafunc1.c
+
+$(LEPTOBJ)dnahash.$(OBJ) : $(LEPTONICADIR)/src/dnahash.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)dnahash.$(OBJ) $(C_) $(LEPTONICADIR)/src/dnahash.c
+
+$(LEPTOBJ)dwacomb.2.$(OBJ) : $(LEPTONICADIR)/src/dwacomb.2.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)dwacomb.2.$(OBJ) $(C_) $(LEPTONICADIR)/src/dwacomb.2.c
+
+$(LEPTOBJ)dwacomblow.2.$(OBJ) : $(LEPTONICADIR)/src/dwacomblow.2.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)dwacomblow.2.$(OBJ) $(C_) $(LEPTONICADIR)/src/dwacomblow.2.c
+
+$(LEPTOBJ)edge.$(OBJ) : $(LEPTONICADIR)/src/edge.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)edge.$(OBJ) $(C_) $(LEPTONICADIR)/src/edge.c
+
+$(LEPTOBJ)encoding.$(OBJ) : $(LEPTONICADIR)/src/encoding.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)encoding.$(OBJ) $(C_) $(LEPTONICADIR)/src/encoding.c
+
+$(LEPTOBJ)enhance.$(OBJ) : $(LEPTONICADIR)/src/enhance.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)enhance.$(OBJ) $(C_) $(LEPTONICADIR)/src/enhance.c
+
+$(LEPTOBJ)fhmtauto.$(OBJ) : $(LEPTONICADIR)/src/fhmtauto.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)fhmtauto.$(OBJ) $(C_) $(LEPTONICADIR)/src/fhmtauto.c
+
+$(LEPTOBJ)fhmtgenlow.1.$(OBJ) : $(LEPTONICADIR)/src/fhmtgenlow.1.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)fhmtgenlow.1.$(OBJ) $(C_) $(LEPTONICADIR)/src/fhmtgenlow.1.c
+
+$(LEPTOBJ)fmorphauto.$(OBJ) : $(LEPTONICADIR)/src/fmorphauto.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)fmorphauto.$(OBJ) $(C_) $(LEPTONICADIR)/src/fmorphauto.c
+
+$(LEPTOBJ)fmorphgen.1.$(OBJ) : $(LEPTONICADIR)/src/fmorphgen.1.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)fmorphgen.1.$(OBJ) $(C_) $(LEPTONICADIR)/src/fmorphgen.1.c
+
+$(LEPTOBJ)fmorphgenlow.1.$(OBJ) : $(LEPTONICADIR)/src/fmorphgenlow.1.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)fmorphgenlow.1.$(OBJ) $(C_) $(LEPTONICADIR)/src/fmorphgenlow.1.c
+
+$(LEPTOBJ)fpix1.$(OBJ) : $(LEPTONICADIR)/src/fpix1.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)fpix1.$(OBJ) $(C_) $(LEPTONICADIR)/src/fpix1.c
+
+$(LEPTOBJ)fpix2.$(OBJ) : $(LEPTONICADIR)/src/fpix2.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)fpix2.$(OBJ) $(C_) $(LEPTONICADIR)/src/fpix2.c
+
+$(LEPTOBJ)gifiostub.$(OBJ) : $(LEPTONICADIR)/src/gifiostub.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)gifiostub.$(OBJ) $(C_) $(LEPTONICADIR)/src/gifiostub.c
+
+$(LEPTOBJ)gplot.$(OBJ) : $(LEPTONICADIR)/src/gplot.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)gplot.$(OBJ) $(C_) $(LEPTONICADIR)/src/gplot.c
+
+$(LEPTOBJ)graphics.$(OBJ) : $(LEPTONICADIR)/src/graphics.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)graphics.$(OBJ) $(C_) $(LEPTONICADIR)/src/graphics.c
+
+$(LEPTOBJ)graymorph.$(OBJ) : $(LEPTONICADIR)/src/graymorph.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)graymorph.$(OBJ) $(C_) $(LEPTONICADIR)/src/graymorph.c
+
+$(LEPTOBJ)grayquant.$(OBJ) : $(LEPTONICADIR)/src/grayquant.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)grayquant.$(OBJ) $(C_) $(LEPTONICADIR)/src/grayquant.c
+
+$(LEPTOBJ)heap.$(OBJ) : $(LEPTONICADIR)/src/heap.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)heap.$(OBJ) $(C_) $(LEPTONICADIR)/src/heap.c
+
+$(LEPTOBJ)jbclass.$(OBJ) : $(LEPTONICADIR)/src/jbclass.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)jbclass.$(OBJ) $(C_) $(LEPTONICADIR)/src/jbclass.c
+
+$(LEPTOBJ)jp2kheader.$(OBJ) : $(LEPTONICADIR)/src/jp2kheader.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)jp2kheader.$(OBJ) $(C_) $(LEPTONICADIR)/src/jp2kheader.c
+
+$(LEPTOBJ)jp2kheaderstub.$(OBJ) : $(LEPTONICADIR)/src/jp2kheaderstub.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)jp2kheaderstub.$(OBJ) $(C_) $(LEPTONICADIR)/src/jp2kheaderstub.c
+
+$(LEPTOBJ)jp2kiostub.$(OBJ) : $(LEPTONICADIR)/src/jp2kiostub.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)jp2kiostub.$(OBJ) $(C_) $(LEPTONICADIR)/src/jp2kiostub.c
+
+$(LEPTOBJ)jpegiostub.$(OBJ) : $(LEPTONICADIR)/src/jpegiostub.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)jpegiostub.$(OBJ) $(C_) $(LEPTONICADIR)/src/jpegiostub.c
+
+$(LEPTOBJ)kernel.$(OBJ) : $(LEPTONICADIR)/src/kernel.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)kernel.$(OBJ) $(C_) $(LEPTONICADIR)/src/kernel.c
+
+$(LEPTOBJ)libversions.$(OBJ) : $(LEPTONICADIR)/src/libversions.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)libversions.$(OBJ) $(C_) $(LEPTONICADIR)/src/libversions.c
+
+$(LEPTOBJ)list.$(OBJ) : $(LEPTONICADIR)/src/list.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)list.$(OBJ) $(C_) $(LEPTONICADIR)/src/list.c
+
+$(LEPTOBJ)map.$(OBJ) : $(LEPTONICADIR)/src/map.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)map.$(OBJ) $(C_) $(LEPTONICADIR)/src/map.c
+
+$(LEPTOBJ)morph.$(OBJ) : $(LEPTONICADIR)/src/morph.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)morph.$(OBJ) $(C_) $(LEPTONICADIR)/src/morph.c
+
+$(LEPTOBJ)morphapp.$(OBJ) : $(LEPTONICADIR)/src/morphapp.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)morphapp.$(OBJ) $(C_) $(LEPTONICADIR)/src/morphapp.c
+
+$(LEPTOBJ)morphdwa.$(OBJ) : $(LEPTONICADIR)/src/morphdwa.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)morphdwa.$(OBJ) $(C_) $(LEPTONICADIR)/src/morphdwa.c
+
+$(LEPTOBJ)morphseq.$(OBJ) : $(LEPTONICADIR)/src/morphseq.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)morphseq.$(OBJ) $(C_) $(LEPTONICADIR)/src/morphseq.c
+
+$(LEPTOBJ)numabasic.$(OBJ) : $(LEPTONICADIR)/src/numabasic.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)numabasic.$(OBJ) $(C_) $(LEPTONICADIR)/src/numabasic.c
+
+$(LEPTOBJ)numafunc1.$(OBJ) : $(LEPTONICADIR)/src/numafunc1.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)numafunc1.$(OBJ) $(C_) $(LEPTONICADIR)/src/numafunc1.c
+
+$(LEPTOBJ)numafunc2.$(OBJ) : $(LEPTONICADIR)/src/numafunc2.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)numafunc2.$(OBJ) $(C_) $(LEPTONICADIR)/src/numafunc2.c
+
+$(LEPTOBJ)pageseg.$(OBJ) : $(LEPTONICADIR)/src/pageseg.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)pageseg.$(OBJ) $(C_) $(LEPTONICADIR)/src/pageseg.c
+
+$(LEPTOBJ)paintcmap.$(OBJ) : $(LEPTONICADIR)/src/paintcmap.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)paintcmap.$(OBJ) $(C_) $(LEPTONICADIR)/src/paintcmap.c
+
+$(LEPTOBJ)partify.$(OBJ) : $(LEPTONICADIR)/src/partify.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)partify.$(OBJ) $(C_) $(LEPTONICADIR)/src/partify.c
+
+$(LEPTOBJ)partition.$(OBJ) : $(LEPTONICADIR)/src/partition.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)partition.$(OBJ) $(C_) $(LEPTONICADIR)/src/partition.c
+
+$(LEPTOBJ)pdfio1.$(OBJ) : $(LEPTONICADIR)/src/pdfio1.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)pdfio1.$(OBJ) $(C_) $(LEPTONICADIR)/src/pdfio1.c
+
+$(LEPTOBJ)pdfio1stub.$(OBJ) : $(LEPTONICADIR)/src/pdfio1stub.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)pdfio1stub.$(OBJ) $(C_) $(LEPTONICADIR)/src/pdfio1stub.c
+
+$(LEPTOBJ)pdfio2.$(OBJ) : $(LEPTONICADIR)/src/pdfio2.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)pdfio2.$(OBJ) $(C_) $(LEPTONICADIR)/src/pdfio2.c
+
+$(LEPTOBJ)pdfio2stub.$(OBJ) : $(LEPTONICADIR)/src/pdfio2stub.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)pdfio2stub.$(OBJ) $(C_) $(LEPTONICADIR)/src/pdfio2stub.c
+
+$(LEPTOBJ)pix1.$(OBJ) : $(LEPTONICADIR)/src/pix1.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)pix1.$(OBJ) $(C_) $(LEPTONICADIR)/src/pix1.c
+
+$(LEPTOBJ)pix2.$(OBJ) : $(LEPTONICADIR)/src/pix2.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)pix2.$(OBJ) $(C_) $(LEPTONICADIR)/src/pix2.c
+
+$(LEPTOBJ)pix3.$(OBJ) : $(LEPTONICADIR)/src/pix3.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)pix3.$(OBJ) $(C_) $(LEPTONICADIR)/src/pix3.c
+
+$(LEPTOBJ)pix4.$(OBJ) : $(LEPTONICADIR)/src/pix4.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)pix4.$(OBJ) $(C_) $(LEPTONICADIR)/src/pix4.c
+
+$(LEPTOBJ)pix5.$(OBJ) : $(LEPTONICADIR)/src/pix5.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)pix5.$(OBJ) $(C_) $(LEPTONICADIR)/src/pix5.c
+
+$(LEPTOBJ)pixabasic.$(OBJ) : $(LEPTONICADIR)/src/pixabasic.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)pixabasic.$(OBJ) $(C_) $(LEPTONICADIR)/src/pixabasic.c
+
+$(LEPTOBJ)pixacc.$(OBJ) : $(LEPTONICADIR)/src/pixacc.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)pixacc.$(OBJ) $(C_) $(LEPTONICADIR)/src/pixacc.c
+
+$(LEPTOBJ)pixafunc1.$(OBJ) : $(LEPTONICADIR)/src/pixafunc1.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)pixafunc1.$(OBJ) $(C_) $(LEPTONICADIR)/src/pixafunc1.c
+
+$(LEPTOBJ)pixafunc2.$(OBJ) : $(LEPTONICADIR)/src/pixafunc2.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)pixafunc2.$(OBJ) $(C_) $(LEPTONICADIR)/src/pixafunc2.c
+
+$(LEPTOBJ)pixalloc.$(OBJ) : $(LEPTONICADIR)/src/pixalloc.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)pixalloc.$(OBJ) $(C_) $(LEPTONICADIR)/src/pixalloc.c
+
+$(LEPTOBJ)pixarith.$(OBJ) : $(LEPTONICADIR)/src/pixarith.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)pixarith.$(OBJ) $(C_) $(LEPTONICADIR)/src/pixarith.c
+
+$(LEPTOBJ)pixcomp.$(OBJ) : $(LEPTONICADIR)/src/pixcomp.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)pixcomp.$(OBJ) $(C_) $(LEPTONICADIR)/src/pixcomp.c
+
+$(LEPTOBJ)pixconv.$(OBJ) : $(LEPTONICADIR)/src/pixconv.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)pixconv.$(OBJ) $(C_) $(LEPTONICADIR)/src/pixconv.c
+
+$(LEPTOBJ)pixlabel.$(OBJ) : $(LEPTONICADIR)/src/pixlabel.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)pixlabel.$(OBJ) $(C_) $(LEPTONICADIR)/src/pixlabel.c
+
+$(LEPTOBJ)pixtiling.$(OBJ) : $(LEPTONICADIR)/src/pixtiling.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)pixtiling.$(OBJ) $(C_) $(LEPTONICADIR)/src/pixtiling.c
+
+$(LEPTOBJ)pngiostub.$(OBJ) : $(LEPTONICADIR)/src/pngiostub.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)pngiostub.$(OBJ) $(C_) $(LEPTONICADIR)/src/pngiostub.c
+
+$(LEPTOBJ)pnmio.$(OBJ) : $(LEPTONICADIR)/src/pnmio.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)pnmio.$(OBJ) $(C_) $(LEPTONICADIR)/src/pnmio.c
+
+$(LEPTOBJ)pnmiostub.$(OBJ) : $(LEPTONICADIR)/src/pnmiostub.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)pnmiostub.$(OBJ) $(C_) $(LEPTONICADIR)/src/pnmiostub.c
+
+$(LEPTOBJ)projective.$(OBJ) : $(LEPTONICADIR)/src/projective.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)projective.$(OBJ) $(C_) $(LEPTONICADIR)/src/projective.c
+
+$(LEPTOBJ)psio1.$(OBJ) : $(LEPTONICADIR)/src/psio1.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)psio1.$(OBJ) $(C_) $(LEPTONICADIR)/src/psio1.c
+
+$(LEPTOBJ)psio1stub.$(OBJ) : $(LEPTONICADIR)/src/psio1stub.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)psio1stub.$(OBJ) $(C_) $(LEPTONICADIR)/src/psio1stub.c
+
+$(LEPTOBJ)psio2.$(OBJ) : $(LEPTONICADIR)/src/psio2.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)psio2.$(OBJ) $(C_) $(LEPTONICADIR)/src/psio2.c
+
+$(LEPTOBJ)psio2stub.$(OBJ) : $(LEPTONICADIR)/src/psio2stub.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)psio2stub.$(OBJ) $(C_) $(LEPTONICADIR)/src/psio2stub.c
+
+$(LEPTOBJ)ptabasic.$(OBJ) : $(LEPTONICADIR)/src/ptabasic.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)ptabasic.$(OBJ) $(C_) $(LEPTONICADIR)/src/ptabasic.c
+
+$(LEPTOBJ)ptafunc1.$(OBJ) : $(LEPTONICADIR)/src/ptafunc1.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)ptafunc1.$(OBJ) $(C_) $(LEPTONICADIR)/src/ptafunc1.c
+
+$(LEPTOBJ)ptafunc2.$(OBJ) : $(LEPTONICADIR)/src/ptafunc2.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)ptafunc2.$(OBJ) $(C_) $(LEPTONICADIR)/src/ptafunc2.c
+
+$(LEPTOBJ)ptra.$(OBJ) : $(LEPTONICADIR)/src/ptra.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)ptra.$(OBJ) $(C_) $(LEPTONICADIR)/src/ptra.c
+
+$(LEPTOBJ)quadtree.$(OBJ) : $(LEPTONICADIR)/src/quadtree.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)quadtree.$(OBJ) $(C_) $(LEPTONICADIR)/src/quadtree.c
+
+$(LEPTOBJ)queue.$(OBJ) : $(LEPTONICADIR)/src/queue.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)queue.$(OBJ) $(C_) $(LEPTONICADIR)/src/queue.c
+
+$(LEPTOBJ)rank.$(OBJ) : $(LEPTONICADIR)/src/rank.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)rank.$(OBJ) $(C_) $(LEPTONICADIR)/src/rank.c
+
+$(LEPTOBJ)rbtree.$(OBJ) : $(LEPTONICADIR)/src/rbtree.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)rbtree.$(OBJ) $(C_) $(LEPTONICADIR)/src/rbtree.c
+
+$(LEPTOBJ)readfile.$(OBJ) : $(LEPTONICADIR)/src/readfile.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)readfile.$(OBJ) $(C_) $(LEPTONICADIR)/src/readfile.c
+
+$(LEPTOBJ)regutils.$(OBJ) : $(LEPTONICADIR)/src/regutils.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)regutils.$(OBJ) $(C_) $(LEPTONICADIR)/src/regutils.c
+
+$(LEPTOBJ)rop.$(OBJ) : $(LEPTONICADIR)/src/rop.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)rop.$(OBJ) $(C_) $(LEPTONICADIR)/src/rop.c
+
+$(LEPTOBJ)roplow.$(OBJ) : $(LEPTONICADIR)/src/roplow.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)roplow.$(OBJ) $(C_) $(LEPTONICADIR)/src/roplow.c
+
+$(LEPTOBJ)rotate.$(OBJ) : $(LEPTONICADIR)/src/rotate.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)rotate.$(OBJ) $(C_) $(LEPTONICADIR)/src/rotate.c
+
+$(LEPTOBJ)rotateam.$(OBJ) : $(LEPTONICADIR)/src/rotateam.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)rotateam.$(OBJ) $(C_) $(LEPTONICADIR)/src/rotateam.c
+
+$(LEPTOBJ)rotateorth.$(OBJ) : $(LEPTONICADIR)/src/rotateorth.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)rotateorth.$(OBJ) $(C_) $(LEPTONICADIR)/src/rotateorth.c
+
+$(LEPTOBJ)rotateshear.$(OBJ) : $(LEPTONICADIR)/src/rotateshear.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)rotateshear.$(OBJ) $(C_) $(LEPTONICADIR)/src/rotateshear.c
+
+$(LEPTOBJ)runlength.$(OBJ) : $(LEPTONICADIR)/src/runlength.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)runlength.$(OBJ) $(C_) $(LEPTONICADIR)/src/runlength.c
+
+$(LEPTOBJ)sarray1.$(OBJ) : $(LEPTONICADIR)/src/sarray1.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)sarray1.$(OBJ) $(C_) $(LEPTONICADIR)/src/sarray1.c
+
+$(LEPTOBJ)sarray2.$(OBJ) : $(LEPTONICADIR)/src/sarray2.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)sarray2.$(OBJ) $(C_) $(LEPTONICADIR)/src/sarray2.c
+
+$(LEPTOBJ)scale1.$(OBJ) : $(LEPTONICADIR)/src/scale1.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)scale1.$(OBJ) $(C_) $(LEPTONICADIR)/src/scale1.c
+
+$(LEPTOBJ)scale2.$(OBJ) : $(LEPTONICADIR)/src/scale2.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)scale2.$(OBJ) $(C_) $(LEPTONICADIR)/src/scale2.c
+
+$(LEPTOBJ)seedfill.$(OBJ) : $(LEPTONICADIR)/src/seedfill.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)seedfill.$(OBJ) $(C_) $(LEPTONICADIR)/src/seedfill.c
+
+$(LEPTOBJ)sel1.$(OBJ) : $(LEPTONICADIR)/src/sel1.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)sel1.$(OBJ) $(C_) $(LEPTONICADIR)/src/sel1.c
+
+$(LEPTOBJ)sel2.$(OBJ) : $(LEPTONICADIR)/src/sel2.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)sel2.$(OBJ) $(C_) $(LEPTONICADIR)/src/sel2.c
+
+$(LEPTOBJ)selgen.$(OBJ) : $(LEPTONICADIR)/src/selgen.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)selgen.$(OBJ) $(C_) $(LEPTONICADIR)/src/selgen.c
+
+$(LEPTOBJ)shear.$(OBJ) : $(LEPTONICADIR)/src/shear.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)shear.$(OBJ) $(C_) $(LEPTONICADIR)/src/shear.c
+
+$(LEPTOBJ)skew.$(OBJ) : $(LEPTONICADIR)/src/skew.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)skew.$(OBJ) $(C_) $(LEPTONICADIR)/src/skew.c
+
+$(LEPTOBJ)spixio.$(OBJ) : $(LEPTONICADIR)/src/spixio.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)spixio.$(OBJ) $(C_) $(LEPTONICADIR)/src/spixio.c
+
+$(LEPTOBJ)stack.$(OBJ) : $(LEPTONICADIR)/src/stack.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)stack.$(OBJ) $(C_) $(LEPTONICADIR)/src/stack.c
+
+$(LEPTOBJ)stringcode.$(OBJ) : $(LEPTONICADIR)/src/stringcode.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)stringcode.$(OBJ) $(C_) $(LEPTONICADIR)/src/stringcode.c
+
+$(LEPTOBJ)strokes.$(OBJ) : $(LEPTONICADIR)/src/strokes.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)strokes.$(OBJ) $(C_) $(LEPTONICADIR)/src/strokes.c
+
+$(LEPTOBJ)sudoku.$(OBJ) : $(LEPTONICADIR)/src/sudoku.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)sudoku.$(OBJ) $(C_) $(LEPTONICADIR)/src/sudoku.c
+
+$(LEPTOBJ)textops.$(OBJ) : $(LEPTONICADIR)/src/textops.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)textops.$(OBJ) $(C_) $(LEPTONICADIR)/src/textops.c
+
+$(LEPTOBJ)tiffiostub.$(OBJ) : $(LEPTONICADIR)/src/tiffiostub.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)tiffiostub.$(OBJ) $(C_) $(LEPTONICADIR)/src/tiffiostub.c
+
+$(LEPTOBJ)utils1.$(OBJ) : $(LEPTONICADIR)/src/utils1.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)utils1.$(OBJ) $(C_) $(LEPTONICADIR)/src/utils1.c
+
+$(LEPTOBJ)utils2.$(OBJ) : $(LEPTONICADIR)/src/utils2.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)utils2.$(OBJ) $(C_) $(LEPTONICADIR)/src/utils2.c
+
+$(LEPTOBJ)warper.$(OBJ) : $(LEPTONICADIR)/src/warper.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)warper.$(OBJ) $(C_) $(LEPTONICADIR)/src/warper.c
+
+$(LEPTOBJ)webpiostub.$(OBJ) : $(LEPTONICADIR)/src/webpiostub.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)webpiostub.$(OBJ) $(C_) $(LEPTONICADIR)/src/webpiostub.c
+
+$(LEPTOBJ)writefile.$(OBJ) : $(LEPTONICADIR)/src/writefile.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)writefile.$(OBJ) $(C_) $(LEPTONICADIR)/src/writefile.c
+
+$(LEPTOBJ)zlibmem.$(OBJ) : $(LEPTONICADIR)/src/zlibmem.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)zlibmem.$(OBJ) $(C_) $(LEPTONICADIR)/src/zlibmem.c
+
+$(LEPTOBJ)zlibmemstub.$(OBJ) : $(LEPTONICADIR)/src/zlibmemstub.c $(LEPTDEPS)
+ $(LEPTCC) $(LEPTO_)zlibmemstub.$(OBJ) $(C_) $(LEPTONICADIR)/src/zlibmemstub.c
+
+LEPTONICA_OBJS=\
+ $(LEPTOBJ)adaptmap.$(OBJ)\
+ $(LEPTOBJ)affine.$(OBJ)\
+ $(LEPTOBJ)affinecompose.$(OBJ)\
+ $(LEPTOBJ)arrayaccess.$(OBJ)\
+ $(LEPTOBJ)baseline.$(OBJ)\
+ $(LEPTOBJ)bbuffer.$(OBJ)\
+ $(LEPTOBJ)bilateral.$(OBJ)\
+ $(LEPTOBJ)bilinear.$(OBJ)\
+ $(LEPTOBJ)binexpand.$(OBJ)\
+ $(LEPTOBJ)binreduce.$(OBJ)\
+ $(LEPTOBJ)blend.$(OBJ)\
+ $(LEPTOBJ)bmf.$(OBJ)\
+ $(LEPTOBJ)bmpio.$(OBJ)\
+ $(LEPTOBJ)bmpiostub.$(OBJ)\
+ $(LEPTOBJ)bootnumgen1.$(OBJ)\
+ $(LEPTOBJ)bootnumgen2.$(OBJ)\
+ $(LEPTOBJ)bootnumgen3.$(OBJ)\
+ $(LEPTOBJ)bootnumgen4.$(OBJ)\
+ $(LEPTOBJ)boxbasic.$(OBJ)\
+ $(LEPTOBJ)boxfunc1.$(OBJ)\
+ $(LEPTOBJ)boxfunc2.$(OBJ)\
+ $(LEPTOBJ)boxfunc3.$(OBJ)\
+ $(LEPTOBJ)boxfunc4.$(OBJ)\
+ $(LEPTOBJ)boxfunc5.$(OBJ)\
+ $(LEPTOBJ)bytearray.$(OBJ)\
+ $(LEPTOBJ)ccbord.$(OBJ)\
+ $(LEPTOBJ)classapp.$(OBJ)\
+ $(LEPTOBJ)colorcontent.$(OBJ)\
+ $(LEPTOBJ)colorinfo.$(OBJ)\
+ $(LEPTOBJ)coloring.$(OBJ)\
+ $(LEPTOBJ)colormap.$(OBJ)\
+ $(LEPTOBJ)colormorph.$(OBJ)\
+ $(LEPTOBJ)colorquant1.$(OBJ)\
+ $(LEPTOBJ)colorquant2.$(OBJ)\
+ $(LEPTOBJ)colorseg.$(OBJ)\
+ $(LEPTOBJ)colorspace.$(OBJ)\
+ $(LEPTOBJ)compare.$(OBJ)\
+ $(LEPTOBJ)conncomp.$(OBJ)\
+ $(LEPTOBJ)convertfiles.$(OBJ)\
+ $(LEPTOBJ)convolve.$(OBJ)\
+ $(LEPTOBJ)correlscore.$(OBJ)\
+ $(LEPTOBJ)dewarp1.$(OBJ)\
+ $(LEPTOBJ)dewarp2.$(OBJ)\
+ $(LEPTOBJ)dewarp3.$(OBJ)\
+ $(LEPTOBJ)dewarp4.$(OBJ)\
+ $(LEPTOBJ)dnabasic.$(OBJ)\
+ $(LEPTOBJ)dnafunc1.$(OBJ)\
+ $(LEPTOBJ)dnahash.$(OBJ)\
+ $(LEPTOBJ)dwacomb.2.$(OBJ)\
+ $(LEPTOBJ)dwacomblow.2.$(OBJ)\
+ $(LEPTOBJ)edge.$(OBJ)\
+ $(LEPTOBJ)encoding.$(OBJ)\
+ $(LEPTOBJ)enhance.$(OBJ)\
+ $(LEPTOBJ)fhmtauto.$(OBJ)\
+ $(LEPTOBJ)fhmtgenlow.1.$(OBJ)\
+ $(LEPTOBJ)fmorphauto.$(OBJ)\
+ $(LEPTOBJ)fmorphgen.1.$(OBJ)\
+ $(LEPTOBJ)fmorphgenlow.1.$(OBJ)\
+ $(LEPTOBJ)fpix1.$(OBJ)\
+ $(LEPTOBJ)fpix2.$(OBJ)\
+ $(LEPTOBJ)gifiostub.$(OBJ)\
+ $(LEPTOBJ)gplot.$(OBJ)\
+ $(LEPTOBJ)graphics.$(OBJ)\
+ $(LEPTOBJ)graymorph.$(OBJ)\
+ $(LEPTOBJ)grayquant.$(OBJ)\
+ $(LEPTOBJ)heap.$(OBJ)\
+ $(LEPTOBJ)jbclass.$(OBJ)\
+ $(LEPTOBJ)jp2kheader.$(OBJ)\
+ $(LEPTOBJ)jp2kheaderstub.$(OBJ)\
+ $(LEPTOBJ)jp2kiostub.$(OBJ)\
+ $(LEPTOBJ)jpegiostub.$(OBJ)\
+ $(LEPTOBJ)kernel.$(OBJ)\
+ $(LEPTOBJ)libversions.$(OBJ)\
+ $(LEPTOBJ)list.$(OBJ)\
+ $(LEPTOBJ)map.$(OBJ)\
+ $(LEPTOBJ)morph.$(OBJ)\
+ $(LEPTOBJ)morphapp.$(OBJ)\
+ $(LEPTOBJ)morphdwa.$(OBJ)\
+ $(LEPTOBJ)morphseq.$(OBJ)\
+ $(LEPTOBJ)numabasic.$(OBJ)\
+ $(LEPTOBJ)numafunc1.$(OBJ)\
+ $(LEPTOBJ)numafunc2.$(OBJ)\
+ $(LEPTOBJ)pageseg.$(OBJ)\
+ $(LEPTOBJ)paintcmap.$(OBJ)\
+ $(LEPTOBJ)partify.$(OBJ)\
+ $(LEPTOBJ)partition.$(OBJ)\
+ $(LEPTOBJ)pdfio1.$(OBJ)\
+ $(LEPTOBJ)pdfio1stub.$(OBJ)\
+ $(LEPTOBJ)pdfio2.$(OBJ)\
+ $(LEPTOBJ)pdfio2stub.$(OBJ)\
+ $(LEPTOBJ)pix1.$(OBJ)\
+ $(LEPTOBJ)pix2.$(OBJ)\
+ $(LEPTOBJ)pix3.$(OBJ)\
+ $(LEPTOBJ)pix4.$(OBJ)\
+ $(LEPTOBJ)pix5.$(OBJ)\
+ $(LEPTOBJ)pixabasic.$(OBJ)\
+ $(LEPTOBJ)pixacc.$(OBJ)\
+ $(LEPTOBJ)pixafunc1.$(OBJ)\
+ $(LEPTOBJ)pixafunc2.$(OBJ)\
+ $(LEPTOBJ)pixalloc.$(OBJ)\
+ $(LEPTOBJ)pixarith.$(OBJ)\
+ $(LEPTOBJ)pixcomp.$(OBJ)\
+ $(LEPTOBJ)pixconv.$(OBJ)\
+ $(LEPTOBJ)pixlabel.$(OBJ)\
+ $(LEPTOBJ)pixtiling.$(OBJ)\
+ $(LEPTOBJ)pngiostub.$(OBJ)\
+ $(LEPTOBJ)pnmio.$(OBJ)\
+ $(LEPTOBJ)pnmiostub.$(OBJ)\
+ $(LEPTOBJ)projective.$(OBJ)\
+ $(LEPTOBJ)psio1.$(OBJ)\
+ $(LEPTOBJ)psio1stub.$(OBJ)\
+ $(LEPTOBJ)psio2.$(OBJ)\
+ $(LEPTOBJ)psio2stub.$(OBJ)\
+ $(LEPTOBJ)ptabasic.$(OBJ)\
+ $(LEPTOBJ)ptafunc1.$(OBJ)\
+ $(LEPTOBJ)ptafunc2.$(OBJ)\
+ $(LEPTOBJ)ptra.$(OBJ)\
+ $(LEPTOBJ)quadtree.$(OBJ)\
+ $(LEPTOBJ)queue.$(OBJ)\
+ $(LEPTOBJ)rank.$(OBJ)\
+ $(LEPTOBJ)rbtree.$(OBJ)\
+ $(LEPTOBJ)readfile.$(OBJ)\
+ $(LEPTOBJ)regutils.$(OBJ)\
+ $(LEPTOBJ)rop.$(OBJ)\
+ $(LEPTOBJ)roplow.$(OBJ)\
+ $(LEPTOBJ)rotate.$(OBJ)\
+ $(LEPTOBJ)rotateam.$(OBJ)\
+ $(LEPTOBJ)rotateorth.$(OBJ)\
+ $(LEPTOBJ)rotateshear.$(OBJ)\
+ $(LEPTOBJ)runlength.$(OBJ)\
+ $(LEPTOBJ)sarray1.$(OBJ)\
+ $(LEPTOBJ)sarray2.$(OBJ)\
+ $(LEPTOBJ)scale1.$(OBJ)\
+ $(LEPTOBJ)scale2.$(OBJ)\
+ $(LEPTOBJ)seedfill.$(OBJ)\
+ $(LEPTOBJ)sel1.$(OBJ)\
+ $(LEPTOBJ)sel2.$(OBJ)\
+ $(LEPTOBJ)selgen.$(OBJ)\
+ $(LEPTOBJ)shear.$(OBJ)\
+ $(LEPTOBJ)skew.$(OBJ)\
+ $(LEPTOBJ)spixio.$(OBJ)\
+ $(LEPTOBJ)stack.$(OBJ)\
+ $(LEPTOBJ)stringcode.$(OBJ)\
+ $(LEPTOBJ)sudoku.$(OBJ)\
+ $(LEPTOBJ)textops.$(OBJ)\
+ $(LEPTOBJ)tiffiostub.$(OBJ)\
+ $(LEPTOBJ)utils1.$(OBJ)\
+ $(LEPTOBJ)utils2.$(OBJ)\
+ $(LEPTOBJ)warper.$(OBJ)\
+ $(LEPTOBJ)webpiostub.$(OBJ)\
+ $(LEPTOBJ)writefile.$(OBJ)\
+ $(LEPTOBJ)zlibmem.$(OBJ)\
+ $(LEPTOBJ)zlibmemstub.$(OBJ)
+
+# $(LEPTOBJ)strokes.$(OBJ)\
diff --git a/base/lib.mak b/base/lib.mak
index ac5eae19..0c2dffb9 100644
--- a/base/lib.mak
+++ b/base/lib.mak
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2019 Artifex Software, Inc.
+# Copyright (C) 2001-2020 Artifex Software, Inc.
# All Rights Reserved.
#
# This software is provided AS-IS with no warranty, either express or
@@ -426,8 +426,7 @@ $(GLOBJ)aes.$(OBJ) : $(GLSRC)aes.c $(AK) $(string__h) $(aes_h) $(LIB_MAK) $(MAKE
### Include files
-gsalpha_h=$(GLSRC)gsalpha.h
-gsccode_h=$(GLSRC)gsccode.h
+gsccode_h=$(GLSRC)gsccode.h $(std_h) $(stdint__h) $(gstypes_h)
gsccolor_h=$(GLSRC)gsccolor.h
# gscedata.[ch] are generated automatically by lib/encs2c.ps.
gscedata_h=$(GLSRC)gscedata.h
@@ -620,6 +619,7 @@ siinterp_h=$(GLSRC)siinterp.h
siscale_h=$(GLSRC)siscale.h
sidscale_h=$(GLSRC)sidscale.h
simscale_h=$(GLSRC)simscale.h
+simscale_foo_h=$(GLSRC)simscale_foo.h
gximage_h=$(GLSRC)gximage.h
gxhldevc_h=$(GLSRC)gxhldevc.h
gsptype2_h=$(GLSRC)gsptype2.h
@@ -916,10 +916,6 @@ $(GLOBJ)gxstroke.$(OBJ) : $(GLSRC)gxstroke.c $(AK) $(gx_h)\
###### Higher-level facilities
-$(GLOBJ)gsalpha.$(OBJ) : $(GLSRC)gsalpha.c $(AK) $(gx_h)\
- $(gsalpha_h) $(gxdcolor_h) $(gzstate_h) $(LIB_MAK) $(MAKEDIRS)
- $(GLCC) $(GLO_)gsalpha.$(OBJ) $(C_) $(GLSRC)gsalpha.c
-
# gscedata.[ch] are generated automatically by lib/encs2c.ps.
$(GLOBJ)gscedata.$(OBJ) : $(GLSRC)gscedata.c\
$(stdpre_h) $(gstypes_h) $(gscedata_h) $(LIB_MAK) $(MAKEDIRS)
@@ -952,7 +948,8 @@ $(GLOBJ)gscspace.$(OBJ) : $(GLSRC)gscspace.c $(AK) $(gx_h)\
$(gserrors_h) $(memory__h) $(gsstruct_h) $(gsccolor_h) $(gsutil_h)\
$(gxcmap_h) $(gxcspace_h) $(gxgstate_h) $(gsovrc_h) $(gsstate_h)\
$(gsdevice_h) $(gxdevcli_h) $(gzstate_h) $(gsnamecl_h) $(stream_h)\
- $(gsicc_h) $(gsicc_manage_h) $(string__h) $(LIB_MAK) $(MAKEDIRS)
+ $(gsicc_h) $(gsicc_manage_h) $(string__h) $(strmio_h) $(gsicc_cache_h)\
+ $(LIB_MAK) $(MAKEDIRS)
$(GLCC) $(GLO_)gscspace.$(OBJ) $(C_) $(GLSRC)gscspace.c
$(GLOBJ)gscicach.$(OBJ) : $(GLSRC)gscicach.c $(AK) $(gx_h)\
@@ -1083,6 +1080,10 @@ $(GLOBJ)gsparams.$(OBJ) : $(GLSRC)gsparams.c $(AK) $(gx_h)\
$(gserrors_h) $(memory__h) $(gsparams_h) $(LIB_MAK) $(MAKEDIRS)
$(GLCC) $(GLO_)gsparams.$(OBJ) $(C_) $(GLSRC)gsparams.c
+$(GLOBJ)gsparaml.$(OBJ) : $(GLSRC)gsparaml.c $(AK) $(gx_h)\
+ $(gserrors_h) $(gsparam_h) $(string__h) $(LIB_MAK) $(MAKEDIRS)
+ $(GLCC) $(GLO_)gsparaml.$(OBJ) $(C_) $(GLSRC)gsparaml.c
+
$(GLOBJ)gspath.$(OBJ) : $(GLSRC)gspath.c $(AK) $(gx_h) $(gserrors_h)\
$(math__h) $(gscoord_h) $(gspath_h)\
$(gxdevice_h) $(gxdevmem_h) $(gxfixed_h) $(gxmatrix_h)\
@@ -1091,10 +1092,11 @@ $(GLOBJ)gspath.$(OBJ) : $(GLSRC)gspath.c $(AK) $(gx_h) $(gserrors_h)\
$(GLOBJ)gsstate.$(OBJ) : $(GLSRC)gsstate.c $(AK) $(gx_h) $(gserrors_h)\
$(memory__h) $(gsstruct_h) $(gsutil_h) $(gzstate_h) $(gxcspace_h)\
- $(gsalpha_h) $(gscolor2_h) $(gscoord_h) $(gscie_h)\
+ $(gscolor2_h) $(gscoord_h) $(gscie_h)\
$(gxclipsr_h) $(gxcmap_h) $(gxdevice_h) $(gxpcache_h)\
$(gzht_h) $(gzline_h) $(gspath_h) $(gzpath_h) $(gzcpath_h)\
- $(gsovrc_h) $(gxcolor2_h) $(gxpcolor_h) $(gsicc_manage_h) $(LIB_MAK) $(MAKEDIRS)
+ $(gsovrc_h) $(gxcolor2_h) $(gscolor3_h) $(gxpcolor_h) $(gsicc_manage_h)\
+ $(gxdevsop_h) $(LIB_MAK) $(MAKEDIRS)
$(GLCC) $(GLO_)gsstate.$(OBJ) $(C_) $(GLSRC)gsstate.c
$(GLOBJ)gstext.$(OBJ) : $(GLSRC)gstext.c $(AK) $(memory__h) $(gdebug_h)\
@@ -1231,7 +1233,7 @@ $(GLOBJ)gdevplnx.$(OBJ) : $(GLSRC)gdevplnx.c $(AK) $(gx_h)\
$(gserrors_h) $(gsbitops_h) $(gsrop_h) $(gsstruct_h) $(gsutil_h)\
$(gdevplnx_h)\
$(gxcmap_h) $(gxdcolor_h) $(gxdevice_h) $(gxdevmem_h) $(gxdither_h)\
- $(gxgetbit_h) $(gxiparam_h) $(gxgstate_h) $(LIB_MAK) $(MAKEDIRS)
+ $(gxgetbit_h) $(gxiparam_h) $(gxgstate_h) $(gsstate_h) $(LIB_MAK) $(MAKEDIRS)
$(GLCC) $(GLO_)gdevplnx.$(OBJ) $(C_) $(GLSRC)gdevplnx.c
### Default driver procedure implementations
@@ -1411,7 +1413,7 @@ $(GLOBJ)gxdownscale.$(OBJ) : $(GLOBJ)gxdownscale_$(WITH_CAL).$(OBJ) $(AK) $(gp_h
###### Create a pseudo-"feature" for the entire graphics library.
LIB0s=$(GLOBJ)gpmisc.$(OBJ) $(GLOBJ)stream.$(OBJ) $(GLOBJ)strmio.$(OBJ)
-LIB1s=$(GLOBJ)gsalloc.$(OBJ) $(GLOBJ)gsalpha.$(OBJ) $(GLOBJ)gxdownscale.$(OBJ) $(downscale_) $(GLOBJ)gdevprn.$(OBJ) $(GLOBJ)gdevflp.$(OBJ) $(GLOBJ)gdevkrnlsclass.$(OBJ) $(GLOBJ)gdevepo.$(OBJ)
+LIB1s=$(GLOBJ)gsalloc.$(OBJ) $(GLOBJ)gxdownscale.$(OBJ) $(downscale_) $(GLOBJ)gdevprn.$(OBJ) $(GLOBJ)gdevflp.$(OBJ) $(GLOBJ)gdevkrnlsclass.$(OBJ) $(GLOBJ)gdevepo.$(OBJ)
LIB2s=$(GLOBJ)gdevmplt.$(OBJ) $(GLOBJ)gsbitcom.$(OBJ) $(GLOBJ)gsbitops.$(OBJ) $(GLOBJ)gsbittab.$(OBJ) $(GLOBJ)gdevoflt.$(OBJ) $(GLOBJ)gdevsclass.$(OBJ)
# Note: gschar.c is no longer required for a standard build;
# we include it only for backward compatibility for library clients.
@@ -2172,7 +2174,7 @@ gxclpath_h=$(GLSRC)gxclpath.h
clbase1_=$(GLOBJ)gxclist.$(OBJ) $(GLOBJ)gxclbits.$(OBJ) $(GLOBJ)gxclpage.$(OBJ)
clbase2_=$(GLOBJ)gxclrast.$(OBJ) $(GLOBJ)gxclread.$(OBJ) $(GLOBJ)gxclrect.$(OBJ)
-clbase3_=$(GLOBJ)gxclutil.$(OBJ) $(GLOBJ)gsparams.$(OBJ) $(GLOBJ)gxshade6.$(OBJ)
+clbase3_=$(GLOBJ)gxclutil.$(OBJ) $(GLOBJ)gsparams.$(OBJ) $(GLOBJ)gsparaml.$(OBJ) $(GLOBJ)gxshade6.$(OBJ)
# gxclrect.c requires rop_proc_table, so we need gsroptab here.
clbase4_=$(GLOBJ)gsroptab.$(OBJ) $(GLOBJ)gsroprun.$(OBJ) $(GLOBJ)stream.$(OBJ)
clpath_=$(GLOBJ)gxclimag.$(OBJ) $(GLOBJ)gxclpath.$(OBJ) $(GLOBJ)gxdhtserial.$(OBJ)
@@ -2386,7 +2388,7 @@ $(GLOBJ)sidscale.$(OBJ) : $(GLSRC)sidscale.c $(AK)\
# -------------- imagemask scaling filter --------------- #
-simscale_=$(GLOBJ)simscale.$(OBJ)
+simscale_=$(GLOBJ)simscale.$(OBJ) $(GLOBJ)simscale_foo.$(OBJ)
$(GLD)simscale.dev : $(LIB_MAK) $(ECHOGS_XE) $(simscale_) $(LIB_MAK) $(MAKEDIRS)
$(SETMOD) $(GLD)simscale $(simscale_)
@@ -2395,6 +2397,10 @@ $(GLOBJ)simscale.$(OBJ) : $(GLSRC)simscale.c $(AK) $(memory__h)\
$(LIB_MAK) $(MAKEDIRS)
$(GLCC) $(GLO_)simscale.$(OBJ) $(C_) $(GLSRC)simscale.c
+$(GLOBJ)simscale_foo.$(OBJ) : $(GLSRC)simscale_foo.c $(AK) $(simscale_foo_h)\
+ $(LIB_MAK) $(MAKEDIRS)
+ $(GLCC) $(GLO_)simscale_foo.$(OBJ) $(C_) $(GLSRC)simscale_foo.c
+
# ---------------- Extended halftone support ---------------- #
# This is only used by one non-PostScript-based project.
@@ -2961,7 +2967,7 @@ $(GLD)sicclib.dev : $(LIB_MAK) $(ECHOGS_XE) $(sicclib_) $(gsicc_) $(md5_)\
$(GLOBJ)gsicc.$(OBJ) : $(GLSRC)gsicc.c $(AK) $(gx_h) $(gserrors_h)\
$(math__h) $(memory__h) $(gsstruct_h) $(stream_h) $(gxcspace_h) $(gxarith_h)\
$(gxcie_h) $(gzstate_h) $(gsicc_h) $(gsicc_cache_h) $(gsicc_cms_h)\
- $(gsicc_manage_h) $(gxdevice_h) $(gsccolor_h) $(LIB_MAK) $(MAKEDIRS)
+ $(gsicc_manage_h) $(gxdevice_h) $(gsccolor_h) $(gxdevsop_h) $(LIB_MAK) $(MAKEDIRS)
$(GLCC) $(GLO_)gsicc.$(OBJ) $(C_) $(GLSRC)gsicc.c
gscms_h=$(GLSRC)gscms.h
@@ -3340,12 +3346,12 @@ $(GLD)romfs0.dev : $(LIB_MAK) $(ECHOGS_XE) $(LIB_MAK) $(MAKEDIRS)
$(GLGEN)gsromfs1_.c : $(MKROMFS_XE) $(PS_ROMFS_DEPS) $(LIB_MAK) $(MAKEDIRS)
$(EXP)$(MKROMFS_XE) -o $(GLGEN)gsromfs1_.c \
$(MKROMFS_FLAGS) -X .svn -X CVS -P $(GLSRCDIR)$(D)..$(D) iccprofiles$(D)* \
- $(PS_ROMFS_ARGS) $(PS_FONT_ROMFS_ARGS) $(GL_ROMFS_ARGS)
+ $(PS_ROMFS_ARGS) $(PS_FONT_ROMFS_ARGS) $(GL_ROMFS_ARGS) $(TESS_ROMFS_ARGS)
$(GLGEN)gsromfs1_1.c : $(MKROMFS_XE) $(PS_ROMFS_DEPS) $(LIB_MAK) $(MAKEDIRS)
$(EXP)$(MKROMFS_XE) -o $(GLGEN)gsromfs1_1.c \
$(MKROMFS_FLAGS) -X .svn -X CVS -P $(GLSRCDIR)$(D)..$(D) iccprofiles$(D)* \
- $(UFST_ROMFS_ARGS) $(PS_ROMFS_ARGS) $(GL_ROMFS_ARGS)
+ $(UFST_ROMFS_ARGS) $(PS_ROMFS_ARGS) $(GL_ROMFS_ARGS) $(TESS_ROMFS_ARGS)
$(GLGEN)gsromfs1.c : $(GLGEN)gsromfs1_$(UFST_BRIDGE).c $(LIB_MAK) $(MAKEDIRS)
$(CP_) $(GLGEN)gsromfs1_$(UFST_BRIDGE).c $(GLGEN)gsromfs1.c
@@ -3355,13 +3361,13 @@ $(GLGEN)pclromfs1_.c : $(MKROMFS_XE) $(LIB_MAK) $(MAKEDIRS)
$(EXP)$(MKROMFS_XE) -o $(GLGEN)pclromfs1_.c \
$(MKROMFS_FLAGS) -X .svn -X CVS -P $(GLSRCDIR)$(D)..$(D) iccprofiles$(D)* \
$(PCLXL_FONT_ROMFS_ARGS) $(PCLXL_ROMFS_ARGS) $(PJL_ROMFS_ARGS) \
- $(PJL_ROMFS_ARGS) $(GL_ROMFS_ARGS)
+ $(PJL_ROMFS_ARGS) $(GL_ROMFS_ARGS) $(TESS_ROMFS_ARGS)
$(GLGEN)pclromfs1_1.c : $(MKROMFS_XE) $(LIB_MAK) $(MAKEDIRS)
$(EXP)$(MKROMFS_XE) -o $(GLGEN)pclromfs1_1.c \
$(MKROMFS_FLAGS) -X .svn -X CVS -P $(GLSRCDIR)$(D)..$(D) iccprofiles$(D)* \
$(UFST_ROMFS_ARGS) $(PCLXL_ROMFS_ARGS) $(PJL_ROMFS_ARGS) \
- $(GL_ROMFS_ARGS)
+ $(GL_ROMFS_ARGS) $(TESS_ROMFS_ARGS)
$(GLGEN)pclromfs1.c : $(GLGEN)pclromfs1_$(UFST_BRIDGE).c $(LIB_MAK) $(MAKEDIRS)
$(CP_) $(GLGEN)pclromfs1_$(UFST_BRIDGE).c $(GLGEN)pclromfs1.c
@@ -3374,7 +3380,7 @@ $(GLGEN)pclromfs0_.c : $(MKROMFS_XE) $(LIB_MAK) $(MAKEDIRS)
$(GLGEN)pclromfs0_1.c : $(MKROMFS_XE) $(LIB_MAK) $(MAKEDIRS)
$(EXP)$(MKROMFS_XE) -o $(GLGEN)pclromfs0_1.c \
$(MKROMFS_FLAGS) -X .svn -X CVS -P $(GLSRCDIR)$(D)..$(D) iccprofiles$(D)* \
- $(GL_ROMFS_ARGS)
+ $(GL_ROMFS_ARGS) $(TESS_ROMFS_ARGS)
$(GLGEN)pclromfs0.c : $(GLGEN)pclromfs0_$(UFST_BRIDGE).c $(LIB_MAK) $(MAKEDIRS)
$(CP_) $(GLGEN)pclromfs0_$(UFST_BRIDGE).c $(GLGEN)pclromfs0.c
@@ -3383,12 +3389,12 @@ $(GLGEN)pclromfs0.c : $(GLGEN)pclromfs0_$(UFST_BRIDGE).c $(LIB_MAK) $(MAKEDIRS)
$(GLGEN)xpsromfs1_.c : $(MKROMFS_XE) $(LIB_MAK) $(MAKEDIRS)
$(EXP)$(MKROMFS_XE) -o $(GLGEN)xpsromfs1_.c \
$(MKROMFS_FLAGS) -X .svn -X CVS -P $(GLSRCDIR)$(D)..$(D) iccprofiles$(D)* \
- $(XPS_ROMFS_ARGS) $(XPS_FONT_ROMFS_ARGS) $(GL_ROMFS_ARGS)
+ $(XPS_ROMFS_ARGS) $(XPS_FONT_ROMFS_ARGS) $(GL_ROMFS_ARGS) $(TESS_ROMFS_ARGS)
$(GLGEN)xpsromfs1_1.c : $(MKROMFS_XE) $(LIB_MAK) $(MAKEDIRS)
$(EXP)$(MKROMFS_XE) -o $(GLGEN)xpsromfs1_1.c \
$(MKROMFS_FLAGS) -X .svn -X CVS -P $(GLSRCDIR)$(D)..$(D) iccprofiles$(D)* \
- $(XPS_ROMFS_ARGS) $(GL_ROMFS_ARGS)
+ $(XPS_ROMFS_ARGS) $(GL_ROMFS_ARGS) $(TESS_ROMFS_ARGS)
$(GLGEN)xpsromfs1.c : $(GLGEN)xpsromfs1_$(UFST_BRIDGE).c $(LIB_MAK) $(MAKEDIRS)
$(CP_) $(GLGEN)xpsromfs1_$(UFST_BRIDGE).c $(GLGEN)xpsromfs1.c
@@ -3396,12 +3402,12 @@ $(GLGEN)xpsromfs1.c : $(GLGEN)xpsromfs1_$(UFST_BRIDGE).c $(LIB_MAK) $(MAKEDIRS)
$(GLGEN)xpsromfs0_.c : $(MKROMFS_XE) $(LIB_MAK) $(MAKEDIRS)
$(EXP)$(MKROMFS_XE) -o $(GLGEN)xpsromfs0_.c \
$(MKROMFS_FLAGS) -X .svn -X CVS -P $(GLSRCDIR)$(D)..$(D) iccprofiles$(D)* \
- $(GL_ROMFS_ARGS)
+ $(GL_ROMFS_ARGS) $(TESS_ROMFS_ARGS)
$(GLGEN)xpsromfs0_1.c : $(MKROMFS_XE) $(LIB_MAK) $(MAKEDIRS)
$(EXP)$(MKROMFS_XE) -o $(GLGEN)xpsromfs0_1.c \
$(MKROMFS_FLAGS) -X .svn -X CVS -P $(GLSRCDIR)$(D)..$(D) iccprofiles$(D)* \
- $(GL_ROMFS_ARGS)
+ $(GL_ROMFS_ARGS) $(TESS_ROMFS_ARGS)
$(GLGEN)xpsromfs0.c : $(GLGEN)xpsromfs0_$(UFST_BRIDGE).c $(LIB_MAK) $(MAKEDIRS)
$(CP_) $(GLGEN)xpsromfs0_$(UFST_BRIDGE).c $(GLGEN)xpsromfs0.c
@@ -3427,7 +3433,7 @@ $(GLGEN)pdlromfs1_.c: $(MKROMFS_XE) $(PS_ROMFS_DEPS) $(LIB_MAK) $(MAKEDIRS)
$(MKROMFS_FLAGS) -X .svn -X CVS -P $(GLSRCDIR)$(D)..$(D) iccprofiles$(D)* \
$(PCLXL_ROMFS_ARGS) $(PCLXL_FONT_ROMFS_ARGS) $(PJL_ROMFS_ARGS) \
$(XPS_ROMFS_ARGS) $(XPS_FONT_ROMFS_ARGS) \
- $(PS_ROMFS_ARGS) $(PS_FONT_ROMFS_ARGS) $(GL_ROMFS_ARGS)
+ $(PS_ROMFS_ARGS) $(PS_FONT_ROMFS_ARGS) $(GL_ROMFS_ARGS) $(TESS_ROMFS_ARGS)
# COMPILE_INITS + UFST variant
$(GLGEN)pdlromfs1_1c0.c : $(GLGEN)pdlromfs1_1.c
@@ -3446,7 +3452,7 @@ $(GLGEN)pdlromfs1_1.c: $(MKROMFS_XE) $(PS_ROMFS_DEPS) $(LIB_MAK) $(MAKEDIRS)
$(EXP)$(MKROMFS_XE) -o $(GLGEN)pdlromfs1_1.c -s 4 \
$(MKROMFS_FLAGS) -X .svn -X CVS -P $(GLSRCDIR)$(D)..$(D) iccprofiles$(D)* \
$(UFST_ROMFS_ARGS) $(PCLXL_ROMFS_ARGS) $(PJL_ROMFS_ARGS) $(XPS_ROMFS_ARGS) \
- $(PS_ROMFS_ARGS) $(GL_ROMFS_ARGS)
+ $(PS_ROMFS_ARGS) $(GL_ROMFS_ARGS) $(TESS_ROMFS_ARGS)
# Rules to fold COMPILE_INITS +/- UFST into 1 set of targets
$(GLGEN)pdlromfs1c0.c : $(GLGEN)pdlromfs1_$(UFST_BRIDGE)c0.c
@@ -3760,143 +3766,143 @@ $(GLOBJ)gslib.$(OBJ) : $(GLSRC)gslib.c $(AK)\
# Dependencies:
$(GLSRC)gdevdcrd.h:$(GLSRC)gxdevcli.h
+$(GLSRC)gdevdcrd.h:$(GLSRC)gxcmap.h
$(GLSRC)gdevdcrd.h:$(GLSRC)gxtext.h
$(GLSRC)gdevdcrd.h:$(GLSRC)gstext.h
$(GLSRC)gdevdcrd.h:$(GLSRC)gsnamecl.h
$(GLSRC)gdevdcrd.h:$(GLSRC)gstparam.h
-$(GLSRC)gdevdcrd.h:$(GLSRC)gxfcache.h
-$(GLSRC)gdevdcrd.h:$(GLSRC)gxcspace.h
-$(GLSRC)gdevdcrd.h:$(GLSRC)gsropt.h
+$(GLSRC)gdevdcrd.h:$(GLSRC)gxfmap.h
$(GLSRC)gdevdcrd.h:$(GLSRC)gsfunc.h
+$(GLSRC)gdevdcrd.h:$(GLSRC)gxcspace.h
$(GLSRC)gdevdcrd.h:$(GLSRC)gxrplane.h
-$(GLSRC)gdevdcrd.h:$(GLSRC)gsuid.h
-$(GLSRC)gdevdcrd.h:$(GLSRC)gxcmap.h
+$(GLSRC)gdevdcrd.h:$(GLSRC)gscsel.h
+$(GLSRC)gdevdcrd.h:$(GLSRC)gxfcache.h
+$(GLSRC)gdevdcrd.h:$(GLSRC)gsfont.h
$(GLSRC)gdevdcrd.h:$(GLSRC)gsimage.h
$(GLSRC)gdevdcrd.h:$(GLSRC)gsdcolor.h
-$(GLSRC)gdevdcrd.h:$(GLSRC)gxdda.h
$(GLSRC)gdevdcrd.h:$(GLSRC)gxcvalue.h
-$(GLSRC)gdevdcrd.h:$(GLSRC)gsfont.h
-$(GLSRC)gdevdcrd.h:$(GLSRC)gxfmap.h
-$(GLSRC)gdevdcrd.h:$(GLSRC)gxftype.h
+$(GLSRC)gdevdcrd.h:$(GLSRC)gxbcache.h
+$(GLSRC)gdevdcrd.h:$(GLSRC)gsropt.h
+$(GLSRC)gdevdcrd.h:$(GLSRC)gxdda.h
+$(GLSRC)gdevdcrd.h:$(GLSRC)gxpath.h
$(GLSRC)gdevdcrd.h:$(GLSRC)gxfrac.h
+$(GLSRC)gdevdcrd.h:$(GLSRC)gxtmap.h
+$(GLSRC)gdevdcrd.h:$(GLSRC)gxftype.h
$(GLSRC)gdevdcrd.h:$(GLSRC)gscms.h
-$(GLSRC)gdevdcrd.h:$(GLSRC)gscspace.h
-$(GLSRC)gdevdcrd.h:$(GLSRC)gxpath.h
-$(GLSRC)gdevdcrd.h:$(GLSRC)gxbcache.h
-$(GLSRC)gdevdcrd.h:$(GLSRC)gsdevice.h
-$(GLSRC)gdevdcrd.h:$(GLSRC)gxarith.h
-$(GLSRC)gdevdcrd.h:$(GLSRC)gspenum.h
-$(GLSRC)gdevdcrd.h:$(GLSRC)gxhttile.h
$(GLSRC)gdevdcrd.h:$(GLSRC)gsrect.h
$(GLSRC)gdevdcrd.h:$(GLSRC)gslparam.h
+$(GLSRC)gdevdcrd.h:$(GLSRC)gsdevice.h
+$(GLSRC)gdevdcrd.h:$(GLSRC)gscpm.h
+$(GLSRC)gdevdcrd.h:$(GLSRC)gscspace.h
+$(GLSRC)gdevdcrd.h:$(GLSRC)gsgstate.h
$(GLSRC)gdevdcrd.h:$(GLSRC)gsxfont.h
-$(GLSRC)gdevdcrd.h:$(GLSRC)gsiparam.h
$(GLSRC)gdevdcrd.h:$(GLSRC)gsdsrc.h
-$(GLSRC)gdevdcrd.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gdevdcrd.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gdevdcrd.h:$(GLSRC)gscpm.h
+$(GLSRC)gdevdcrd.h:$(GLSRC)gsiparam.h
$(GLSRC)gdevdcrd.h:$(GLSRC)gxfixed.h
-$(GLSRC)gdevdcrd.h:$(GLSRC)gsrefct.h
+$(GLSRC)gdevdcrd.h:$(GLSRC)gscompt.h
+$(GLSRC)gdevdcrd.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gdevdcrd.h:$(GLSRC)gspenum.h
+$(GLSRC)gdevdcrd.h:$(GLSRC)gxhttile.h
$(GLSRC)gdevdcrd.h:$(GLSRC)gsparam.h
+$(GLSRC)gdevdcrd.h:$(GLSRC)gsrefct.h
$(GLSRC)gdevdcrd.h:$(GLSRC)gp.h
-$(GLSRC)gdevdcrd.h:$(GLSRC)gsccolor.h
+$(GLSRC)gdevdcrd.h:$(GLSRC)memento.h
+$(GLSRC)gdevdcrd.h:$(GLSRC)memory_.h
+$(GLSRC)gdevdcrd.h:$(GLSRC)gsuid.h
$(GLSRC)gdevdcrd.h:$(GLSRC)gsstruct.h
$(GLSRC)gdevdcrd.h:$(GLSRC)gxsync.h
+$(GLSRC)gdevdcrd.h:$(GLSRC)gxbitmap.h
$(GLSRC)gdevdcrd.h:$(GLSRC)srdline.h
$(GLSRC)gdevdcrd.h:$(GLSRC)scommon.h
-$(GLSRC)gdevdcrd.h:$(GLSRC)memento.h
-$(GLSRC)gdevdcrd.h:$(GLSRC)gscsel.h
$(GLSRC)gdevdcrd.h:$(GLSRC)gsbitmap.h
-$(GLSRC)gdevdcrd.h:$(GLSRC)gsstype.h
+$(GLSRC)gdevdcrd.h:$(GLSRC)gsccolor.h
+$(GLSRC)gdevdcrd.h:$(GLSRC)gxarith.h
$(GLSRC)gdevdcrd.h:$(GLSRC)stat_.h
-$(GLSRC)gdevdcrd.h:$(GLSRC)gxtmap.h
-$(GLSRC)gdevdcrd.h:$(GLSRC)gsmemory.h
$(GLSRC)gdevdcrd.h:$(GLSRC)gpsync.h
-$(GLSRC)gdevdcrd.h:$(GLSRC)memory_.h
+$(GLSRC)gdevdcrd.h:$(GLSRC)gsstype.h
+$(GLSRC)gdevdcrd.h:$(GLSRC)gsmemory.h
$(GLSRC)gdevdcrd.h:$(GLSRC)gpgetenv.h
-$(GLSRC)gdevdcrd.h:$(GLSRC)gslibctx.h
$(GLSRC)gdevdcrd.h:$(GLSRC)gscdefs.h
-$(GLSRC)gdevdcrd.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gdevdcrd.h:$(GLSRC)stdio_.h
-$(GLSRC)gdevdcrd.h:$(GLSRC)gscompt.h
+$(GLSRC)gdevdcrd.h:$(GLSRC)gslibctx.h
$(GLSRC)gdevdcrd.h:$(GLSRC)gxcindex.h
-$(GLSRC)gdevdcrd.h:$(GLSRC)gsgstate.h
+$(GLSRC)gdevdcrd.h:$(GLSRC)stdio_.h
+$(GLSRC)gdevdcrd.h:$(GLSRC)gsccode.h
$(GLSRC)gdevdcrd.h:$(GLSRC)stdint_.h
$(GLSRC)gdevdcrd.h:$(GLSRC)gssprintf.h
-$(GLSRC)gdevdcrd.h:$(GLSRC)gsccode.h
-$(GLSRC)gdevdcrd.h:$(GLSRC)std.h
$(GLSRC)gdevdcrd.h:$(GLSRC)gstypes.h
+$(GLSRC)gdevdcrd.h:$(GLSRC)std.h
$(GLSRC)gdevdcrd.h:$(GLSRC)stdpre.h
$(GLSRC)gdevdcrd.h:$(GLGEN)arch.h
+$(GLSRC)gdevdcrd.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gdevpccm.h:$(GLSRC)gxdevcli.h
+$(GLSRC)gdevpccm.h:$(GLSRC)gxcmap.h
$(GLSRC)gdevpccm.h:$(GLSRC)gxtext.h
$(GLSRC)gdevpccm.h:$(GLSRC)gstext.h
$(GLSRC)gdevpccm.h:$(GLSRC)gsnamecl.h
$(GLSRC)gdevpccm.h:$(GLSRC)gstparam.h
-$(GLSRC)gdevpccm.h:$(GLSRC)gxfcache.h
-$(GLSRC)gdevpccm.h:$(GLSRC)gxcspace.h
-$(GLSRC)gdevpccm.h:$(GLSRC)gsropt.h
+$(GLSRC)gdevpccm.h:$(GLSRC)gxfmap.h
$(GLSRC)gdevpccm.h:$(GLSRC)gsfunc.h
+$(GLSRC)gdevpccm.h:$(GLSRC)gxcspace.h
$(GLSRC)gdevpccm.h:$(GLSRC)gxrplane.h
-$(GLSRC)gdevpccm.h:$(GLSRC)gsuid.h
-$(GLSRC)gdevpccm.h:$(GLSRC)gxcmap.h
+$(GLSRC)gdevpccm.h:$(GLSRC)gscsel.h
+$(GLSRC)gdevpccm.h:$(GLSRC)gxfcache.h
+$(GLSRC)gdevpccm.h:$(GLSRC)gsfont.h
$(GLSRC)gdevpccm.h:$(GLSRC)gsimage.h
$(GLSRC)gdevpccm.h:$(GLSRC)gsdcolor.h
-$(GLSRC)gdevpccm.h:$(GLSRC)gxdda.h
$(GLSRC)gdevpccm.h:$(GLSRC)gxcvalue.h
-$(GLSRC)gdevpccm.h:$(GLSRC)gsfont.h
-$(GLSRC)gdevpccm.h:$(GLSRC)gxfmap.h
-$(GLSRC)gdevpccm.h:$(GLSRC)gxftype.h
+$(GLSRC)gdevpccm.h:$(GLSRC)gxbcache.h
+$(GLSRC)gdevpccm.h:$(GLSRC)gsropt.h
+$(GLSRC)gdevpccm.h:$(GLSRC)gxdda.h
+$(GLSRC)gdevpccm.h:$(GLSRC)gxpath.h
$(GLSRC)gdevpccm.h:$(GLSRC)gxfrac.h
+$(GLSRC)gdevpccm.h:$(GLSRC)gxtmap.h
+$(GLSRC)gdevpccm.h:$(GLSRC)gxftype.h
$(GLSRC)gdevpccm.h:$(GLSRC)gscms.h
-$(GLSRC)gdevpccm.h:$(GLSRC)gscspace.h
-$(GLSRC)gdevpccm.h:$(GLSRC)gxpath.h
-$(GLSRC)gdevpccm.h:$(GLSRC)gxbcache.h
-$(GLSRC)gdevpccm.h:$(GLSRC)gsdevice.h
-$(GLSRC)gdevpccm.h:$(GLSRC)gxarith.h
-$(GLSRC)gdevpccm.h:$(GLSRC)gspenum.h
-$(GLSRC)gdevpccm.h:$(GLSRC)gxhttile.h
$(GLSRC)gdevpccm.h:$(GLSRC)gsrect.h
$(GLSRC)gdevpccm.h:$(GLSRC)gslparam.h
+$(GLSRC)gdevpccm.h:$(GLSRC)gsdevice.h
+$(GLSRC)gdevpccm.h:$(GLSRC)gscpm.h
+$(GLSRC)gdevpccm.h:$(GLSRC)gscspace.h
+$(GLSRC)gdevpccm.h:$(GLSRC)gsgstate.h
$(GLSRC)gdevpccm.h:$(GLSRC)gsxfont.h
-$(GLSRC)gdevpccm.h:$(GLSRC)gsiparam.h
$(GLSRC)gdevpccm.h:$(GLSRC)gsdsrc.h
-$(GLSRC)gdevpccm.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gdevpccm.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gdevpccm.h:$(GLSRC)gscpm.h
+$(GLSRC)gdevpccm.h:$(GLSRC)gsiparam.h
$(GLSRC)gdevpccm.h:$(GLSRC)gxfixed.h
-$(GLSRC)gdevpccm.h:$(GLSRC)gsrefct.h
+$(GLSRC)gdevpccm.h:$(GLSRC)gscompt.h
+$(GLSRC)gdevpccm.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gdevpccm.h:$(GLSRC)gspenum.h
+$(GLSRC)gdevpccm.h:$(GLSRC)gxhttile.h
$(GLSRC)gdevpccm.h:$(GLSRC)gsparam.h
+$(GLSRC)gdevpccm.h:$(GLSRC)gsrefct.h
$(GLSRC)gdevpccm.h:$(GLSRC)gp.h
-$(GLSRC)gdevpccm.h:$(GLSRC)gsccolor.h
+$(GLSRC)gdevpccm.h:$(GLSRC)memento.h
+$(GLSRC)gdevpccm.h:$(GLSRC)memory_.h
+$(GLSRC)gdevpccm.h:$(GLSRC)gsuid.h
$(GLSRC)gdevpccm.h:$(GLSRC)gsstruct.h
$(GLSRC)gdevpccm.h:$(GLSRC)gxsync.h
+$(GLSRC)gdevpccm.h:$(GLSRC)gxbitmap.h
$(GLSRC)gdevpccm.h:$(GLSRC)srdline.h
$(GLSRC)gdevpccm.h:$(GLSRC)scommon.h
-$(GLSRC)gdevpccm.h:$(GLSRC)memento.h
-$(GLSRC)gdevpccm.h:$(GLSRC)gscsel.h
$(GLSRC)gdevpccm.h:$(GLSRC)gsbitmap.h
-$(GLSRC)gdevpccm.h:$(GLSRC)gsstype.h
+$(GLSRC)gdevpccm.h:$(GLSRC)gsccolor.h
+$(GLSRC)gdevpccm.h:$(GLSRC)gxarith.h
$(GLSRC)gdevpccm.h:$(GLSRC)stat_.h
-$(GLSRC)gdevpccm.h:$(GLSRC)gxtmap.h
-$(GLSRC)gdevpccm.h:$(GLSRC)gsmemory.h
$(GLSRC)gdevpccm.h:$(GLSRC)gpsync.h
-$(GLSRC)gdevpccm.h:$(GLSRC)memory_.h
+$(GLSRC)gdevpccm.h:$(GLSRC)gsstype.h
+$(GLSRC)gdevpccm.h:$(GLSRC)gsmemory.h
$(GLSRC)gdevpccm.h:$(GLSRC)gpgetenv.h
-$(GLSRC)gdevpccm.h:$(GLSRC)gslibctx.h
$(GLSRC)gdevpccm.h:$(GLSRC)gscdefs.h
-$(GLSRC)gdevpccm.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gdevpccm.h:$(GLSRC)stdio_.h
-$(GLSRC)gdevpccm.h:$(GLSRC)gscompt.h
+$(GLSRC)gdevpccm.h:$(GLSRC)gslibctx.h
$(GLSRC)gdevpccm.h:$(GLSRC)gxcindex.h
-$(GLSRC)gdevpccm.h:$(GLSRC)gsgstate.h
+$(GLSRC)gdevpccm.h:$(GLSRC)stdio_.h
+$(GLSRC)gdevpccm.h:$(GLSRC)gsccode.h
$(GLSRC)gdevpccm.h:$(GLSRC)stdint_.h
$(GLSRC)gdevpccm.h:$(GLSRC)gssprintf.h
-$(GLSRC)gdevpccm.h:$(GLSRC)gsccode.h
-$(GLSRC)gdevpccm.h:$(GLSRC)std.h
$(GLSRC)gdevpccm.h:$(GLSRC)gstypes.h
+$(GLSRC)gdevpccm.h:$(GLSRC)std.h
$(GLSRC)gdevpccm.h:$(GLSRC)stdpre.h
$(GLSRC)gdevpccm.h:$(GLGEN)arch.h
+$(GLSRC)gdevpccm.h:$(GLSRC)gs_dll_call.h
$(GLSRC)stdint_.h:$(GLSRC)std.h
$(GLSRC)stdint_.h:$(GLSRC)stdpre.h
$(GLSRC)stdint_.h:$(GLGEN)arch.h
@@ -3905,49 +3911,49 @@ $(GLSRC)srdline.h:$(GLSRC)scommon.h
$(GLSRC)srdline.h:$(GLSRC)gsstype.h
$(GLSRC)srdline.h:$(GLSRC)gsmemory.h
$(GLSRC)srdline.h:$(GLSRC)gslibctx.h
-$(GLSRC)srdline.h:$(GLSRC)gs_dll_call.h
$(GLSRC)srdline.h:$(GLSRC)stdio_.h
$(GLSRC)srdline.h:$(GLSRC)stdint_.h
$(GLSRC)srdline.h:$(GLSRC)gssprintf.h
-$(GLSRC)srdline.h:$(GLSRC)std.h
$(GLSRC)srdline.h:$(GLSRC)gstypes.h
+$(GLSRC)srdline.h:$(GLSRC)std.h
$(GLSRC)srdline.h:$(GLSRC)stdpre.h
$(GLSRC)srdline.h:$(GLGEN)arch.h
+$(GLSRC)srdline.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gpmisc.h:$(GLSRC)gp.h
+$(GLSRC)gpmisc.h:$(GLSRC)memory_.h
$(GLSRC)gpmisc.h:$(GLSRC)srdline.h
$(GLSRC)gpmisc.h:$(GLSRC)scommon.h
-$(GLSRC)gpmisc.h:$(GLSRC)gsstype.h
$(GLSRC)gpmisc.h:$(GLSRC)stat_.h
+$(GLSRC)gpmisc.h:$(GLSRC)gsstype.h
$(GLSRC)gpmisc.h:$(GLSRC)gsmemory.h
-$(GLSRC)gpmisc.h:$(GLSRC)memory_.h
$(GLSRC)gpmisc.h:$(GLSRC)gpgetenv.h
-$(GLSRC)gpmisc.h:$(GLSRC)gslibctx.h
$(GLSRC)gpmisc.h:$(GLSRC)gscdefs.h
-$(GLSRC)gpmisc.h:$(GLSRC)gs_dll_call.h
+$(GLSRC)gpmisc.h:$(GLSRC)gslibctx.h
$(GLSRC)gpmisc.h:$(GLSRC)stdio_.h
$(GLSRC)gpmisc.h:$(GLSRC)stdint_.h
$(GLSRC)gpmisc.h:$(GLSRC)gssprintf.h
-$(GLSRC)gpmisc.h:$(GLSRC)std.h
$(GLSRC)gpmisc.h:$(GLSRC)gstypes.h
+$(GLSRC)gpmisc.h:$(GLSRC)std.h
$(GLSRC)gpmisc.h:$(GLSRC)stdpre.h
$(GLSRC)gpmisc.h:$(GLGEN)arch.h
+$(GLSRC)gpmisc.h:$(GLSRC)gs_dll_call.h
+$(GLSRC)gp.h:$(GLSRC)memory_.h
$(GLSRC)gp.h:$(GLSRC)srdline.h
$(GLSRC)gp.h:$(GLSRC)scommon.h
-$(GLSRC)gp.h:$(GLSRC)gsstype.h
$(GLSRC)gp.h:$(GLSRC)stat_.h
+$(GLSRC)gp.h:$(GLSRC)gsstype.h
$(GLSRC)gp.h:$(GLSRC)gsmemory.h
-$(GLSRC)gp.h:$(GLSRC)memory_.h
$(GLSRC)gp.h:$(GLSRC)gpgetenv.h
-$(GLSRC)gp.h:$(GLSRC)gslibctx.h
$(GLSRC)gp.h:$(GLSRC)gscdefs.h
-$(GLSRC)gp.h:$(GLSRC)gs_dll_call.h
+$(GLSRC)gp.h:$(GLSRC)gslibctx.h
$(GLSRC)gp.h:$(GLSRC)stdio_.h
$(GLSRC)gp.h:$(GLSRC)stdint_.h
$(GLSRC)gp.h:$(GLSRC)gssprintf.h
-$(GLSRC)gp.h:$(GLSRC)std.h
$(GLSRC)gp.h:$(GLSRC)gstypes.h
+$(GLSRC)gp.h:$(GLSRC)std.h
$(GLSRC)gp.h:$(GLSRC)stdpre.h
$(GLSRC)gp.h:$(GLGEN)arch.h
+$(GLSRC)gp.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gpcheck.h:$(GLSRC)std.h
$(GLSRC)gpcheck.h:$(GLSRC)stdpre.h
$(GLSRC)gpcheck.h:$(GLGEN)arch.h
@@ -4013,16 +4019,17 @@ $(GLSRC)pipe_.h:$(GLSRC)stdpre.h
$(GLSRC)pipe_.h:$(GLGEN)arch.h
$(GLSRC)jerror_.h:$(JSRCDIR)$(D)jerror.h
$(GLSRC)gxstdio.h:$(GLSRC)gsio.h
-$(GLSRC)gslibctx.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gslibctx.h:$(GLSRC)stdio_.h
$(GLSRC)gslibctx.h:$(GLSRC)gssprintf.h
$(GLSRC)gslibctx.h:$(GLSRC)std.h
$(GLSRC)gslibctx.h:$(GLSRC)stdpre.h
$(GLSRC)gslibctx.h:$(GLGEN)arch.h
+$(GLSRC)gslibctx.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gdebug.h:$(GLSRC)gdbflags.h
$(GLSRC)gdebug.h:$(GLSRC)std.h
$(GLSRC)gdebug.h:$(GLSRC)stdpre.h
$(GLSRC)gdebug.h:$(GLGEN)arch.h
+$(GLSRC)gsalloc.h:$(GLSRC)stdint_.h
$(GLSRC)gsalloc.h:$(GLSRC)std.h
$(GLSRC)gsalloc.h:$(GLSRC)stdpre.h
$(GLSRC)gsalloc.h:$(GLGEN)arch.h
@@ -4033,21 +4040,22 @@ $(GLSRC)gsexit.h:$(GLSRC)std.h
$(GLSRC)gsexit.h:$(GLSRC)stdpre.h
$(GLSRC)gsexit.h:$(GLGEN)arch.h
$(GLSRC)gsgc.h:$(GLSRC)gsalloc.h
+$(GLSRC)gsgc.h:$(GLSRC)stdint_.h
$(GLSRC)gsgc.h:$(GLSRC)std.h
$(GLSRC)gsgc.h:$(GLSRC)stdpre.h
$(GLSRC)gsgc.h:$(GLGEN)arch.h
$(GLSRC)gsmalloc.h:$(GLSRC)gxsync.h
-$(GLSRC)gsmalloc.h:$(GLSRC)gsmemory.h
$(GLSRC)gsmalloc.h:$(GLSRC)gpsync.h
+$(GLSRC)gsmalloc.h:$(GLSRC)gsmemory.h
$(GLSRC)gsmalloc.h:$(GLSRC)gslibctx.h
-$(GLSRC)gsmalloc.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gsmalloc.h:$(GLSRC)stdio_.h
$(GLSRC)gsmalloc.h:$(GLSRC)stdint_.h
$(GLSRC)gsmalloc.h:$(GLSRC)gssprintf.h
-$(GLSRC)gsmalloc.h:$(GLSRC)std.h
$(GLSRC)gsmalloc.h:$(GLSRC)gstypes.h
+$(GLSRC)gsmalloc.h:$(GLSRC)std.h
$(GLSRC)gsmalloc.h:$(GLSRC)stdpre.h
$(GLSRC)gsmalloc.h:$(GLGEN)arch.h
+$(GLSRC)gsmalloc.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gsmchunk.h:$(GLSRC)std.h
$(GLSRC)gsmchunk.h:$(GLSRC)stdpre.h
$(GLSRC)gsmchunk.h:$(GLGEN)arch.h
@@ -4055,24 +4063,25 @@ $(GLSRC)valgrind.h:$(GLSRC)stdpre.h
$(GLSRC)gsmdebug.h:$(GLSRC)valgrind.h
$(GLSRC)gsmdebug.h:$(GLSRC)stdpre.h
$(GLSRC)gsmemory.h:$(GLSRC)gslibctx.h
-$(GLSRC)gsmemory.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gsmemory.h:$(GLSRC)stdio_.h
$(GLSRC)gsmemory.h:$(GLSRC)gssprintf.h
-$(GLSRC)gsmemory.h:$(GLSRC)std.h
$(GLSRC)gsmemory.h:$(GLSRC)gstypes.h
+$(GLSRC)gsmemory.h:$(GLSRC)std.h
$(GLSRC)gsmemory.h:$(GLSRC)stdpre.h
$(GLSRC)gsmemory.h:$(GLGEN)arch.h
+$(GLSRC)gsmemory.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gsmemret.h:$(GLSRC)gsmemory.h
$(GLSRC)gsmemret.h:$(GLSRC)gslibctx.h
-$(GLSRC)gsmemret.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gsmemret.h:$(GLSRC)stdio_.h
$(GLSRC)gsmemret.h:$(GLSRC)gssprintf.h
-$(GLSRC)gsmemret.h:$(GLSRC)std.h
$(GLSRC)gsmemret.h:$(GLSRC)gstypes.h
+$(GLSRC)gsmemret.h:$(GLSRC)std.h
$(GLSRC)gsmemret.h:$(GLSRC)stdpre.h
$(GLSRC)gsmemret.h:$(GLGEN)arch.h
+$(GLSRC)gsmemret.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gsnogc.h:$(GLSRC)gsgc.h
$(GLSRC)gsnogc.h:$(GLSRC)gsalloc.h
+$(GLSRC)gsnogc.h:$(GLSRC)stdint_.h
$(GLSRC)gsnogc.h:$(GLSRC)std.h
$(GLSRC)gsnogc.h:$(GLSRC)stdpre.h
$(GLSRC)gsnogc.h:$(GLGEN)arch.h
@@ -4083,472 +4092,472 @@ $(GLSRC)gsrefct.h:$(GLGEN)arch.h
$(GLSRC)gsserial.h:$(GLSRC)stdpre.h
$(GLSRC)gsstype.h:$(GLSRC)gsmemory.h
$(GLSRC)gsstype.h:$(GLSRC)gslibctx.h
-$(GLSRC)gsstype.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gsstype.h:$(GLSRC)stdio_.h
$(GLSRC)gsstype.h:$(GLSRC)gssprintf.h
-$(GLSRC)gsstype.h:$(GLSRC)std.h
$(GLSRC)gsstype.h:$(GLSRC)gstypes.h
+$(GLSRC)gsstype.h:$(GLSRC)std.h
$(GLSRC)gsstype.h:$(GLSRC)stdpre.h
$(GLSRC)gsstype.h:$(GLGEN)arch.h
+$(GLSRC)gsstype.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gx.h:$(GLSRC)gdebug.h
+$(GLSRC)gx.h:$(GLSRC)gsgstate.h
$(GLSRC)gx.h:$(GLSRC)gsio.h
$(GLSRC)gx.h:$(GLSRC)gdbflags.h
$(GLSRC)gx.h:$(GLSRC)gserrors.h
$(GLSRC)gx.h:$(GLSRC)gsmemory.h
$(GLSRC)gx.h:$(GLSRC)gslibctx.h
-$(GLSRC)gx.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gx.h:$(GLSRC)stdio_.h
-$(GLSRC)gx.h:$(GLSRC)gsgstate.h
$(GLSRC)gx.h:$(GLSRC)gssprintf.h
-$(GLSRC)gx.h:$(GLSRC)std.h
$(GLSRC)gx.h:$(GLSRC)gstypes.h
+$(GLSRC)gx.h:$(GLSRC)std.h
$(GLSRC)gx.h:$(GLSRC)stdpre.h
$(GLSRC)gx.h:$(GLGEN)arch.h
-$(GLSRC)gxsync.h:$(GLSRC)gsmemory.h
+$(GLSRC)gx.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxsync.h:$(GLSRC)gpsync.h
+$(GLSRC)gxsync.h:$(GLSRC)gsmemory.h
$(GLSRC)gxsync.h:$(GLSRC)gslibctx.h
-$(GLSRC)gxsync.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxsync.h:$(GLSRC)stdio_.h
$(GLSRC)gxsync.h:$(GLSRC)stdint_.h
$(GLSRC)gxsync.h:$(GLSRC)gssprintf.h
-$(GLSRC)gxsync.h:$(GLSRC)std.h
$(GLSRC)gxsync.h:$(GLSRC)gstypes.h
+$(GLSRC)gxsync.h:$(GLSRC)std.h
$(GLSRC)gxsync.h:$(GLSRC)stdpre.h
$(GLSRC)gxsync.h:$(GLGEN)arch.h
+$(GLSRC)gxsync.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxclthrd.h:$(GLSRC)gxclist.h
$(GLSRC)gxclthrd.h:$(GLSRC)gxgstate.h
-$(GLSRC)gxclthrd.h:$(GLSRC)gxline.h
$(GLSRC)gxclthrd.h:$(GLSRC)gstrans.h
+$(GLSRC)gxclthrd.h:$(GLSRC)gdevp14.h
+$(GLSRC)gxclthrd.h:$(GLSRC)gxline.h
$(GLSRC)gxclthrd.h:$(GLSRC)gsht1.h
+$(GLSRC)gxclthrd.h:$(GLSRC)gxcomp.h
$(GLSRC)gxclthrd.h:$(GLSRC)math_.h
-$(GLSRC)gxclthrd.h:$(GLSRC)gdevp14.h
$(GLSRC)gxclthrd.h:$(GLSRC)gxcolor2.h
$(GLSRC)gxclthrd.h:$(GLSRC)gxpcolor.h
+$(GLSRC)gxclthrd.h:$(GLSRC)gxdevmem.h
$(GLSRC)gxclthrd.h:$(GLSRC)gdevdevn.h
-$(GLSRC)gxclthrd.h:$(GLSRC)gsequivc.h
-$(GLSRC)gxclthrd.h:$(GLSRC)gxblend.h
$(GLSRC)gxclthrd.h:$(GLSRC)gxclipsr.h
-$(GLSRC)gxclthrd.h:$(GLSRC)gxcomp.h
-$(GLSRC)gxclthrd.h:$(GLSRC)gxdcolor.h
-$(GLSRC)gxclthrd.h:$(GLSRC)gxmatrix.h
-$(GLSRC)gxclthrd.h:$(GLSRC)gxbitfmt.h
$(GLSRC)gxclthrd.h:$(GLSRC)gxdevbuf.h
+$(GLSRC)gxclthrd.h:$(GLSRC)gxdcolor.h
$(GLSRC)gxclthrd.h:$(GLSRC)gxband.h
+$(GLSRC)gxclthrd.h:$(GLSRC)gxblend.h
$(GLSRC)gxclthrd.h:$(GLSRC)gscolor2.h
-$(GLSRC)gxclthrd.h:$(GLSRC)gscindex.h
+$(GLSRC)gxclthrd.h:$(GLSRC)gxmatrix.h
$(GLSRC)gxclthrd.h:$(GLSRC)gxdevice.h
-$(GLSRC)gxclthrd.h:$(GLSRC)gsht.h
$(GLSRC)gxclthrd.h:$(GLSRC)gxcpath.h
-$(GLSRC)gxclthrd.h:$(GLSRC)gxdevmem.h
+$(GLSRC)gxclthrd.h:$(GLSRC)gsht.h
+$(GLSRC)gxclthrd.h:$(GLSRC)gsequivc.h
$(GLSRC)gxclthrd.h:$(GLSRC)gxdevcli.h
$(GLSRC)gxclthrd.h:$(GLSRC)gxpcache.h
+$(GLSRC)gxclthrd.h:$(GLSRC)gscindex.h
+$(GLSRC)gxclthrd.h:$(GLSRC)gxcmap.h
$(GLSRC)gxclthrd.h:$(GLSRC)gsptype1.h
-$(GLSRC)gxclthrd.h:$(GLSRC)gxtext.h
$(GLSRC)gxclthrd.h:$(GLSRC)gscie.h
+$(GLSRC)gxclthrd.h:$(GLSRC)gxtext.h
$(GLSRC)gxclthrd.h:$(GLSRC)gstext.h
+$(GLSRC)gxclthrd.h:$(GLSRC)gxstate.h
$(GLSRC)gxclthrd.h:$(GLSRC)gsnamecl.h
$(GLSRC)gxclthrd.h:$(GLSRC)gstparam.h
-$(GLSRC)gxclthrd.h:$(GLSRC)gxstate.h
$(GLSRC)gxclthrd.h:$(GLSRC)gspcolor.h
-$(GLSRC)gxclthrd.h:$(GLSRC)gxfcache.h
-$(GLSRC)gxclthrd.h:$(GLSRC)gxcspace.h
-$(GLSRC)gxclthrd.h:$(GLSRC)gsropt.h
-$(GLSRC)gxclthrd.h:$(GLSRC)gsfunc.h
+$(GLSRC)gxclthrd.h:$(GLSRC)gxfmap.h
$(GLSRC)gxclthrd.h:$(GLSRC)gsmalloc.h
-$(GLSRC)gxclthrd.h:$(GLSRC)gxrplane.h
+$(GLSRC)gxclthrd.h:$(GLSRC)gsfunc.h
+$(GLSRC)gxclthrd.h:$(GLSRC)gxcspace.h
$(GLSRC)gxclthrd.h:$(GLSRC)gxctable.h
-$(GLSRC)gxclthrd.h:$(GLSRC)gsuid.h
-$(GLSRC)gxclthrd.h:$(GLSRC)gxcmap.h
+$(GLSRC)gxclthrd.h:$(GLSRC)gxrplane.h
+$(GLSRC)gxclthrd.h:$(GLSRC)gscsel.h
+$(GLSRC)gxclthrd.h:$(GLSRC)gxfcache.h
+$(GLSRC)gxclthrd.h:$(GLSRC)gsfont.h
$(GLSRC)gxclthrd.h:$(GLSRC)gsimage.h
$(GLSRC)gxclthrd.h:$(GLSRC)gsdcolor.h
-$(GLSRC)gxclthrd.h:$(GLSRC)gxdda.h
$(GLSRC)gxclthrd.h:$(GLSRC)gxcvalue.h
-$(GLSRC)gxclthrd.h:$(GLSRC)gsfont.h
-$(GLSRC)gxclthrd.h:$(GLSRC)gxfmap.h
+$(GLSRC)gxclthrd.h:$(GLSRC)gxbcache.h
+$(GLSRC)gxclthrd.h:$(GLSRC)gsropt.h
+$(GLSRC)gxclthrd.h:$(GLSRC)gxdda.h
+$(GLSRC)gxclthrd.h:$(GLSRC)gxpath.h
$(GLSRC)gxclthrd.h:$(GLSRC)gxiclass.h
-$(GLSRC)gxclthrd.h:$(GLSRC)gxftype.h
$(GLSRC)gxclthrd.h:$(GLSRC)gxfrac.h
+$(GLSRC)gxclthrd.h:$(GLSRC)gxtmap.h
+$(GLSRC)gxclthrd.h:$(GLSRC)gxftype.h
$(GLSRC)gxclthrd.h:$(GLSRC)gscms.h
-$(GLSRC)gxclthrd.h:$(GLSRC)gscspace.h
-$(GLSRC)gxclthrd.h:$(GLSRC)gxpath.h
-$(GLSRC)gxclthrd.h:$(GLSRC)gxbcache.h
-$(GLSRC)gxclthrd.h:$(GLSRC)gsdevice.h
-$(GLSRC)gxclthrd.h:$(GLSRC)gxarith.h
-$(GLSRC)gxclthrd.h:$(GLSRC)gxstdio.h
-$(GLSRC)gxclthrd.h:$(GLSRC)gspenum.h
-$(GLSRC)gxclthrd.h:$(GLSRC)gxhttile.h
$(GLSRC)gxclthrd.h:$(GLSRC)gsrect.h
$(GLSRC)gxclthrd.h:$(GLSRC)gslparam.h
+$(GLSRC)gxclthrd.h:$(GLSRC)gsdevice.h
+$(GLSRC)gxclthrd.h:$(GLSRC)gxbitfmt.h
+$(GLSRC)gxclthrd.h:$(GLSRC)gscpm.h
+$(GLSRC)gxclthrd.h:$(GLSRC)gscspace.h
+$(GLSRC)gxclthrd.h:$(GLSRC)gsgstate.h
+$(GLSRC)gxclthrd.h:$(GLSRC)gxstdio.h
$(GLSRC)gxclthrd.h:$(GLSRC)gsxfont.h
-$(GLSRC)gxclthrd.h:$(GLSRC)gxclio.h
-$(GLSRC)gxclthrd.h:$(GLSRC)gsiparam.h
$(GLSRC)gxclthrd.h:$(GLSRC)gsdsrc.h
$(GLSRC)gxclthrd.h:$(GLSRC)gsio.h
-$(GLSRC)gxclthrd.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gxclthrd.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gxclthrd.h:$(GLSRC)gscpm.h
+$(GLSRC)gxclthrd.h:$(GLSRC)gsiparam.h
$(GLSRC)gxclthrd.h:$(GLSRC)gxfixed.h
-$(GLSRC)gxclthrd.h:$(GLSRC)gsrefct.h
+$(GLSRC)gxclthrd.h:$(GLSRC)gxclio.h
+$(GLSRC)gxclthrd.h:$(GLSRC)gscompt.h
+$(GLSRC)gxclthrd.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gxclthrd.h:$(GLSRC)gspenum.h
+$(GLSRC)gxclthrd.h:$(GLSRC)gxhttile.h
$(GLSRC)gxclthrd.h:$(GLSRC)gsparam.h
+$(GLSRC)gxclthrd.h:$(GLSRC)gsrefct.h
$(GLSRC)gxclthrd.h:$(GLSRC)gp.h
-$(GLSRC)gxclthrd.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxclthrd.h:$(GLSRC)memento.h
+$(GLSRC)gxclthrd.h:$(GLSRC)memory_.h
+$(GLSRC)gxclthrd.h:$(GLSRC)gsuid.h
$(GLSRC)gxclthrd.h:$(GLSRC)gsstruct.h
$(GLSRC)gxclthrd.h:$(GLSRC)gxsync.h
+$(GLSRC)gxclthrd.h:$(GLSRC)gxbitmap.h
+$(GLSRC)gxclthrd.h:$(GLSRC)vmsmath.h
$(GLSRC)gxclthrd.h:$(GLSRC)srdline.h
$(GLSRC)gxclthrd.h:$(GLSRC)scommon.h
-$(GLSRC)gxclthrd.h:$(GLSRC)memento.h
-$(GLSRC)gxclthrd.h:$(GLSRC)vmsmath.h
-$(GLSRC)gxclthrd.h:$(GLSRC)gscsel.h
-$(GLSRC)gxclthrd.h:$(GLSRC)gsbitmap.h
$(GLSRC)gxclthrd.h:$(GLSRC)gsfname.h
-$(GLSRC)gxclthrd.h:$(GLSRC)gsstype.h
+$(GLSRC)gxclthrd.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gxclthrd.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxclthrd.h:$(GLSRC)gxarith.h
$(GLSRC)gxclthrd.h:$(GLSRC)stat_.h
-$(GLSRC)gxclthrd.h:$(GLSRC)gxtmap.h
-$(GLSRC)gxclthrd.h:$(GLSRC)gsmemory.h
$(GLSRC)gxclthrd.h:$(GLSRC)gpsync.h
-$(GLSRC)gxclthrd.h:$(GLSRC)memory_.h
+$(GLSRC)gxclthrd.h:$(GLSRC)gsstype.h
+$(GLSRC)gxclthrd.h:$(GLSRC)gsmemory.h
$(GLSRC)gxclthrd.h:$(GLSRC)gpgetenv.h
-$(GLSRC)gxclthrd.h:$(GLSRC)gslibctx.h
$(GLSRC)gxclthrd.h:$(GLSRC)gscdefs.h
-$(GLSRC)gxclthrd.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gxclthrd.h:$(GLSRC)stdio_.h
-$(GLSRC)gxclthrd.h:$(GLSRC)gscompt.h
+$(GLSRC)gxclthrd.h:$(GLSRC)gslibctx.h
$(GLSRC)gxclthrd.h:$(GLSRC)gxcindex.h
-$(GLSRC)gxclthrd.h:$(GLSRC)gsgstate.h
+$(GLSRC)gxclthrd.h:$(GLSRC)stdio_.h
+$(GLSRC)gxclthrd.h:$(GLSRC)gsccode.h
$(GLSRC)gxclthrd.h:$(GLSRC)stdint_.h
$(GLSRC)gxclthrd.h:$(GLSRC)gssprintf.h
-$(GLSRC)gxclthrd.h:$(GLSRC)gsccode.h
-$(GLSRC)gxclthrd.h:$(GLSRC)std.h
$(GLSRC)gxclthrd.h:$(GLSRC)gstypes.h
+$(GLSRC)gxclthrd.h:$(GLSRC)std.h
$(GLSRC)gxclthrd.h:$(GLSRC)stdpre.h
$(GLSRC)gxclthrd.h:$(GLGEN)arch.h
+$(GLSRC)gxclthrd.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxdevsop.h:$(GLSRC)gxdevcli.h
+$(GLSRC)gxdevsop.h:$(GLSRC)gxcmap.h
$(GLSRC)gxdevsop.h:$(GLSRC)gxtext.h
$(GLSRC)gxdevsop.h:$(GLSRC)gstext.h
$(GLSRC)gxdevsop.h:$(GLSRC)gsnamecl.h
$(GLSRC)gxdevsop.h:$(GLSRC)gstparam.h
-$(GLSRC)gxdevsop.h:$(GLSRC)gxfcache.h
-$(GLSRC)gxdevsop.h:$(GLSRC)gxcspace.h
-$(GLSRC)gxdevsop.h:$(GLSRC)gsropt.h
+$(GLSRC)gxdevsop.h:$(GLSRC)gxfmap.h
$(GLSRC)gxdevsop.h:$(GLSRC)gsfunc.h
+$(GLSRC)gxdevsop.h:$(GLSRC)gxcspace.h
$(GLSRC)gxdevsop.h:$(GLSRC)gxrplane.h
-$(GLSRC)gxdevsop.h:$(GLSRC)gsuid.h
-$(GLSRC)gxdevsop.h:$(GLSRC)gxcmap.h
+$(GLSRC)gxdevsop.h:$(GLSRC)gscsel.h
+$(GLSRC)gxdevsop.h:$(GLSRC)gxfcache.h
+$(GLSRC)gxdevsop.h:$(GLSRC)gsfont.h
$(GLSRC)gxdevsop.h:$(GLSRC)gsimage.h
$(GLSRC)gxdevsop.h:$(GLSRC)gsdcolor.h
-$(GLSRC)gxdevsop.h:$(GLSRC)gxdda.h
$(GLSRC)gxdevsop.h:$(GLSRC)gxcvalue.h
-$(GLSRC)gxdevsop.h:$(GLSRC)gsfont.h
-$(GLSRC)gxdevsop.h:$(GLSRC)gxfmap.h
-$(GLSRC)gxdevsop.h:$(GLSRC)gxftype.h
+$(GLSRC)gxdevsop.h:$(GLSRC)gxbcache.h
+$(GLSRC)gxdevsop.h:$(GLSRC)gsropt.h
+$(GLSRC)gxdevsop.h:$(GLSRC)gxdda.h
+$(GLSRC)gxdevsop.h:$(GLSRC)gxpath.h
$(GLSRC)gxdevsop.h:$(GLSRC)gxfrac.h
+$(GLSRC)gxdevsop.h:$(GLSRC)gxtmap.h
+$(GLSRC)gxdevsop.h:$(GLSRC)gxftype.h
$(GLSRC)gxdevsop.h:$(GLSRC)gscms.h
-$(GLSRC)gxdevsop.h:$(GLSRC)gscspace.h
-$(GLSRC)gxdevsop.h:$(GLSRC)gxpath.h
-$(GLSRC)gxdevsop.h:$(GLSRC)gxbcache.h
-$(GLSRC)gxdevsop.h:$(GLSRC)gsdevice.h
-$(GLSRC)gxdevsop.h:$(GLSRC)gxarith.h
-$(GLSRC)gxdevsop.h:$(GLSRC)gspenum.h
-$(GLSRC)gxdevsop.h:$(GLSRC)gxhttile.h
$(GLSRC)gxdevsop.h:$(GLSRC)gsrect.h
$(GLSRC)gxdevsop.h:$(GLSRC)gslparam.h
+$(GLSRC)gxdevsop.h:$(GLSRC)gsdevice.h
+$(GLSRC)gxdevsop.h:$(GLSRC)gscpm.h
+$(GLSRC)gxdevsop.h:$(GLSRC)gscspace.h
+$(GLSRC)gxdevsop.h:$(GLSRC)gsgstate.h
$(GLSRC)gxdevsop.h:$(GLSRC)gsxfont.h
-$(GLSRC)gxdevsop.h:$(GLSRC)gsiparam.h
$(GLSRC)gxdevsop.h:$(GLSRC)gsdsrc.h
-$(GLSRC)gxdevsop.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gxdevsop.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gxdevsop.h:$(GLSRC)gscpm.h
+$(GLSRC)gxdevsop.h:$(GLSRC)gsiparam.h
$(GLSRC)gxdevsop.h:$(GLSRC)gxfixed.h
-$(GLSRC)gxdevsop.h:$(GLSRC)gsrefct.h
+$(GLSRC)gxdevsop.h:$(GLSRC)gscompt.h
+$(GLSRC)gxdevsop.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gxdevsop.h:$(GLSRC)gspenum.h
+$(GLSRC)gxdevsop.h:$(GLSRC)gxhttile.h
$(GLSRC)gxdevsop.h:$(GLSRC)gsparam.h
+$(GLSRC)gxdevsop.h:$(GLSRC)gsrefct.h
$(GLSRC)gxdevsop.h:$(GLSRC)gp.h
-$(GLSRC)gxdevsop.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxdevsop.h:$(GLSRC)memento.h
+$(GLSRC)gxdevsop.h:$(GLSRC)memory_.h
+$(GLSRC)gxdevsop.h:$(GLSRC)gsuid.h
$(GLSRC)gxdevsop.h:$(GLSRC)gsstruct.h
$(GLSRC)gxdevsop.h:$(GLSRC)gxsync.h
+$(GLSRC)gxdevsop.h:$(GLSRC)gxbitmap.h
$(GLSRC)gxdevsop.h:$(GLSRC)srdline.h
$(GLSRC)gxdevsop.h:$(GLSRC)scommon.h
-$(GLSRC)gxdevsop.h:$(GLSRC)memento.h
-$(GLSRC)gxdevsop.h:$(GLSRC)gscsel.h
$(GLSRC)gxdevsop.h:$(GLSRC)gsbitmap.h
-$(GLSRC)gxdevsop.h:$(GLSRC)gsstype.h
+$(GLSRC)gxdevsop.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxdevsop.h:$(GLSRC)gxarith.h
$(GLSRC)gxdevsop.h:$(GLSRC)stat_.h
-$(GLSRC)gxdevsop.h:$(GLSRC)gxtmap.h
-$(GLSRC)gxdevsop.h:$(GLSRC)gsmemory.h
$(GLSRC)gxdevsop.h:$(GLSRC)gpsync.h
-$(GLSRC)gxdevsop.h:$(GLSRC)memory_.h
+$(GLSRC)gxdevsop.h:$(GLSRC)gsstype.h
+$(GLSRC)gxdevsop.h:$(GLSRC)gsmemory.h
$(GLSRC)gxdevsop.h:$(GLSRC)gpgetenv.h
-$(GLSRC)gxdevsop.h:$(GLSRC)gslibctx.h
$(GLSRC)gxdevsop.h:$(GLSRC)gscdefs.h
-$(GLSRC)gxdevsop.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gxdevsop.h:$(GLSRC)stdio_.h
-$(GLSRC)gxdevsop.h:$(GLSRC)gscompt.h
+$(GLSRC)gxdevsop.h:$(GLSRC)gslibctx.h
$(GLSRC)gxdevsop.h:$(GLSRC)gxcindex.h
-$(GLSRC)gxdevsop.h:$(GLSRC)gsgstate.h
+$(GLSRC)gxdevsop.h:$(GLSRC)stdio_.h
+$(GLSRC)gxdevsop.h:$(GLSRC)gsccode.h
$(GLSRC)gxdevsop.h:$(GLSRC)stdint_.h
$(GLSRC)gxdevsop.h:$(GLSRC)gssprintf.h
-$(GLSRC)gxdevsop.h:$(GLSRC)gsccode.h
-$(GLSRC)gxdevsop.h:$(GLSRC)std.h
$(GLSRC)gxdevsop.h:$(GLSRC)gstypes.h
+$(GLSRC)gxdevsop.h:$(GLSRC)std.h
$(GLSRC)gxdevsop.h:$(GLSRC)stdpre.h
$(GLSRC)gxdevsop.h:$(GLGEN)arch.h
+$(GLSRC)gxdevsop.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gdevflp.h:$(GLSRC)gxdevice.h
$(GLSRC)gdevflp.h:$(GLSRC)gxdevcli.h
+$(GLSRC)gdevflp.h:$(GLSRC)gxcmap.h
$(GLSRC)gdevflp.h:$(GLSRC)gxtext.h
$(GLSRC)gdevflp.h:$(GLSRC)gstext.h
$(GLSRC)gdevflp.h:$(GLSRC)gsnamecl.h
$(GLSRC)gdevflp.h:$(GLSRC)gstparam.h
-$(GLSRC)gdevflp.h:$(GLSRC)gxfcache.h
-$(GLSRC)gdevflp.h:$(GLSRC)gxcspace.h
-$(GLSRC)gdevflp.h:$(GLSRC)gsropt.h
-$(GLSRC)gdevflp.h:$(GLSRC)gsfunc.h
+$(GLSRC)gdevflp.h:$(GLSRC)gxfmap.h
$(GLSRC)gdevflp.h:$(GLSRC)gsmalloc.h
+$(GLSRC)gdevflp.h:$(GLSRC)gsfunc.h
+$(GLSRC)gdevflp.h:$(GLSRC)gxcspace.h
$(GLSRC)gdevflp.h:$(GLSRC)gxrplane.h
-$(GLSRC)gdevflp.h:$(GLSRC)gsuid.h
-$(GLSRC)gdevflp.h:$(GLSRC)gxcmap.h
+$(GLSRC)gdevflp.h:$(GLSRC)gscsel.h
+$(GLSRC)gdevflp.h:$(GLSRC)gxfcache.h
+$(GLSRC)gdevflp.h:$(GLSRC)gsfont.h
$(GLSRC)gdevflp.h:$(GLSRC)gsimage.h
$(GLSRC)gdevflp.h:$(GLSRC)gsdcolor.h
-$(GLSRC)gdevflp.h:$(GLSRC)gxdda.h
$(GLSRC)gdevflp.h:$(GLSRC)gxcvalue.h
-$(GLSRC)gdevflp.h:$(GLSRC)gsfont.h
-$(GLSRC)gdevflp.h:$(GLSRC)gxfmap.h
-$(GLSRC)gdevflp.h:$(GLSRC)gxftype.h
+$(GLSRC)gdevflp.h:$(GLSRC)gxbcache.h
+$(GLSRC)gdevflp.h:$(GLSRC)gsropt.h
+$(GLSRC)gdevflp.h:$(GLSRC)gxdda.h
+$(GLSRC)gdevflp.h:$(GLSRC)gxpath.h
$(GLSRC)gdevflp.h:$(GLSRC)gxfrac.h
+$(GLSRC)gdevflp.h:$(GLSRC)gxtmap.h
+$(GLSRC)gdevflp.h:$(GLSRC)gxftype.h
$(GLSRC)gdevflp.h:$(GLSRC)gscms.h
-$(GLSRC)gdevflp.h:$(GLSRC)gscspace.h
-$(GLSRC)gdevflp.h:$(GLSRC)gxpath.h
-$(GLSRC)gdevflp.h:$(GLSRC)gxbcache.h
-$(GLSRC)gdevflp.h:$(GLSRC)gsdevice.h
-$(GLSRC)gdevflp.h:$(GLSRC)gxarith.h
-$(GLSRC)gdevflp.h:$(GLSRC)gxstdio.h
-$(GLSRC)gdevflp.h:$(GLSRC)gspenum.h
-$(GLSRC)gdevflp.h:$(GLSRC)gxhttile.h
$(GLSRC)gdevflp.h:$(GLSRC)gsrect.h
$(GLSRC)gdevflp.h:$(GLSRC)gslparam.h
+$(GLSRC)gdevflp.h:$(GLSRC)gsdevice.h
+$(GLSRC)gdevflp.h:$(GLSRC)gscpm.h
+$(GLSRC)gdevflp.h:$(GLSRC)gscspace.h
+$(GLSRC)gdevflp.h:$(GLSRC)gsgstate.h
+$(GLSRC)gdevflp.h:$(GLSRC)gxstdio.h
$(GLSRC)gdevflp.h:$(GLSRC)gsxfont.h
-$(GLSRC)gdevflp.h:$(GLSRC)gsiparam.h
$(GLSRC)gdevflp.h:$(GLSRC)gsdsrc.h
$(GLSRC)gdevflp.h:$(GLSRC)gsio.h
-$(GLSRC)gdevflp.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gdevflp.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gdevflp.h:$(GLSRC)gscpm.h
+$(GLSRC)gdevflp.h:$(GLSRC)gsiparam.h
$(GLSRC)gdevflp.h:$(GLSRC)gxfixed.h
-$(GLSRC)gdevflp.h:$(GLSRC)gsrefct.h
+$(GLSRC)gdevflp.h:$(GLSRC)gscompt.h
+$(GLSRC)gdevflp.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gdevflp.h:$(GLSRC)gspenum.h
+$(GLSRC)gdevflp.h:$(GLSRC)gxhttile.h
$(GLSRC)gdevflp.h:$(GLSRC)gsparam.h
+$(GLSRC)gdevflp.h:$(GLSRC)gsrefct.h
$(GLSRC)gdevflp.h:$(GLSRC)gp.h
-$(GLSRC)gdevflp.h:$(GLSRC)gsccolor.h
+$(GLSRC)gdevflp.h:$(GLSRC)memento.h
+$(GLSRC)gdevflp.h:$(GLSRC)memory_.h
+$(GLSRC)gdevflp.h:$(GLSRC)gsuid.h
$(GLSRC)gdevflp.h:$(GLSRC)gsstruct.h
$(GLSRC)gdevflp.h:$(GLSRC)gxsync.h
+$(GLSRC)gdevflp.h:$(GLSRC)gxbitmap.h
$(GLSRC)gdevflp.h:$(GLSRC)srdline.h
$(GLSRC)gdevflp.h:$(GLSRC)scommon.h
-$(GLSRC)gdevflp.h:$(GLSRC)memento.h
-$(GLSRC)gdevflp.h:$(GLSRC)gscsel.h
-$(GLSRC)gdevflp.h:$(GLSRC)gsbitmap.h
$(GLSRC)gdevflp.h:$(GLSRC)gsfname.h
-$(GLSRC)gdevflp.h:$(GLSRC)gsstype.h
+$(GLSRC)gdevflp.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gdevflp.h:$(GLSRC)gsccolor.h
+$(GLSRC)gdevflp.h:$(GLSRC)gxarith.h
$(GLSRC)gdevflp.h:$(GLSRC)stat_.h
-$(GLSRC)gdevflp.h:$(GLSRC)gxtmap.h
-$(GLSRC)gdevflp.h:$(GLSRC)gsmemory.h
$(GLSRC)gdevflp.h:$(GLSRC)gpsync.h
-$(GLSRC)gdevflp.h:$(GLSRC)memory_.h
+$(GLSRC)gdevflp.h:$(GLSRC)gsstype.h
+$(GLSRC)gdevflp.h:$(GLSRC)gsmemory.h
$(GLSRC)gdevflp.h:$(GLSRC)gpgetenv.h
-$(GLSRC)gdevflp.h:$(GLSRC)gslibctx.h
$(GLSRC)gdevflp.h:$(GLSRC)gscdefs.h
-$(GLSRC)gdevflp.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gdevflp.h:$(GLSRC)stdio_.h
-$(GLSRC)gdevflp.h:$(GLSRC)gscompt.h
+$(GLSRC)gdevflp.h:$(GLSRC)gslibctx.h
$(GLSRC)gdevflp.h:$(GLSRC)gxcindex.h
-$(GLSRC)gdevflp.h:$(GLSRC)gsgstate.h
+$(GLSRC)gdevflp.h:$(GLSRC)stdio_.h
+$(GLSRC)gdevflp.h:$(GLSRC)gsccode.h
$(GLSRC)gdevflp.h:$(GLSRC)stdint_.h
$(GLSRC)gdevflp.h:$(GLSRC)gssprintf.h
-$(GLSRC)gdevflp.h:$(GLSRC)gsccode.h
-$(GLSRC)gdevflp.h:$(GLSRC)std.h
$(GLSRC)gdevflp.h:$(GLSRC)gstypes.h
+$(GLSRC)gdevflp.h:$(GLSRC)std.h
$(GLSRC)gdevflp.h:$(GLSRC)stdpre.h
$(GLSRC)gdevflp.h:$(GLGEN)arch.h
+$(GLSRC)gdevflp.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gdevflp.h
$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gdevoflt.h
$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gxdevice.h
$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gxdevcli.h
+$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gxcmap.h
$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gxtext.h
$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gstext.h
$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gsnamecl.h
$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gstparam.h
-$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gxfcache.h
-$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gxcspace.h
-$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gsropt.h
-$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gsfunc.h
+$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gxfmap.h
$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gsmalloc.h
+$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gsfunc.h
+$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gxcspace.h
$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gxrplane.h
-$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gsuid.h
-$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gxcmap.h
+$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gscsel.h
+$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gxfcache.h
+$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gsfont.h
$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gsimage.h
$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gsdcolor.h
-$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gxdda.h
$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gxcvalue.h
-$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gsfont.h
-$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gxfmap.h
-$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gxftype.h
+$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gxbcache.h
+$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gsropt.h
+$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gxdda.h
+$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gxpath.h
$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gxfrac.h
+$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gxtmap.h
+$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gxftype.h
$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gscms.h
-$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gscspace.h
-$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gxpath.h
-$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gxbcache.h
-$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gsdevice.h
-$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gxarith.h
-$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gxstdio.h
-$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gspenum.h
-$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gxhttile.h
$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gsrect.h
$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gslparam.h
+$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gsdevice.h
+$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gscpm.h
+$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gscspace.h
+$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gsgstate.h
+$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gxstdio.h
$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gsxfont.h
-$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gsiparam.h
$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gsdsrc.h
$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gsio.h
-$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gscpm.h
+$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gsiparam.h
$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gxfixed.h
-$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gsrefct.h
+$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gscompt.h
+$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gspenum.h
+$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gxhttile.h
$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gsparam.h
+$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gsrefct.h
$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gp.h
-$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gsccolor.h
+$(GLSRC)gdevkrnlsclass.h:$(GLSRC)memento.h
+$(GLSRC)gdevkrnlsclass.h:$(GLSRC)memory_.h
+$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gsuid.h
$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gsstruct.h
$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gxsync.h
+$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gxbitmap.h
$(GLSRC)gdevkrnlsclass.h:$(GLSRC)srdline.h
$(GLSRC)gdevkrnlsclass.h:$(GLSRC)scommon.h
-$(GLSRC)gdevkrnlsclass.h:$(GLSRC)memento.h
-$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gscsel.h
-$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gsbitmap.h
$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gsfname.h
-$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gsstype.h
+$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gsccolor.h
+$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gxarith.h
$(GLSRC)gdevkrnlsclass.h:$(GLSRC)stat_.h
-$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gxtmap.h
-$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gsmemory.h
$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gpsync.h
-$(GLSRC)gdevkrnlsclass.h:$(GLSRC)memory_.h
+$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gsstype.h
+$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gsmemory.h
$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gpgetenv.h
-$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gslibctx.h
$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gscdefs.h
-$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gdevkrnlsclass.h:$(GLSRC)stdio_.h
-$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gscompt.h
+$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gslibctx.h
$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gxcindex.h
-$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gsgstate.h
+$(GLSRC)gdevkrnlsclass.h:$(GLSRC)stdio_.h
+$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gsccode.h
$(GLSRC)gdevkrnlsclass.h:$(GLSRC)stdint_.h
$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gssprintf.h
-$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gsccode.h
-$(GLSRC)gdevkrnlsclass.h:$(GLSRC)std.h
$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gstypes.h
+$(GLSRC)gdevkrnlsclass.h:$(GLSRC)std.h
$(GLSRC)gdevkrnlsclass.h:$(GLSRC)stdpre.h
$(GLSRC)gdevkrnlsclass.h:$(GLGEN)arch.h
+$(GLSRC)gdevkrnlsclass.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gdevsclass.h:$(GLSRC)gxdevice.h
$(GLSRC)gdevsclass.h:$(GLSRC)gxdevcli.h
+$(GLSRC)gdevsclass.h:$(GLSRC)gxcmap.h
$(GLSRC)gdevsclass.h:$(GLSRC)gxtext.h
$(GLSRC)gdevsclass.h:$(GLSRC)gstext.h
$(GLSRC)gdevsclass.h:$(GLSRC)gsnamecl.h
$(GLSRC)gdevsclass.h:$(GLSRC)gstparam.h
-$(GLSRC)gdevsclass.h:$(GLSRC)gxfcache.h
-$(GLSRC)gdevsclass.h:$(GLSRC)gxcspace.h
-$(GLSRC)gdevsclass.h:$(GLSRC)gsropt.h
-$(GLSRC)gdevsclass.h:$(GLSRC)gsfunc.h
+$(GLSRC)gdevsclass.h:$(GLSRC)gxfmap.h
$(GLSRC)gdevsclass.h:$(GLSRC)gsmalloc.h
+$(GLSRC)gdevsclass.h:$(GLSRC)gsfunc.h
+$(GLSRC)gdevsclass.h:$(GLSRC)gxcspace.h
$(GLSRC)gdevsclass.h:$(GLSRC)gxrplane.h
-$(GLSRC)gdevsclass.h:$(GLSRC)gsuid.h
-$(GLSRC)gdevsclass.h:$(GLSRC)gxcmap.h
+$(GLSRC)gdevsclass.h:$(GLSRC)gscsel.h
+$(GLSRC)gdevsclass.h:$(GLSRC)gxfcache.h
+$(GLSRC)gdevsclass.h:$(GLSRC)gsfont.h
$(GLSRC)gdevsclass.h:$(GLSRC)gsimage.h
$(GLSRC)gdevsclass.h:$(GLSRC)gsdcolor.h
-$(GLSRC)gdevsclass.h:$(GLSRC)gxdda.h
$(GLSRC)gdevsclass.h:$(GLSRC)gxcvalue.h
-$(GLSRC)gdevsclass.h:$(GLSRC)gsfont.h
-$(GLSRC)gdevsclass.h:$(GLSRC)gxfmap.h
-$(GLSRC)gdevsclass.h:$(GLSRC)gxftype.h
+$(GLSRC)gdevsclass.h:$(GLSRC)gxbcache.h
+$(GLSRC)gdevsclass.h:$(GLSRC)gsropt.h
+$(GLSRC)gdevsclass.h:$(GLSRC)gxdda.h
+$(GLSRC)gdevsclass.h:$(GLSRC)gxpath.h
$(GLSRC)gdevsclass.h:$(GLSRC)gxfrac.h
+$(GLSRC)gdevsclass.h:$(GLSRC)gxtmap.h
+$(GLSRC)gdevsclass.h:$(GLSRC)gxftype.h
$(GLSRC)gdevsclass.h:$(GLSRC)gscms.h
-$(GLSRC)gdevsclass.h:$(GLSRC)gscspace.h
-$(GLSRC)gdevsclass.h:$(GLSRC)gxpath.h
-$(GLSRC)gdevsclass.h:$(GLSRC)gxbcache.h
-$(GLSRC)gdevsclass.h:$(GLSRC)gsdevice.h
-$(GLSRC)gdevsclass.h:$(GLSRC)gxarith.h
-$(GLSRC)gdevsclass.h:$(GLSRC)gxstdio.h
-$(GLSRC)gdevsclass.h:$(GLSRC)gspenum.h
-$(GLSRC)gdevsclass.h:$(GLSRC)gxhttile.h
$(GLSRC)gdevsclass.h:$(GLSRC)gsrect.h
$(GLSRC)gdevsclass.h:$(GLSRC)gslparam.h
+$(GLSRC)gdevsclass.h:$(GLSRC)gsdevice.h
+$(GLSRC)gdevsclass.h:$(GLSRC)gscpm.h
+$(GLSRC)gdevsclass.h:$(GLSRC)gscspace.h
+$(GLSRC)gdevsclass.h:$(GLSRC)gsgstate.h
+$(GLSRC)gdevsclass.h:$(GLSRC)gxstdio.h
$(GLSRC)gdevsclass.h:$(GLSRC)gsxfont.h
-$(GLSRC)gdevsclass.h:$(GLSRC)gsiparam.h
$(GLSRC)gdevsclass.h:$(GLSRC)gsdsrc.h
$(GLSRC)gdevsclass.h:$(GLSRC)gsio.h
-$(GLSRC)gdevsclass.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gdevsclass.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gdevsclass.h:$(GLSRC)gscpm.h
+$(GLSRC)gdevsclass.h:$(GLSRC)gsiparam.h
$(GLSRC)gdevsclass.h:$(GLSRC)gxfixed.h
-$(GLSRC)gdevsclass.h:$(GLSRC)gsrefct.h
+$(GLSRC)gdevsclass.h:$(GLSRC)gscompt.h
+$(GLSRC)gdevsclass.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gdevsclass.h:$(GLSRC)gspenum.h
+$(GLSRC)gdevsclass.h:$(GLSRC)gxhttile.h
$(GLSRC)gdevsclass.h:$(GLSRC)gsparam.h
+$(GLSRC)gdevsclass.h:$(GLSRC)gsrefct.h
$(GLSRC)gdevsclass.h:$(GLSRC)gp.h
-$(GLSRC)gdevsclass.h:$(GLSRC)gsccolor.h
+$(GLSRC)gdevsclass.h:$(GLSRC)memento.h
+$(GLSRC)gdevsclass.h:$(GLSRC)memory_.h
+$(GLSRC)gdevsclass.h:$(GLSRC)gsuid.h
$(GLSRC)gdevsclass.h:$(GLSRC)gsstruct.h
$(GLSRC)gdevsclass.h:$(GLSRC)gxsync.h
+$(GLSRC)gdevsclass.h:$(GLSRC)gxbitmap.h
$(GLSRC)gdevsclass.h:$(GLSRC)srdline.h
$(GLSRC)gdevsclass.h:$(GLSRC)scommon.h
-$(GLSRC)gdevsclass.h:$(GLSRC)memento.h
-$(GLSRC)gdevsclass.h:$(GLSRC)gscsel.h
-$(GLSRC)gdevsclass.h:$(GLSRC)gsbitmap.h
$(GLSRC)gdevsclass.h:$(GLSRC)gsfname.h
-$(GLSRC)gdevsclass.h:$(GLSRC)gsstype.h
+$(GLSRC)gdevsclass.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gdevsclass.h:$(GLSRC)gsccolor.h
+$(GLSRC)gdevsclass.h:$(GLSRC)gxarith.h
$(GLSRC)gdevsclass.h:$(GLSRC)stat_.h
-$(GLSRC)gdevsclass.h:$(GLSRC)gxtmap.h
-$(GLSRC)gdevsclass.h:$(GLSRC)gsmemory.h
$(GLSRC)gdevsclass.h:$(GLSRC)gpsync.h
-$(GLSRC)gdevsclass.h:$(GLSRC)memory_.h
+$(GLSRC)gdevsclass.h:$(GLSRC)gsstype.h
+$(GLSRC)gdevsclass.h:$(GLSRC)gsmemory.h
$(GLSRC)gdevsclass.h:$(GLSRC)gpgetenv.h
-$(GLSRC)gdevsclass.h:$(GLSRC)gslibctx.h
$(GLSRC)gdevsclass.h:$(GLSRC)gscdefs.h
-$(GLSRC)gdevsclass.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gdevsclass.h:$(GLSRC)stdio_.h
-$(GLSRC)gdevsclass.h:$(GLSRC)gscompt.h
+$(GLSRC)gdevsclass.h:$(GLSRC)gslibctx.h
$(GLSRC)gdevsclass.h:$(GLSRC)gxcindex.h
-$(GLSRC)gdevsclass.h:$(GLSRC)gsgstate.h
+$(GLSRC)gdevsclass.h:$(GLSRC)stdio_.h
+$(GLSRC)gdevsclass.h:$(GLSRC)gsccode.h
$(GLSRC)gdevsclass.h:$(GLSRC)stdint_.h
$(GLSRC)gdevsclass.h:$(GLSRC)gssprintf.h
-$(GLSRC)gdevsclass.h:$(GLSRC)gsccode.h
-$(GLSRC)gdevsclass.h:$(GLSRC)std.h
$(GLSRC)gdevsclass.h:$(GLSRC)gstypes.h
+$(GLSRC)gdevsclass.h:$(GLSRC)std.h
$(GLSRC)gdevsclass.h:$(GLSRC)stdpre.h
$(GLSRC)gdevsclass.h:$(GLGEN)arch.h
+$(GLSRC)gdevsclass.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gsnotify.h:$(GLSRC)gsstype.h
$(GLSRC)gsnotify.h:$(GLSRC)gsmemory.h
$(GLSRC)gsnotify.h:$(GLSRC)gslibctx.h
-$(GLSRC)gsnotify.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gsnotify.h:$(GLSRC)stdio_.h
$(GLSRC)gsnotify.h:$(GLSRC)gssprintf.h
-$(GLSRC)gsnotify.h:$(GLSRC)std.h
$(GLSRC)gsnotify.h:$(GLSRC)gstypes.h
+$(GLSRC)gsnotify.h:$(GLSRC)std.h
$(GLSRC)gsnotify.h:$(GLSRC)stdpre.h
$(GLSRC)gsnotify.h:$(GLGEN)arch.h
+$(GLSRC)gsnotify.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gsstruct.h:$(GLSRC)gsstype.h
$(GLSRC)gsstruct.h:$(GLSRC)gsmemory.h
$(GLSRC)gsstruct.h:$(GLSRC)gslibctx.h
-$(GLSRC)gsstruct.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gsstruct.h:$(GLSRC)stdio_.h
$(GLSRC)gsstruct.h:$(GLSRC)gssprintf.h
-$(GLSRC)gsstruct.h:$(GLSRC)std.h
$(GLSRC)gsstruct.h:$(GLSRC)gstypes.h
+$(GLSRC)gsstruct.h:$(GLSRC)std.h
$(GLSRC)gsstruct.h:$(GLSRC)stdpre.h
$(GLSRC)gsstruct.h:$(GLGEN)arch.h
+$(GLSRC)gsstruct.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gsbitmap.h:$(GLSRC)gsstype.h
$(GLSRC)gsbitmap.h:$(GLSRC)gsmemory.h
$(GLSRC)gsbitmap.h:$(GLSRC)gslibctx.h
-$(GLSRC)gsbitmap.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gsbitmap.h:$(GLSRC)stdio_.h
$(GLSRC)gsbitmap.h:$(GLSRC)gssprintf.h
-$(GLSRC)gsbitmap.h:$(GLSRC)std.h
$(GLSRC)gsbitmap.h:$(GLSRC)gstypes.h
+$(GLSRC)gsbitmap.h:$(GLSRC)std.h
$(GLSRC)gsbitmap.h:$(GLSRC)stdpre.h
$(GLSRC)gsbitmap.h:$(GLGEN)arch.h
+$(GLSRC)gsbitmap.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gsbitops.h:$(GLSRC)gxcindex.h
$(GLSRC)gsbitops.h:$(GLSRC)stdint_.h
-$(GLSRC)gsbitops.h:$(GLSRC)std.h
$(GLSRC)gsbitops.h:$(GLSRC)gstypes.h
+$(GLSRC)gsbitops.h:$(GLSRC)std.h
$(GLSRC)gsbitops.h:$(GLSRC)stdpre.h
$(GLSRC)gsbitops.h:$(GLGEN)arch.h
$(GLSRC)gsbittab.h:$(GLSRC)gstypes.h
@@ -4557,82 +4566,82 @@ $(GLSRC)gsflip.h:$(GLSRC)stdpre.h
$(GLSRC)gsuid.h:$(GLSRC)std.h
$(GLSRC)gsuid.h:$(GLSRC)stdpre.h
$(GLSRC)gsuid.h:$(GLGEN)arch.h
-$(GLSRC)gsutil.h:$(GLSRC)std.h
$(GLSRC)gsutil.h:$(GLSRC)gstypes.h
+$(GLSRC)gsutil.h:$(GLSRC)std.h
$(GLSRC)gsutil.h:$(GLSRC)stdpre.h
$(GLSRC)gsutil.h:$(GLGEN)arch.h
$(GLSRC)gxbitmap.h:$(GLSRC)gsbitmap.h
$(GLSRC)gxbitmap.h:$(GLSRC)gsstype.h
$(GLSRC)gxbitmap.h:$(GLSRC)gsmemory.h
$(GLSRC)gxbitmap.h:$(GLSRC)gslibctx.h
-$(GLSRC)gxbitmap.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxbitmap.h:$(GLSRC)stdio_.h
$(GLSRC)gxbitmap.h:$(GLSRC)gssprintf.h
-$(GLSRC)gxbitmap.h:$(GLSRC)std.h
$(GLSRC)gxbitmap.h:$(GLSRC)gstypes.h
+$(GLSRC)gxbitmap.h:$(GLSRC)std.h
$(GLSRC)gxbitmap.h:$(GLSRC)stdpre.h
$(GLSRC)gxbitmap.h:$(GLGEN)arch.h
+$(GLSRC)gxbitmap.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxfarith.h:$(GLSRC)gxarith.h
$(GLSRC)gxfarith.h:$(GLSRC)stdpre.h
$(GLSRC)gxfixed.h:$(GLSRC)std.h
$(GLSRC)gxfixed.h:$(GLSRC)stdpre.h
$(GLSRC)gxfixed.h:$(GLGEN)arch.h
-$(GLSRC)gxobj.h:$(GLSRC)gxbitmap.h
$(GLSRC)gxobj.h:$(GLSRC)gsstruct.h
+$(GLSRC)gxobj.h:$(GLSRC)gxbitmap.h
$(GLSRC)gxobj.h:$(GLSRC)gsbitmap.h
$(GLSRC)gxobj.h:$(GLSRC)gsstype.h
$(GLSRC)gxobj.h:$(GLSRC)gsmemory.h
$(GLSRC)gxobj.h:$(GLSRC)gslibctx.h
-$(GLSRC)gxobj.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxobj.h:$(GLSRC)stdio_.h
$(GLSRC)gxobj.h:$(GLSRC)gssprintf.h
-$(GLSRC)gxobj.h:$(GLSRC)std.h
$(GLSRC)gxobj.h:$(GLSRC)gstypes.h
+$(GLSRC)gxobj.h:$(GLSRC)std.h
$(GLSRC)gxobj.h:$(GLSRC)stdpre.h
$(GLSRC)gxobj.h:$(GLGEN)arch.h
+$(GLSRC)gxobj.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxrplane.h:$(GLSRC)gsdevice.h
+$(GLSRC)gxrplane.h:$(GLSRC)gsgstate.h
$(GLSRC)gxrplane.h:$(GLSRC)gsmatrix.h
$(GLSRC)gxrplane.h:$(GLSRC)gsparam.h
$(GLSRC)gxrplane.h:$(GLSRC)scommon.h
$(GLSRC)gxrplane.h:$(GLSRC)gsstype.h
$(GLSRC)gxrplane.h:$(GLSRC)gsmemory.h
$(GLSRC)gxrplane.h:$(GLSRC)gslibctx.h
-$(GLSRC)gxrplane.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxrplane.h:$(GLSRC)stdio_.h
-$(GLSRC)gxrplane.h:$(GLSRC)gsgstate.h
$(GLSRC)gxrplane.h:$(GLSRC)stdint_.h
$(GLSRC)gxrplane.h:$(GLSRC)gssprintf.h
-$(GLSRC)gxrplane.h:$(GLSRC)std.h
$(GLSRC)gxrplane.h:$(GLSRC)gstypes.h
+$(GLSRC)gxrplane.h:$(GLSRC)std.h
$(GLSRC)gxrplane.h:$(GLSRC)stdpre.h
$(GLSRC)gxrplane.h:$(GLGEN)arch.h
+$(GLSRC)gxrplane.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gsrect.h:$(GLSRC)gxfixed.h
-$(GLSRC)gsrect.h:$(GLSRC)std.h
$(GLSRC)gsrect.h:$(GLSRC)gstypes.h
+$(GLSRC)gsrect.h:$(GLSRC)std.h
$(GLSRC)gsrect.h:$(GLSRC)stdpre.h
$(GLSRC)gsrect.h:$(GLGEN)arch.h
$(GLSRC)gxalloc.h:$(GLSRC)gxobj.h
-$(GLSRC)gxalloc.h:$(GLSRC)gxbitmap.h
$(GLSRC)gxalloc.h:$(GLSRC)gsstruct.h
+$(GLSRC)gxalloc.h:$(GLSRC)gxbitmap.h
$(GLSRC)gxalloc.h:$(GLSRC)scommon.h
$(GLSRC)gxalloc.h:$(GLSRC)gsbitmap.h
$(GLSRC)gxalloc.h:$(GLSRC)gsstype.h
$(GLSRC)gxalloc.h:$(GLSRC)gsmemory.h
$(GLSRC)gxalloc.h:$(GLSRC)gslibctx.h
-$(GLSRC)gxalloc.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxalloc.h:$(GLSRC)gsalloc.h
$(GLSRC)gxalloc.h:$(GLSRC)stdio_.h
$(GLSRC)gxalloc.h:$(GLSRC)stdint_.h
$(GLSRC)gxalloc.h:$(GLSRC)gssprintf.h
-$(GLSRC)gxalloc.h:$(GLSRC)std.h
$(GLSRC)gxalloc.h:$(GLSRC)gstypes.h
+$(GLSRC)gxalloc.h:$(GLSRC)std.h
$(GLSRC)gxalloc.h:$(GLSRC)stdpre.h
$(GLSRC)gxalloc.h:$(GLGEN)arch.h
+$(GLSRC)gxalloc.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxbitops.h:$(GLSRC)gsbitops.h
$(GLSRC)gxbitops.h:$(GLSRC)gxcindex.h
$(GLSRC)gxbitops.h:$(GLSRC)stdint_.h
-$(GLSRC)gxbitops.h:$(GLSRC)std.h
$(GLSRC)gxbitops.h:$(GLSRC)gstypes.h
+$(GLSRC)gxbitops.h:$(GLSRC)std.h
$(GLSRC)gxbitops.h:$(GLSRC)stdpre.h
$(GLSRC)gxbitops.h:$(GLGEN)arch.h
$(GLSRC)gxcindex.h:$(GLSRC)stdint_.h
@@ -4641,203 +4650,203 @@ $(GLSRC)gxcindex.h:$(GLSRC)stdpre.h
$(GLSRC)gxcindex.h:$(GLGEN)arch.h
$(GLSRC)gxfont42.h:$(GLSRC)gxfont.h
$(GLSRC)gxfont42.h:$(GLSRC)gspath.h
-$(GLSRC)gxfont42.h:$(GLSRC)gxmatrix.h
$(GLSRC)gxfont42.h:$(GLSRC)gsgdata.h
-$(GLSRC)gxfont42.h:$(GLSRC)gsgcache.h
+$(GLSRC)gxfont42.h:$(GLSRC)gxmatrix.h
$(GLSRC)gxfont42.h:$(GLSRC)gxfapi.h
-$(GLSRC)gxfont42.h:$(GLSRC)gsnotify.h
$(GLSRC)gxfont42.h:$(GLSRC)gsfcmap.h
$(GLSRC)gxfont42.h:$(GLSRC)gstext.h
$(GLSRC)gxfont42.h:$(GLSRC)gxfcache.h
-$(GLSRC)gxfont42.h:$(GLSRC)gsuid.h
-$(GLSRC)gxfont42.h:$(GLSRC)gsdcolor.h
$(GLSRC)gxfont42.h:$(GLSRC)gsfont.h
+$(GLSRC)gxfont42.h:$(GLSRC)gsdcolor.h
+$(GLSRC)gxfont42.h:$(GLSRC)gxbcache.h
+$(GLSRC)gxfont42.h:$(GLSRC)gxpath.h
$(GLSRC)gxfont42.h:$(GLSRC)gxftype.h
$(GLSRC)gxfont42.h:$(GLSRC)gscms.h
-$(GLSRC)gxfont42.h:$(GLSRC)gscspace.h
-$(GLSRC)gxfont42.h:$(GLSRC)gxpath.h
-$(GLSRC)gxfont42.h:$(GLSRC)gxbcache.h
-$(GLSRC)gxfont42.h:$(GLSRC)gsdevice.h
-$(GLSRC)gxfont42.h:$(GLSRC)gxarith.h
-$(GLSRC)gxfont42.h:$(GLSRC)gspenum.h
-$(GLSRC)gxfont42.h:$(GLSRC)gxhttile.h
$(GLSRC)gxfont42.h:$(GLSRC)gsrect.h
$(GLSRC)gxfont42.h:$(GLSRC)gslparam.h
+$(GLSRC)gxfont42.h:$(GLSRC)gsdevice.h
+$(GLSRC)gxfont42.h:$(GLSRC)gscpm.h
+$(GLSRC)gxfont42.h:$(GLSRC)gsgcache.h
+$(GLSRC)gxfont42.h:$(GLSRC)gscspace.h
+$(GLSRC)gxfont42.h:$(GLSRC)gsgstate.h
+$(GLSRC)gxfont42.h:$(GLSRC)gsnotify.h
$(GLSRC)gxfont42.h:$(GLSRC)gsxfont.h
$(GLSRC)gxfont42.h:$(GLSRC)gsiparam.h
-$(GLSRC)gxfont42.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gxfont42.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gxfont42.h:$(GLSRC)gscpm.h
$(GLSRC)gxfont42.h:$(GLSRC)gxfixed.h
-$(GLSRC)gxfont42.h:$(GLSRC)gsrefct.h
+$(GLSRC)gxfont42.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gxfont42.h:$(GLSRC)gspenum.h
+$(GLSRC)gxfont42.h:$(GLSRC)gxhttile.h
$(GLSRC)gxfont42.h:$(GLSRC)gsparam.h
-$(GLSRC)gxfont42.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxfont42.h:$(GLSRC)gsrefct.h
+$(GLSRC)gxfont42.h:$(GLSRC)memento.h
+$(GLSRC)gxfont42.h:$(GLSRC)gsuid.h
$(GLSRC)gxfont42.h:$(GLSRC)gxsync.h
+$(GLSRC)gxfont42.h:$(GLSRC)gxbitmap.h
$(GLSRC)gxfont42.h:$(GLSRC)scommon.h
-$(GLSRC)gxfont42.h:$(GLSRC)memento.h
$(GLSRC)gxfont42.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gxfont42.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxfont42.h:$(GLSRC)gxarith.h
+$(GLSRC)gxfont42.h:$(GLSRC)gpsync.h
$(GLSRC)gxfont42.h:$(GLSRC)gsstype.h
$(GLSRC)gxfont42.h:$(GLSRC)gsmemory.h
-$(GLSRC)gxfont42.h:$(GLSRC)gpsync.h
$(GLSRC)gxfont42.h:$(GLSRC)gslibctx.h
-$(GLSRC)gxfont42.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gxfont42.h:$(GLSRC)stdio_.h
$(GLSRC)gxfont42.h:$(GLSRC)gxcindex.h
-$(GLSRC)gxfont42.h:$(GLSRC)gsgstate.h
+$(GLSRC)gxfont42.h:$(GLSRC)stdio_.h
+$(GLSRC)gxfont42.h:$(GLSRC)gsccode.h
$(GLSRC)gxfont42.h:$(GLSRC)stdint_.h
$(GLSRC)gxfont42.h:$(GLSRC)gssprintf.h
-$(GLSRC)gxfont42.h:$(GLSRC)gsccode.h
-$(GLSRC)gxfont42.h:$(GLSRC)std.h
$(GLSRC)gxfont42.h:$(GLSRC)gstypes.h
+$(GLSRC)gxfont42.h:$(GLSRC)std.h
$(GLSRC)gxfont42.h:$(GLSRC)stdpre.h
$(GLSRC)gxfont42.h:$(GLGEN)arch.h
+$(GLSRC)gxfont42.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gstrans.h:$(GLSRC)gdevp14.h
+$(GLSRC)gstrans.h:$(GLSRC)gxcomp.h
$(GLSRC)gstrans.h:$(GLSRC)gxcolor2.h
$(GLSRC)gstrans.h:$(GLSRC)gxpcolor.h
+$(GLSRC)gstrans.h:$(GLSRC)gxdevmem.h
$(GLSRC)gstrans.h:$(GLSRC)gdevdevn.h
-$(GLSRC)gstrans.h:$(GLSRC)gsequivc.h
-$(GLSRC)gstrans.h:$(GLSRC)gxblend.h
-$(GLSRC)gstrans.h:$(GLSRC)gxcomp.h
$(GLSRC)gstrans.h:$(GLSRC)gxdcolor.h
-$(GLSRC)gstrans.h:$(GLSRC)gxbitfmt.h
+$(GLSRC)gstrans.h:$(GLSRC)gxblend.h
$(GLSRC)gstrans.h:$(GLSRC)gscolor2.h
-$(GLSRC)gstrans.h:$(GLSRC)gscindex.h
$(GLSRC)gstrans.h:$(GLSRC)gxdevice.h
$(GLSRC)gstrans.h:$(GLSRC)gxcpath.h
-$(GLSRC)gstrans.h:$(GLSRC)gxdevmem.h
+$(GLSRC)gstrans.h:$(GLSRC)gsequivc.h
$(GLSRC)gstrans.h:$(GLSRC)gxdevcli.h
$(GLSRC)gstrans.h:$(GLSRC)gxpcache.h
+$(GLSRC)gstrans.h:$(GLSRC)gscindex.h
+$(GLSRC)gstrans.h:$(GLSRC)gxcmap.h
$(GLSRC)gstrans.h:$(GLSRC)gsptype1.h
-$(GLSRC)gstrans.h:$(GLSRC)gxtext.h
$(GLSRC)gstrans.h:$(GLSRC)gscie.h
+$(GLSRC)gstrans.h:$(GLSRC)gxtext.h
$(GLSRC)gstrans.h:$(GLSRC)gstext.h
$(GLSRC)gstrans.h:$(GLSRC)gsnamecl.h
$(GLSRC)gstrans.h:$(GLSRC)gstparam.h
$(GLSRC)gstrans.h:$(GLSRC)gspcolor.h
-$(GLSRC)gstrans.h:$(GLSRC)gxfcache.h
-$(GLSRC)gstrans.h:$(GLSRC)gxcspace.h
-$(GLSRC)gstrans.h:$(GLSRC)gsropt.h
-$(GLSRC)gstrans.h:$(GLSRC)gsfunc.h
+$(GLSRC)gstrans.h:$(GLSRC)gxfmap.h
$(GLSRC)gstrans.h:$(GLSRC)gsmalloc.h
-$(GLSRC)gstrans.h:$(GLSRC)gxrplane.h
+$(GLSRC)gstrans.h:$(GLSRC)gsfunc.h
+$(GLSRC)gstrans.h:$(GLSRC)gxcspace.h
$(GLSRC)gstrans.h:$(GLSRC)gxctable.h
-$(GLSRC)gstrans.h:$(GLSRC)gsuid.h
-$(GLSRC)gstrans.h:$(GLSRC)gxcmap.h
+$(GLSRC)gstrans.h:$(GLSRC)gxrplane.h
+$(GLSRC)gstrans.h:$(GLSRC)gscsel.h
+$(GLSRC)gstrans.h:$(GLSRC)gxfcache.h
+$(GLSRC)gstrans.h:$(GLSRC)gsfont.h
$(GLSRC)gstrans.h:$(GLSRC)gsimage.h
$(GLSRC)gstrans.h:$(GLSRC)gsdcolor.h
-$(GLSRC)gstrans.h:$(GLSRC)gxdda.h
$(GLSRC)gstrans.h:$(GLSRC)gxcvalue.h
-$(GLSRC)gstrans.h:$(GLSRC)gsfont.h
-$(GLSRC)gstrans.h:$(GLSRC)gxfmap.h
+$(GLSRC)gstrans.h:$(GLSRC)gxbcache.h
+$(GLSRC)gstrans.h:$(GLSRC)gsropt.h
+$(GLSRC)gstrans.h:$(GLSRC)gxdda.h
+$(GLSRC)gstrans.h:$(GLSRC)gxpath.h
$(GLSRC)gstrans.h:$(GLSRC)gxiclass.h
-$(GLSRC)gstrans.h:$(GLSRC)gxftype.h
$(GLSRC)gstrans.h:$(GLSRC)gxfrac.h
+$(GLSRC)gstrans.h:$(GLSRC)gxtmap.h
+$(GLSRC)gstrans.h:$(GLSRC)gxftype.h
$(GLSRC)gstrans.h:$(GLSRC)gscms.h
-$(GLSRC)gstrans.h:$(GLSRC)gscspace.h
-$(GLSRC)gstrans.h:$(GLSRC)gxpath.h
-$(GLSRC)gstrans.h:$(GLSRC)gxbcache.h
-$(GLSRC)gstrans.h:$(GLSRC)gsdevice.h
-$(GLSRC)gstrans.h:$(GLSRC)gxarith.h
-$(GLSRC)gstrans.h:$(GLSRC)gxstdio.h
-$(GLSRC)gstrans.h:$(GLSRC)gspenum.h
-$(GLSRC)gstrans.h:$(GLSRC)gxhttile.h
$(GLSRC)gstrans.h:$(GLSRC)gsrect.h
$(GLSRC)gstrans.h:$(GLSRC)gslparam.h
+$(GLSRC)gstrans.h:$(GLSRC)gsdevice.h
+$(GLSRC)gstrans.h:$(GLSRC)gxbitfmt.h
+$(GLSRC)gstrans.h:$(GLSRC)gscpm.h
+$(GLSRC)gstrans.h:$(GLSRC)gscspace.h
+$(GLSRC)gstrans.h:$(GLSRC)gsgstate.h
+$(GLSRC)gstrans.h:$(GLSRC)gxstdio.h
$(GLSRC)gstrans.h:$(GLSRC)gsxfont.h
-$(GLSRC)gstrans.h:$(GLSRC)gsiparam.h
$(GLSRC)gstrans.h:$(GLSRC)gsdsrc.h
$(GLSRC)gstrans.h:$(GLSRC)gsio.h
-$(GLSRC)gstrans.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gstrans.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gstrans.h:$(GLSRC)gscpm.h
+$(GLSRC)gstrans.h:$(GLSRC)gsiparam.h
$(GLSRC)gstrans.h:$(GLSRC)gxfixed.h
-$(GLSRC)gstrans.h:$(GLSRC)gsrefct.h
+$(GLSRC)gstrans.h:$(GLSRC)gscompt.h
+$(GLSRC)gstrans.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gstrans.h:$(GLSRC)gspenum.h
+$(GLSRC)gstrans.h:$(GLSRC)gxhttile.h
$(GLSRC)gstrans.h:$(GLSRC)gsparam.h
+$(GLSRC)gstrans.h:$(GLSRC)gsrefct.h
$(GLSRC)gstrans.h:$(GLSRC)gp.h
-$(GLSRC)gstrans.h:$(GLSRC)gsccolor.h
+$(GLSRC)gstrans.h:$(GLSRC)memento.h
+$(GLSRC)gstrans.h:$(GLSRC)memory_.h
+$(GLSRC)gstrans.h:$(GLSRC)gsuid.h
$(GLSRC)gstrans.h:$(GLSRC)gsstruct.h
$(GLSRC)gstrans.h:$(GLSRC)gxsync.h
+$(GLSRC)gstrans.h:$(GLSRC)gxbitmap.h
$(GLSRC)gstrans.h:$(GLSRC)srdline.h
$(GLSRC)gstrans.h:$(GLSRC)scommon.h
-$(GLSRC)gstrans.h:$(GLSRC)memento.h
-$(GLSRC)gstrans.h:$(GLSRC)gscsel.h
-$(GLSRC)gstrans.h:$(GLSRC)gsbitmap.h
$(GLSRC)gstrans.h:$(GLSRC)gsfname.h
-$(GLSRC)gstrans.h:$(GLSRC)gsstype.h
+$(GLSRC)gstrans.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gstrans.h:$(GLSRC)gsccolor.h
+$(GLSRC)gstrans.h:$(GLSRC)gxarith.h
$(GLSRC)gstrans.h:$(GLSRC)stat_.h
-$(GLSRC)gstrans.h:$(GLSRC)gxtmap.h
-$(GLSRC)gstrans.h:$(GLSRC)gsmemory.h
$(GLSRC)gstrans.h:$(GLSRC)gpsync.h
-$(GLSRC)gstrans.h:$(GLSRC)memory_.h
+$(GLSRC)gstrans.h:$(GLSRC)gsstype.h
+$(GLSRC)gstrans.h:$(GLSRC)gsmemory.h
$(GLSRC)gstrans.h:$(GLSRC)gpgetenv.h
-$(GLSRC)gstrans.h:$(GLSRC)gslibctx.h
$(GLSRC)gstrans.h:$(GLSRC)gscdefs.h
-$(GLSRC)gstrans.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gstrans.h:$(GLSRC)stdio_.h
-$(GLSRC)gstrans.h:$(GLSRC)gscompt.h
+$(GLSRC)gstrans.h:$(GLSRC)gslibctx.h
$(GLSRC)gstrans.h:$(GLSRC)gxcindex.h
-$(GLSRC)gstrans.h:$(GLSRC)gsgstate.h
+$(GLSRC)gstrans.h:$(GLSRC)stdio_.h
+$(GLSRC)gstrans.h:$(GLSRC)gsccode.h
$(GLSRC)gstrans.h:$(GLSRC)stdint_.h
$(GLSRC)gstrans.h:$(GLSRC)gssprintf.h
-$(GLSRC)gstrans.h:$(GLSRC)gsccode.h
-$(GLSRC)gstrans.h:$(GLSRC)std.h
$(GLSRC)gstrans.h:$(GLSRC)gstypes.h
+$(GLSRC)gstrans.h:$(GLSRC)std.h
$(GLSRC)gstrans.h:$(GLSRC)stdpre.h
$(GLSRC)gstrans.h:$(GLGEN)arch.h
+$(GLSRC)gstrans.h:$(GLSRC)gs_dll_call.h
$(GLSRC)scommon.h:$(GLSRC)gsstype.h
$(GLSRC)scommon.h:$(GLSRC)gsmemory.h
$(GLSRC)scommon.h:$(GLSRC)gslibctx.h
-$(GLSRC)scommon.h:$(GLSRC)gs_dll_call.h
$(GLSRC)scommon.h:$(GLSRC)stdio_.h
$(GLSRC)scommon.h:$(GLSRC)stdint_.h
$(GLSRC)scommon.h:$(GLSRC)gssprintf.h
-$(GLSRC)scommon.h:$(GLSRC)std.h
$(GLSRC)scommon.h:$(GLSRC)gstypes.h
+$(GLSRC)scommon.h:$(GLSRC)std.h
$(GLSRC)scommon.h:$(GLSRC)stdpre.h
$(GLSRC)scommon.h:$(GLGEN)arch.h
+$(GLSRC)scommon.h:$(GLSRC)gs_dll_call.h
$(GLSRC)stream.h:$(GLSRC)gxiodev.h
$(GLSRC)stream.h:$(GLSRC)gsparam.h
$(GLSRC)stream.h:$(GLSRC)gp.h
+$(GLSRC)stream.h:$(GLSRC)memory_.h
$(GLSRC)stream.h:$(GLSRC)srdline.h
$(GLSRC)stream.h:$(GLSRC)scommon.h
$(GLSRC)stream.h:$(GLSRC)gsfname.h
-$(GLSRC)stream.h:$(GLSRC)gsstype.h
$(GLSRC)stream.h:$(GLSRC)stat_.h
+$(GLSRC)stream.h:$(GLSRC)gsstype.h
$(GLSRC)stream.h:$(GLSRC)gsmemory.h
-$(GLSRC)stream.h:$(GLSRC)memory_.h
$(GLSRC)stream.h:$(GLSRC)gpgetenv.h
-$(GLSRC)stream.h:$(GLSRC)gslibctx.h
$(GLSRC)stream.h:$(GLSRC)gscdefs.h
-$(GLSRC)stream.h:$(GLSRC)gs_dll_call.h
+$(GLSRC)stream.h:$(GLSRC)gslibctx.h
$(GLSRC)stream.h:$(GLSRC)stdio_.h
$(GLSRC)stream.h:$(GLSRC)stdint_.h
$(GLSRC)stream.h:$(GLSRC)gssprintf.h
-$(GLSRC)stream.h:$(GLSRC)std.h
$(GLSRC)stream.h:$(GLSRC)gstypes.h
+$(GLSRC)stream.h:$(GLSRC)std.h
$(GLSRC)stream.h:$(GLSRC)stdpre.h
$(GLSRC)stream.h:$(GLGEN)arch.h
+$(GLSRC)stream.h:$(GLSRC)gs_dll_call.h
$(GLSRC)ramfs.h:$(GLSRC)stream.h
$(GLSRC)ramfs.h:$(GLSRC)gxiodev.h
$(GLSRC)ramfs.h:$(GLSRC)gsparam.h
$(GLSRC)ramfs.h:$(GLSRC)gp.h
+$(GLSRC)ramfs.h:$(GLSRC)memory_.h
$(GLSRC)ramfs.h:$(GLSRC)srdline.h
$(GLSRC)ramfs.h:$(GLSRC)scommon.h
$(GLSRC)ramfs.h:$(GLSRC)gsfname.h
-$(GLSRC)ramfs.h:$(GLSRC)gsstype.h
$(GLSRC)ramfs.h:$(GLSRC)stat_.h
+$(GLSRC)ramfs.h:$(GLSRC)gsstype.h
$(GLSRC)ramfs.h:$(GLSRC)gsmemory.h
-$(GLSRC)ramfs.h:$(GLSRC)memory_.h
$(GLSRC)ramfs.h:$(GLSRC)gpgetenv.h
-$(GLSRC)ramfs.h:$(GLSRC)gslibctx.h
$(GLSRC)ramfs.h:$(GLSRC)gscdefs.h
-$(GLSRC)ramfs.h:$(GLSRC)gs_dll_call.h
+$(GLSRC)ramfs.h:$(GLSRC)gslibctx.h
$(GLSRC)ramfs.h:$(GLSRC)stdio_.h
$(GLSRC)ramfs.h:$(GLSRC)stdint_.h
$(GLSRC)ramfs.h:$(GLSRC)gssprintf.h
-$(GLSRC)ramfs.h:$(GLSRC)std.h
$(GLSRC)ramfs.h:$(GLSRC)gstypes.h
+$(GLSRC)ramfs.h:$(GLSRC)std.h
$(GLSRC)ramfs.h:$(GLSRC)stdpre.h
$(GLSRC)ramfs.h:$(GLGEN)arch.h
+$(GLSRC)ramfs.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gsmd5.h:$(GLSRC)memory_.h
$(GLSRC)gsmd5.h:$(GLSRC)std.h
$(GLSRC)gsmd5.h:$(GLSRC)stdpre.h
@@ -4846,25 +4855,26 @@ $(GLSRC)sha2.h:$(GLSRC)stdint_.h
$(GLSRC)sha2.h:$(GLSRC)std.h
$(GLSRC)sha2.h:$(GLSRC)stdpre.h
$(GLSRC)sha2.h:$(GLGEN)arch.h
-$(GLSRC)gsalpha.h:$(GLSRC)gsgstate.h
-$(GLSRC)gsccode.h:$(GLSRC)std.h
+$(GLSRC)gsccode.h:$(GLSRC)stdint_.h
$(GLSRC)gsccode.h:$(GLSRC)gstypes.h
+$(GLSRC)gsccode.h:$(GLSRC)std.h
$(GLSRC)gsccode.h:$(GLSRC)stdpre.h
$(GLSRC)gsccode.h:$(GLGEN)arch.h
$(GLSRC)gsccolor.h:$(GLSRC)gsstype.h
$(GLSRC)gsccolor.h:$(GLSRC)gsmemory.h
$(GLSRC)gsccolor.h:$(GLSRC)gslibctx.h
-$(GLSRC)gsccolor.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gsccolor.h:$(GLSRC)stdio_.h
$(GLSRC)gsccolor.h:$(GLSRC)gssprintf.h
-$(GLSRC)gsccolor.h:$(GLSRC)std.h
$(GLSRC)gsccolor.h:$(GLSRC)gstypes.h
+$(GLSRC)gsccolor.h:$(GLSRC)std.h
$(GLSRC)gsccolor.h:$(GLSRC)stdpre.h
$(GLSRC)gsccolor.h:$(GLGEN)arch.h
+$(GLSRC)gsccolor.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gscedata.h:$(GLSRC)stdpre.h
$(GLSRC)gscencs.h:$(GLSRC)gsccode.h
-$(GLSRC)gscencs.h:$(GLSRC)std.h
+$(GLSRC)gscencs.h:$(GLSRC)stdint_.h
$(GLSRC)gscencs.h:$(GLSRC)gstypes.h
+$(GLSRC)gscencs.h:$(GLSRC)std.h
$(GLSRC)gscencs.h:$(GLSRC)stdpre.h
$(GLSRC)gscencs.h:$(GLGEN)arch.h
$(GLSRC)gsclipsr.h:$(GLSRC)gsgstate.h
@@ -4873,95 +4883,96 @@ $(GLSRC)gscolor1.h:$(GLSRC)gsgstate.h
$(GLSRC)gscolor1.h:$(GLSRC)stdpre.h
$(GLSRC)gscompt.h:$(GLSRC)gstypes.h
$(GLSRC)gscompt.h:$(GLSRC)stdpre.h
+$(GLSRC)gscoord.h:$(GLSRC)gsgstate.h
$(GLSRC)gscoord.h:$(GLSRC)gsmatrix.h
$(GLSRC)gscoord.h:$(GLSRC)scommon.h
$(GLSRC)gscoord.h:$(GLSRC)gsstype.h
$(GLSRC)gscoord.h:$(GLSRC)gsmemory.h
$(GLSRC)gscoord.h:$(GLSRC)gslibctx.h
-$(GLSRC)gscoord.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gscoord.h:$(GLSRC)stdio_.h
-$(GLSRC)gscoord.h:$(GLSRC)gsgstate.h
$(GLSRC)gscoord.h:$(GLSRC)stdint_.h
$(GLSRC)gscoord.h:$(GLSRC)gssprintf.h
-$(GLSRC)gscoord.h:$(GLSRC)std.h
$(GLSRC)gscoord.h:$(GLSRC)gstypes.h
+$(GLSRC)gscoord.h:$(GLSRC)std.h
$(GLSRC)gscoord.h:$(GLSRC)stdpre.h
$(GLSRC)gscoord.h:$(GLGEN)arch.h
+$(GLSRC)gscoord.h:$(GLSRC)gs_dll_call.h
+$(GLSRC)gsdevice.h:$(GLSRC)gsgstate.h
$(GLSRC)gsdevice.h:$(GLSRC)gsmatrix.h
$(GLSRC)gsdevice.h:$(GLSRC)gsparam.h
$(GLSRC)gsdevice.h:$(GLSRC)scommon.h
$(GLSRC)gsdevice.h:$(GLSRC)gsstype.h
$(GLSRC)gsdevice.h:$(GLSRC)gsmemory.h
$(GLSRC)gsdevice.h:$(GLSRC)gslibctx.h
-$(GLSRC)gsdevice.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gsdevice.h:$(GLSRC)stdio_.h
-$(GLSRC)gsdevice.h:$(GLSRC)gsgstate.h
$(GLSRC)gsdevice.h:$(GLSRC)stdint_.h
$(GLSRC)gsdevice.h:$(GLSRC)gssprintf.h
-$(GLSRC)gsdevice.h:$(GLSRC)std.h
$(GLSRC)gsdevice.h:$(GLSRC)gstypes.h
+$(GLSRC)gsdevice.h:$(GLSRC)std.h
$(GLSRC)gsdevice.h:$(GLSRC)stdpre.h
$(GLSRC)gsdevice.h:$(GLGEN)arch.h
+$(GLSRC)gsdevice.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gsfcmap.h:$(GLSRC)gsccode.h
-$(GLSRC)gsfcmap.h:$(GLSRC)std.h
+$(GLSRC)gsfcmap.h:$(GLSRC)stdint_.h
$(GLSRC)gsfcmap.h:$(GLSRC)gstypes.h
+$(GLSRC)gsfcmap.h:$(GLSRC)std.h
$(GLSRC)gsfcmap.h:$(GLSRC)stdpre.h
$(GLSRC)gsfcmap.h:$(GLGEN)arch.h
$(GLSRC)gsfname.h:$(GLSRC)std.h
$(GLSRC)gsfname.h:$(GLSRC)stdpre.h
$(GLSRC)gsfname.h:$(GLGEN)arch.h
+$(GLSRC)gsfont.h:$(GLSRC)gsgstate.h
$(GLSRC)gsfont.h:$(GLSRC)gsmatrix.h
$(GLSRC)gsfont.h:$(GLSRC)scommon.h
$(GLSRC)gsfont.h:$(GLSRC)gsstype.h
$(GLSRC)gsfont.h:$(GLSRC)gsmemory.h
$(GLSRC)gsfont.h:$(GLSRC)gslibctx.h
-$(GLSRC)gsfont.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gsfont.h:$(GLSRC)stdio_.h
-$(GLSRC)gsfont.h:$(GLSRC)gsgstate.h
$(GLSRC)gsfont.h:$(GLSRC)stdint_.h
$(GLSRC)gsfont.h:$(GLSRC)gssprintf.h
-$(GLSRC)gsfont.h:$(GLSRC)std.h
$(GLSRC)gsfont.h:$(GLSRC)gstypes.h
+$(GLSRC)gsfont.h:$(GLSRC)std.h
$(GLSRC)gsfont.h:$(GLSRC)stdpre.h
$(GLSRC)gsfont.h:$(GLGEN)arch.h
-$(GLSRC)gsgdata.h:$(GLSRC)gsgcache.h
+$(GLSRC)gsfont.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gsgdata.h:$(GLSRC)gsfont.h
+$(GLSRC)gsgdata.h:$(GLSRC)gsgcache.h
+$(GLSRC)gsgdata.h:$(GLSRC)gsgstate.h
$(GLSRC)gsgdata.h:$(GLSRC)gsmatrix.h
$(GLSRC)gsgdata.h:$(GLSRC)scommon.h
$(GLSRC)gsgdata.h:$(GLSRC)gsstype.h
$(GLSRC)gsgdata.h:$(GLSRC)gsmemory.h
$(GLSRC)gsgdata.h:$(GLSRC)gslibctx.h
-$(GLSRC)gsgdata.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gsgdata.h:$(GLSRC)stdio_.h
-$(GLSRC)gsgdata.h:$(GLSRC)gsgstate.h
$(GLSRC)gsgdata.h:$(GLSRC)stdint_.h
$(GLSRC)gsgdata.h:$(GLSRC)gssprintf.h
-$(GLSRC)gsgdata.h:$(GLSRC)std.h
$(GLSRC)gsgdata.h:$(GLSRC)gstypes.h
+$(GLSRC)gsgdata.h:$(GLSRC)std.h
$(GLSRC)gsgdata.h:$(GLSRC)stdpre.h
$(GLSRC)gsgdata.h:$(GLGEN)arch.h
+$(GLSRC)gsgdata.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gsgcache.h:$(GLSRC)scommon.h
$(GLSRC)gsgcache.h:$(GLSRC)gsstype.h
$(GLSRC)gsgcache.h:$(GLSRC)gsmemory.h
$(GLSRC)gsgcache.h:$(GLSRC)gslibctx.h
-$(GLSRC)gsgcache.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gsgcache.h:$(GLSRC)stdio_.h
$(GLSRC)gsgcache.h:$(GLSRC)stdint_.h
$(GLSRC)gsgcache.h:$(GLSRC)gssprintf.h
-$(GLSRC)gsgcache.h:$(GLSRC)std.h
$(GLSRC)gsgcache.h:$(GLSRC)gstypes.h
+$(GLSRC)gsgcache.h:$(GLSRC)std.h
$(GLSRC)gsgcache.h:$(GLSRC)stdpre.h
$(GLSRC)gsgcache.h:$(GLGEN)arch.h
+$(GLSRC)gsgcache.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gshsb.h:$(GLSRC)gsgstate.h
$(GLSRC)gsht.h:$(GLSRC)gsgstate.h
-$(GLSRC)gsht.h:$(GLSRC)std.h
$(GLSRC)gsht.h:$(GLSRC)gstypes.h
+$(GLSRC)gsht.h:$(GLSRC)std.h
$(GLSRC)gsht.h:$(GLSRC)stdpre.h
$(GLSRC)gsht.h:$(GLGEN)arch.h
$(GLSRC)gsht1.h:$(GLSRC)gsht.h
$(GLSRC)gsht1.h:$(GLSRC)gsgstate.h
-$(GLSRC)gsht1.h:$(GLSRC)std.h
$(GLSRC)gsht1.h:$(GLSRC)gstypes.h
+$(GLSRC)gsht1.h:$(GLSRC)std.h
$(GLSRC)gsht1.h:$(GLSRC)stdpre.h
$(GLSRC)gsht1.h:$(GLGEN)arch.h
$(GLSRC)gsjconf.h:$(GLSRC)stdpre.h
@@ -4973,1252 +4984,1254 @@ $(GLSRC)gsmatrix.h:$(GLSRC)scommon.h
$(GLSRC)gsmatrix.h:$(GLSRC)gsstype.h
$(GLSRC)gsmatrix.h:$(GLSRC)gsmemory.h
$(GLSRC)gsmatrix.h:$(GLSRC)gslibctx.h
-$(GLSRC)gsmatrix.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gsmatrix.h:$(GLSRC)stdio_.h
$(GLSRC)gsmatrix.h:$(GLSRC)stdint_.h
$(GLSRC)gsmatrix.h:$(GLSRC)gssprintf.h
-$(GLSRC)gsmatrix.h:$(GLSRC)std.h
$(GLSRC)gsmatrix.h:$(GLSRC)gstypes.h
+$(GLSRC)gsmatrix.h:$(GLSRC)std.h
$(GLSRC)gsmatrix.h:$(GLSRC)stdpre.h
$(GLSRC)gsmatrix.h:$(GLGEN)arch.h
+$(GLSRC)gsmatrix.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxbitfmt.h:$(GLSRC)stdpre.h
-$(GLSRC)gxcomp.h:$(GLSRC)gxbitfmt.h
$(GLSRC)gxcomp.h:$(GLSRC)gsdevice.h
+$(GLSRC)gxcomp.h:$(GLSRC)gxbitfmt.h
+$(GLSRC)gxcomp.h:$(GLSRC)gsgstate.h
+$(GLSRC)gxcomp.h:$(GLSRC)gscompt.h
$(GLSRC)gxcomp.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gxcomp.h:$(GLSRC)gsrefct.h
$(GLSRC)gxcomp.h:$(GLSRC)gsparam.h
-$(GLSRC)gxcomp.h:$(GLSRC)scommon.h
+$(GLSRC)gxcomp.h:$(GLSRC)gsrefct.h
$(GLSRC)gxcomp.h:$(GLSRC)memento.h
+$(GLSRC)gxcomp.h:$(GLSRC)scommon.h
$(GLSRC)gxcomp.h:$(GLSRC)gsstype.h
$(GLSRC)gxcomp.h:$(GLSRC)gsmemory.h
$(GLSRC)gxcomp.h:$(GLSRC)gslibctx.h
-$(GLSRC)gxcomp.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxcomp.h:$(GLSRC)stdio_.h
-$(GLSRC)gxcomp.h:$(GLSRC)gscompt.h
-$(GLSRC)gxcomp.h:$(GLSRC)gsgstate.h
$(GLSRC)gxcomp.h:$(GLSRC)stdint_.h
$(GLSRC)gxcomp.h:$(GLSRC)gssprintf.h
-$(GLSRC)gxcomp.h:$(GLSRC)std.h
$(GLSRC)gxcomp.h:$(GLSRC)gstypes.h
+$(GLSRC)gxcomp.h:$(GLSRC)std.h
$(GLSRC)gxcomp.h:$(GLSRC)stdpre.h
$(GLSRC)gxcomp.h:$(GLGEN)arch.h
+$(GLSRC)gxcomp.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gsovrc.h:$(GLSRC)gxcomp.h
-$(GLSRC)gsovrc.h:$(GLSRC)gxbitfmt.h
$(GLSRC)gsovrc.h:$(GLSRC)gsdevice.h
+$(GLSRC)gsovrc.h:$(GLSRC)gxbitfmt.h
+$(GLSRC)gsovrc.h:$(GLSRC)gsgstate.h
+$(GLSRC)gsovrc.h:$(GLSRC)gscompt.h
$(GLSRC)gsovrc.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gsovrc.h:$(GLSRC)gsrefct.h
$(GLSRC)gsovrc.h:$(GLSRC)gsparam.h
-$(GLSRC)gsovrc.h:$(GLSRC)scommon.h
+$(GLSRC)gsovrc.h:$(GLSRC)gsrefct.h
$(GLSRC)gsovrc.h:$(GLSRC)memento.h
+$(GLSRC)gsovrc.h:$(GLSRC)scommon.h
$(GLSRC)gsovrc.h:$(GLSRC)gsstype.h
$(GLSRC)gsovrc.h:$(GLSRC)gsmemory.h
$(GLSRC)gsovrc.h:$(GLSRC)gslibctx.h
-$(GLSRC)gsovrc.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gsovrc.h:$(GLSRC)stdio_.h
-$(GLSRC)gsovrc.h:$(GLSRC)gscompt.h
$(GLSRC)gsovrc.h:$(GLSRC)gxcindex.h
-$(GLSRC)gsovrc.h:$(GLSRC)gsgstate.h
+$(GLSRC)gsovrc.h:$(GLSRC)stdio_.h
$(GLSRC)gsovrc.h:$(GLSRC)stdint_.h
$(GLSRC)gsovrc.h:$(GLSRC)gssprintf.h
-$(GLSRC)gsovrc.h:$(GLSRC)std.h
$(GLSRC)gsovrc.h:$(GLSRC)gstypes.h
+$(GLSRC)gsovrc.h:$(GLSRC)std.h
$(GLSRC)gsovrc.h:$(GLSRC)stdpre.h
$(GLSRC)gsovrc.h:$(GLGEN)arch.h
+$(GLSRC)gsovrc.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gspaint.h:$(GLSRC)gsgstate.h
$(GLSRC)gspaint.h:$(GLSRC)stdpre.h
$(GLSRC)gsparam.h:$(GLSRC)gsstype.h
$(GLSRC)gsparam.h:$(GLSRC)gsmemory.h
$(GLSRC)gsparam.h:$(GLSRC)gslibctx.h
-$(GLSRC)gsparam.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gsparam.h:$(GLSRC)stdio_.h
+$(GLSRC)gsparam.h:$(GLSRC)stdint_.h
$(GLSRC)gsparam.h:$(GLSRC)gssprintf.h
-$(GLSRC)gsparam.h:$(GLSRC)std.h
$(GLSRC)gsparam.h:$(GLSRC)gstypes.h
+$(GLSRC)gsparam.h:$(GLSRC)std.h
$(GLSRC)gsparam.h:$(GLSRC)stdpre.h
$(GLSRC)gsparam.h:$(GLGEN)arch.h
+$(GLSRC)gsparam.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gsparams.h:$(GLSRC)stream.h
$(GLSRC)gsparams.h:$(GLSRC)gxiodev.h
$(GLSRC)gsparams.h:$(GLSRC)gsparam.h
$(GLSRC)gsparams.h:$(GLSRC)gp.h
+$(GLSRC)gsparams.h:$(GLSRC)memory_.h
$(GLSRC)gsparams.h:$(GLSRC)srdline.h
$(GLSRC)gsparams.h:$(GLSRC)scommon.h
$(GLSRC)gsparams.h:$(GLSRC)gsfname.h
-$(GLSRC)gsparams.h:$(GLSRC)gsstype.h
$(GLSRC)gsparams.h:$(GLSRC)stat_.h
+$(GLSRC)gsparams.h:$(GLSRC)gsstype.h
$(GLSRC)gsparams.h:$(GLSRC)gsmemory.h
-$(GLSRC)gsparams.h:$(GLSRC)memory_.h
$(GLSRC)gsparams.h:$(GLSRC)gpgetenv.h
-$(GLSRC)gsparams.h:$(GLSRC)gslibctx.h
$(GLSRC)gsparams.h:$(GLSRC)gscdefs.h
-$(GLSRC)gsparams.h:$(GLSRC)gs_dll_call.h
+$(GLSRC)gsparams.h:$(GLSRC)gslibctx.h
$(GLSRC)gsparams.h:$(GLSRC)stdio_.h
$(GLSRC)gsparams.h:$(GLSRC)stdint_.h
$(GLSRC)gsparams.h:$(GLSRC)gssprintf.h
-$(GLSRC)gsparams.h:$(GLSRC)std.h
$(GLSRC)gsparams.h:$(GLSRC)gstypes.h
+$(GLSRC)gsparams.h:$(GLSRC)std.h
$(GLSRC)gsparams.h:$(GLSRC)stdpre.h
$(GLSRC)gsparams.h:$(GLGEN)arch.h
+$(GLSRC)gsparams.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gsparamx.h:$(GLSRC)gsparam.h
$(GLSRC)gsparamx.h:$(GLSRC)gsstype.h
$(GLSRC)gsparamx.h:$(GLSRC)gsmemory.h
$(GLSRC)gsparamx.h:$(GLSRC)gslibctx.h
-$(GLSRC)gsparamx.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gsparamx.h:$(GLSRC)stdio_.h
+$(GLSRC)gsparamx.h:$(GLSRC)stdint_.h
$(GLSRC)gsparamx.h:$(GLSRC)gssprintf.h
-$(GLSRC)gsparamx.h:$(GLSRC)std.h
$(GLSRC)gsparamx.h:$(GLSRC)gstypes.h
+$(GLSRC)gsparamx.h:$(GLSRC)std.h
$(GLSRC)gsparamx.h:$(GLSRC)stdpre.h
$(GLSRC)gsparamx.h:$(GLGEN)arch.h
+$(GLSRC)gsparamx.h:$(GLSRC)gs_dll_call.h
+$(GLSRC)gspath2.h:$(GLSRC)gsgstate.h
$(GLSRC)gspath2.h:$(GLSRC)gsmatrix.h
$(GLSRC)gspath2.h:$(GLSRC)scommon.h
$(GLSRC)gspath2.h:$(GLSRC)gsstype.h
$(GLSRC)gspath2.h:$(GLSRC)gsmemory.h
$(GLSRC)gspath2.h:$(GLSRC)gslibctx.h
-$(GLSRC)gspath2.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gspath2.h:$(GLSRC)stdio_.h
-$(GLSRC)gspath2.h:$(GLSRC)gsgstate.h
$(GLSRC)gspath2.h:$(GLSRC)stdint_.h
$(GLSRC)gspath2.h:$(GLSRC)gssprintf.h
-$(GLSRC)gspath2.h:$(GLSRC)std.h
$(GLSRC)gspath2.h:$(GLSRC)gstypes.h
+$(GLSRC)gspath2.h:$(GLSRC)std.h
$(GLSRC)gspath2.h:$(GLSRC)stdpre.h
$(GLSRC)gspath2.h:$(GLGEN)arch.h
-$(GLSRC)gspcolor.h:$(GLSRC)gsuid.h
+$(GLSRC)gspath2.h:$(GLSRC)gs_dll_call.h
+$(GLSRC)gspcolor.h:$(GLSRC)gsgstate.h
$(GLSRC)gspcolor.h:$(GLSRC)gsmatrix.h
$(GLSRC)gspcolor.h:$(GLSRC)gsrefct.h
-$(GLSRC)gspcolor.h:$(GLSRC)gsccolor.h
-$(GLSRC)gspcolor.h:$(GLSRC)scommon.h
$(GLSRC)gspcolor.h:$(GLSRC)memento.h
+$(GLSRC)gspcolor.h:$(GLSRC)gsuid.h
+$(GLSRC)gspcolor.h:$(GLSRC)scommon.h
+$(GLSRC)gspcolor.h:$(GLSRC)gsccolor.h
$(GLSRC)gspcolor.h:$(GLSRC)gsstype.h
$(GLSRC)gspcolor.h:$(GLSRC)gsmemory.h
$(GLSRC)gspcolor.h:$(GLSRC)gslibctx.h
-$(GLSRC)gspcolor.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gspcolor.h:$(GLSRC)stdio_.h
-$(GLSRC)gspcolor.h:$(GLSRC)gsgstate.h
$(GLSRC)gspcolor.h:$(GLSRC)stdint_.h
$(GLSRC)gspcolor.h:$(GLSRC)gssprintf.h
-$(GLSRC)gspcolor.h:$(GLSRC)std.h
$(GLSRC)gspcolor.h:$(GLSRC)gstypes.h
+$(GLSRC)gspcolor.h:$(GLSRC)std.h
$(GLSRC)gspcolor.h:$(GLSRC)stdpre.h
$(GLSRC)gspcolor.h:$(GLGEN)arch.h
+$(GLSRC)gspcolor.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gsptype1.h:$(GLSRC)gspcolor.h
-$(GLSRC)gsptype1.h:$(GLSRC)gsuid.h
$(GLSRC)gsptype1.h:$(GLSRC)gsdcolor.h
$(GLSRC)gsptype1.h:$(GLSRC)gscms.h
-$(GLSRC)gsptype1.h:$(GLSRC)gscspace.h
$(GLSRC)gsptype1.h:$(GLSRC)gsdevice.h
-$(GLSRC)gsptype1.h:$(GLSRC)gxarith.h
-$(GLSRC)gsptype1.h:$(GLSRC)gxhttile.h
+$(GLSRC)gsptype1.h:$(GLSRC)gscspace.h
+$(GLSRC)gsptype1.h:$(GLSRC)gsgstate.h
$(GLSRC)gsptype1.h:$(GLSRC)gsiparam.h
-$(GLSRC)gsptype1.h:$(GLSRC)gxbitmap.h
$(GLSRC)gsptype1.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gsptype1.h:$(GLSRC)gsrefct.h
+$(GLSRC)gsptype1.h:$(GLSRC)gxhttile.h
$(GLSRC)gsptype1.h:$(GLSRC)gsparam.h
-$(GLSRC)gsptype1.h:$(GLSRC)gsccolor.h
+$(GLSRC)gsptype1.h:$(GLSRC)gsrefct.h
+$(GLSRC)gsptype1.h:$(GLSRC)memento.h
+$(GLSRC)gsptype1.h:$(GLSRC)gsuid.h
$(GLSRC)gsptype1.h:$(GLSRC)gxsync.h
+$(GLSRC)gsptype1.h:$(GLSRC)gxbitmap.h
$(GLSRC)gsptype1.h:$(GLSRC)scommon.h
-$(GLSRC)gsptype1.h:$(GLSRC)memento.h
$(GLSRC)gsptype1.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gsptype1.h:$(GLSRC)gsccolor.h
+$(GLSRC)gsptype1.h:$(GLSRC)gxarith.h
+$(GLSRC)gsptype1.h:$(GLSRC)gpsync.h
$(GLSRC)gsptype1.h:$(GLSRC)gsstype.h
$(GLSRC)gsptype1.h:$(GLSRC)gsmemory.h
-$(GLSRC)gsptype1.h:$(GLSRC)gpsync.h
$(GLSRC)gsptype1.h:$(GLSRC)gslibctx.h
-$(GLSRC)gsptype1.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gsptype1.h:$(GLSRC)stdio_.h
$(GLSRC)gsptype1.h:$(GLSRC)gxcindex.h
-$(GLSRC)gsptype1.h:$(GLSRC)gsgstate.h
+$(GLSRC)gsptype1.h:$(GLSRC)stdio_.h
$(GLSRC)gsptype1.h:$(GLSRC)stdint_.h
$(GLSRC)gsptype1.h:$(GLSRC)gssprintf.h
-$(GLSRC)gsptype1.h:$(GLSRC)std.h
$(GLSRC)gsptype1.h:$(GLSRC)gstypes.h
+$(GLSRC)gsptype1.h:$(GLSRC)std.h
$(GLSRC)gsptype1.h:$(GLSRC)stdpre.h
$(GLSRC)gsptype1.h:$(GLGEN)arch.h
+$(GLSRC)gsptype1.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gsropt.h:$(GLSRC)stdpre.h
-$(GLSRC)gstext.h:$(GLSRC)gsdcolor.h
$(GLSRC)gstext.h:$(GLSRC)gsfont.h
-$(GLSRC)gstext.h:$(GLSRC)gscms.h
-$(GLSRC)gstext.h:$(GLSRC)gscspace.h
+$(GLSRC)gstext.h:$(GLSRC)gsdcolor.h
$(GLSRC)gstext.h:$(GLSRC)gxpath.h
-$(GLSRC)gstext.h:$(GLSRC)gsdevice.h
-$(GLSRC)gstext.h:$(GLSRC)gxarith.h
-$(GLSRC)gstext.h:$(GLSRC)gspenum.h
-$(GLSRC)gstext.h:$(GLSRC)gxhttile.h
+$(GLSRC)gstext.h:$(GLSRC)gscms.h
$(GLSRC)gstext.h:$(GLSRC)gsrect.h
$(GLSRC)gstext.h:$(GLSRC)gslparam.h
-$(GLSRC)gstext.h:$(GLSRC)gsiparam.h
-$(GLSRC)gstext.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gstext.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gstext.h:$(GLSRC)gsdevice.h
$(GLSRC)gstext.h:$(GLSRC)gscpm.h
+$(GLSRC)gstext.h:$(GLSRC)gscspace.h
+$(GLSRC)gstext.h:$(GLSRC)gsgstate.h
+$(GLSRC)gstext.h:$(GLSRC)gsiparam.h
$(GLSRC)gstext.h:$(GLSRC)gxfixed.h
-$(GLSRC)gstext.h:$(GLSRC)gsrefct.h
+$(GLSRC)gstext.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gstext.h:$(GLSRC)gspenum.h
+$(GLSRC)gstext.h:$(GLSRC)gxhttile.h
$(GLSRC)gstext.h:$(GLSRC)gsparam.h
-$(GLSRC)gstext.h:$(GLSRC)gsccolor.h
+$(GLSRC)gstext.h:$(GLSRC)gsrefct.h
+$(GLSRC)gstext.h:$(GLSRC)memento.h
$(GLSRC)gstext.h:$(GLSRC)gxsync.h
+$(GLSRC)gstext.h:$(GLSRC)gxbitmap.h
$(GLSRC)gstext.h:$(GLSRC)scommon.h
-$(GLSRC)gstext.h:$(GLSRC)memento.h
$(GLSRC)gstext.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gstext.h:$(GLSRC)gsccolor.h
+$(GLSRC)gstext.h:$(GLSRC)gxarith.h
+$(GLSRC)gstext.h:$(GLSRC)gpsync.h
$(GLSRC)gstext.h:$(GLSRC)gsstype.h
$(GLSRC)gstext.h:$(GLSRC)gsmemory.h
-$(GLSRC)gstext.h:$(GLSRC)gpsync.h
$(GLSRC)gstext.h:$(GLSRC)gslibctx.h
-$(GLSRC)gstext.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gstext.h:$(GLSRC)stdio_.h
$(GLSRC)gstext.h:$(GLSRC)gxcindex.h
-$(GLSRC)gstext.h:$(GLSRC)gsgstate.h
+$(GLSRC)gstext.h:$(GLSRC)stdio_.h
+$(GLSRC)gstext.h:$(GLSRC)gsccode.h
$(GLSRC)gstext.h:$(GLSRC)stdint_.h
$(GLSRC)gstext.h:$(GLSRC)gssprintf.h
-$(GLSRC)gstext.h:$(GLSRC)gsccode.h
-$(GLSRC)gstext.h:$(GLSRC)std.h
$(GLSRC)gstext.h:$(GLSRC)gstypes.h
+$(GLSRC)gstext.h:$(GLSRC)std.h
$(GLSRC)gstext.h:$(GLSRC)stdpre.h
$(GLSRC)gstext.h:$(GLGEN)arch.h
+$(GLSRC)gstext.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gsxfont.h:$(GLSRC)stdpre.h
$(GLSRC)gschar.h:$(GLSRC)gsstate.h
$(GLSRC)gschar.h:$(GLSRC)gsovrc.h
$(GLSRC)gschar.h:$(GLSRC)gscolor.h
-$(GLSRC)gschar.h:$(GLSRC)gxcomp.h
$(GLSRC)gschar.h:$(GLSRC)gsline.h
-$(GLSRC)gschar.h:$(GLSRC)gxbitfmt.h
+$(GLSRC)gschar.h:$(GLSRC)gxcomp.h
$(GLSRC)gschar.h:$(GLSRC)gsht.h
$(GLSRC)gschar.h:$(GLSRC)gxtext.h
$(GLSRC)gschar.h:$(GLSRC)gstext.h
+$(GLSRC)gschar.h:$(GLSRC)gscsel.h
$(GLSRC)gschar.h:$(GLSRC)gxfcache.h
-$(GLSRC)gschar.h:$(GLSRC)gsuid.h
-$(GLSRC)gschar.h:$(GLSRC)gsdcolor.h
$(GLSRC)gschar.h:$(GLSRC)gsfont.h
+$(GLSRC)gschar.h:$(GLSRC)gsdcolor.h
+$(GLSRC)gschar.h:$(GLSRC)gxbcache.h
+$(GLSRC)gschar.h:$(GLSRC)gxpath.h
+$(GLSRC)gschar.h:$(GLSRC)gxtmap.h
$(GLSRC)gschar.h:$(GLSRC)gxftype.h
$(GLSRC)gschar.h:$(GLSRC)gscms.h
-$(GLSRC)gschar.h:$(GLSRC)gscspace.h
-$(GLSRC)gschar.h:$(GLSRC)gxpath.h
-$(GLSRC)gschar.h:$(GLSRC)gxbcache.h
-$(GLSRC)gschar.h:$(GLSRC)gsdevice.h
-$(GLSRC)gschar.h:$(GLSRC)gxarith.h
-$(GLSRC)gschar.h:$(GLSRC)gspenum.h
-$(GLSRC)gschar.h:$(GLSRC)gxhttile.h
$(GLSRC)gschar.h:$(GLSRC)gsrect.h
$(GLSRC)gschar.h:$(GLSRC)gslparam.h
+$(GLSRC)gschar.h:$(GLSRC)gsdevice.h
+$(GLSRC)gschar.h:$(GLSRC)gxbitfmt.h
+$(GLSRC)gschar.h:$(GLSRC)gscpm.h
+$(GLSRC)gschar.h:$(GLSRC)gscspace.h
+$(GLSRC)gschar.h:$(GLSRC)gsgstate.h
$(GLSRC)gschar.h:$(GLSRC)gsxfont.h
$(GLSRC)gschar.h:$(GLSRC)gsiparam.h
-$(GLSRC)gschar.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gschar.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gschar.h:$(GLSRC)gscpm.h
$(GLSRC)gschar.h:$(GLSRC)gxfixed.h
-$(GLSRC)gschar.h:$(GLSRC)gsrefct.h
+$(GLSRC)gschar.h:$(GLSRC)gscompt.h
+$(GLSRC)gschar.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gschar.h:$(GLSRC)gspenum.h
+$(GLSRC)gschar.h:$(GLSRC)gxhttile.h
$(GLSRC)gschar.h:$(GLSRC)gsparam.h
-$(GLSRC)gschar.h:$(GLSRC)gsccolor.h
+$(GLSRC)gschar.h:$(GLSRC)gsrefct.h
+$(GLSRC)gschar.h:$(GLSRC)memento.h
+$(GLSRC)gschar.h:$(GLSRC)gsuid.h
$(GLSRC)gschar.h:$(GLSRC)gxsync.h
+$(GLSRC)gschar.h:$(GLSRC)gxbitmap.h
$(GLSRC)gschar.h:$(GLSRC)scommon.h
-$(GLSRC)gschar.h:$(GLSRC)memento.h
-$(GLSRC)gschar.h:$(GLSRC)gscsel.h
$(GLSRC)gschar.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gschar.h:$(GLSRC)gsccolor.h
+$(GLSRC)gschar.h:$(GLSRC)gxarith.h
+$(GLSRC)gschar.h:$(GLSRC)gpsync.h
$(GLSRC)gschar.h:$(GLSRC)gsstype.h
-$(GLSRC)gschar.h:$(GLSRC)gxtmap.h
$(GLSRC)gschar.h:$(GLSRC)gsmemory.h
-$(GLSRC)gschar.h:$(GLSRC)gpsync.h
$(GLSRC)gschar.h:$(GLSRC)gslibctx.h
-$(GLSRC)gschar.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gschar.h:$(GLSRC)stdio_.h
-$(GLSRC)gschar.h:$(GLSRC)gscompt.h
$(GLSRC)gschar.h:$(GLSRC)gxcindex.h
-$(GLSRC)gschar.h:$(GLSRC)gsgstate.h
+$(GLSRC)gschar.h:$(GLSRC)stdio_.h
+$(GLSRC)gschar.h:$(GLSRC)gsccode.h
$(GLSRC)gschar.h:$(GLSRC)stdint_.h
$(GLSRC)gschar.h:$(GLSRC)gssprintf.h
-$(GLSRC)gschar.h:$(GLSRC)gsccode.h
-$(GLSRC)gschar.h:$(GLSRC)std.h
$(GLSRC)gschar.h:$(GLSRC)gstypes.h
+$(GLSRC)gschar.h:$(GLSRC)std.h
$(GLSRC)gschar.h:$(GLSRC)stdpre.h
$(GLSRC)gschar.h:$(GLGEN)arch.h
-$(GLSRC)gsiparam.h:$(GLSRC)gxbitmap.h
+$(GLSRC)gschar.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gsiparam.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gsiparam.h:$(GLSRC)gsccolor.h
+$(GLSRC)gsiparam.h:$(GLSRC)gxbitmap.h
$(GLSRC)gsiparam.h:$(GLSRC)scommon.h
$(GLSRC)gsiparam.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gsiparam.h:$(GLSRC)gsccolor.h
$(GLSRC)gsiparam.h:$(GLSRC)gsstype.h
$(GLSRC)gsiparam.h:$(GLSRC)gsmemory.h
$(GLSRC)gsiparam.h:$(GLSRC)gslibctx.h
-$(GLSRC)gsiparam.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gsiparam.h:$(GLSRC)stdio_.h
$(GLSRC)gsiparam.h:$(GLSRC)stdint_.h
$(GLSRC)gsiparam.h:$(GLSRC)gssprintf.h
-$(GLSRC)gsiparam.h:$(GLSRC)std.h
$(GLSRC)gsiparam.h:$(GLSRC)gstypes.h
+$(GLSRC)gsiparam.h:$(GLSRC)std.h
$(GLSRC)gsiparam.h:$(GLSRC)stdpre.h
$(GLSRC)gsiparam.h:$(GLGEN)arch.h
+$(GLSRC)gsiparam.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gsimage.h:$(GLSRC)gsdevice.h
+$(GLSRC)gsimage.h:$(GLSRC)gsgstate.h
$(GLSRC)gsimage.h:$(GLSRC)gsiparam.h
-$(GLSRC)gsimage.h:$(GLSRC)gxbitmap.h
$(GLSRC)gsimage.h:$(GLSRC)gsmatrix.h
$(GLSRC)gsimage.h:$(GLSRC)gsparam.h
-$(GLSRC)gsimage.h:$(GLSRC)gsccolor.h
+$(GLSRC)gsimage.h:$(GLSRC)gxbitmap.h
$(GLSRC)gsimage.h:$(GLSRC)scommon.h
$(GLSRC)gsimage.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gsimage.h:$(GLSRC)gsccolor.h
$(GLSRC)gsimage.h:$(GLSRC)gsstype.h
$(GLSRC)gsimage.h:$(GLSRC)gsmemory.h
$(GLSRC)gsimage.h:$(GLSRC)gslibctx.h
-$(GLSRC)gsimage.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gsimage.h:$(GLSRC)stdio_.h
-$(GLSRC)gsimage.h:$(GLSRC)gsgstate.h
$(GLSRC)gsimage.h:$(GLSRC)stdint_.h
$(GLSRC)gsimage.h:$(GLSRC)gssprintf.h
-$(GLSRC)gsimage.h:$(GLSRC)std.h
$(GLSRC)gsimage.h:$(GLSRC)gstypes.h
+$(GLSRC)gsimage.h:$(GLSRC)std.h
$(GLSRC)gsimage.h:$(GLSRC)stdpre.h
$(GLSRC)gsimage.h:$(GLGEN)arch.h
+$(GLSRC)gsimage.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gsline.h:$(GLSRC)gslparam.h
$(GLSRC)gsline.h:$(GLSRC)gsgstate.h
$(GLSRC)gsline.h:$(GLSRC)stdpre.h
$(GLSRC)gspath.h:$(GLSRC)gxmatrix.h
-$(GLSRC)gspath.h:$(GLSRC)gspenum.h
-$(GLSRC)gspath.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gspath.h:$(GLSRC)gsgstate.h
$(GLSRC)gspath.h:$(GLSRC)gxfixed.h
+$(GLSRC)gspath.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gspath.h:$(GLSRC)gspenum.h
$(GLSRC)gspath.h:$(GLSRC)scommon.h
$(GLSRC)gspath.h:$(GLSRC)gsstype.h
$(GLSRC)gspath.h:$(GLSRC)gsmemory.h
$(GLSRC)gspath.h:$(GLSRC)gslibctx.h
-$(GLSRC)gspath.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gspath.h:$(GLSRC)stdio_.h
-$(GLSRC)gspath.h:$(GLSRC)gsgstate.h
$(GLSRC)gspath.h:$(GLSRC)stdint_.h
$(GLSRC)gspath.h:$(GLSRC)gssprintf.h
-$(GLSRC)gspath.h:$(GLSRC)std.h
$(GLSRC)gspath.h:$(GLSRC)gstypes.h
+$(GLSRC)gspath.h:$(GLSRC)std.h
$(GLSRC)gspath.h:$(GLSRC)stdpre.h
$(GLSRC)gspath.h:$(GLGEN)arch.h
+$(GLSRC)gspath.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gsrop.h:$(GLSRC)gsropt.h
$(GLSRC)gsrop.h:$(GLSRC)gsgstate.h
$(GLSRC)gsrop.h:$(GLSRC)stdpre.h
$(GLSRC)gstparam.h:$(GLSRC)gsfunc.h
$(GLSRC)gstparam.h:$(GLSRC)gscspace.h
-$(GLSRC)gstparam.h:$(GLSRC)gsiparam.h
+$(GLSRC)gstparam.h:$(GLSRC)gsgstate.h
$(GLSRC)gstparam.h:$(GLSRC)gsdsrc.h
-$(GLSRC)gstparam.h:$(GLSRC)gxbitmap.h
+$(GLSRC)gstparam.h:$(GLSRC)gsiparam.h
$(GLSRC)gstparam.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gstparam.h:$(GLSRC)gsrefct.h
$(GLSRC)gstparam.h:$(GLSRC)gsparam.h
-$(GLSRC)gstparam.h:$(GLSRC)gsccolor.h
+$(GLSRC)gstparam.h:$(GLSRC)gsrefct.h
+$(GLSRC)gstparam.h:$(GLSRC)memento.h
$(GLSRC)gstparam.h:$(GLSRC)gsstruct.h
+$(GLSRC)gstparam.h:$(GLSRC)gxbitmap.h
$(GLSRC)gstparam.h:$(GLSRC)scommon.h
-$(GLSRC)gstparam.h:$(GLSRC)memento.h
$(GLSRC)gstparam.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gstparam.h:$(GLSRC)gsccolor.h
$(GLSRC)gstparam.h:$(GLSRC)gsstype.h
$(GLSRC)gstparam.h:$(GLSRC)gsmemory.h
$(GLSRC)gstparam.h:$(GLSRC)gslibctx.h
-$(GLSRC)gstparam.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gstparam.h:$(GLSRC)stdio_.h
-$(GLSRC)gstparam.h:$(GLSRC)gsgstate.h
$(GLSRC)gstparam.h:$(GLSRC)stdint_.h
$(GLSRC)gstparam.h:$(GLSRC)gssprintf.h
-$(GLSRC)gstparam.h:$(GLSRC)std.h
$(GLSRC)gstparam.h:$(GLSRC)gstypes.h
+$(GLSRC)gstparam.h:$(GLSRC)std.h
$(GLSRC)gstparam.h:$(GLSRC)stdpre.h
$(GLSRC)gstparam.h:$(GLGEN)arch.h
+$(GLSRC)gstparam.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxbcache.h:$(GLSRC)gxbitmap.h
$(GLSRC)gxbcache.h:$(GLSRC)gsbitmap.h
$(GLSRC)gxbcache.h:$(GLSRC)gsstype.h
$(GLSRC)gxbcache.h:$(GLSRC)gsmemory.h
$(GLSRC)gxbcache.h:$(GLSRC)gslibctx.h
-$(GLSRC)gxbcache.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxbcache.h:$(GLSRC)stdio_.h
$(GLSRC)gxbcache.h:$(GLSRC)gssprintf.h
-$(GLSRC)gxbcache.h:$(GLSRC)std.h
$(GLSRC)gxbcache.h:$(GLSRC)gstypes.h
+$(GLSRC)gxbcache.h:$(GLSRC)std.h
$(GLSRC)gxbcache.h:$(GLSRC)stdpre.h
$(GLSRC)gxbcache.h:$(GLGEN)arch.h
+$(GLSRC)gxbcache.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxclio.h:$(GLSRC)gp.h
+$(GLSRC)gxclio.h:$(GLSRC)memory_.h
$(GLSRC)gxclio.h:$(GLSRC)srdline.h
$(GLSRC)gxclio.h:$(GLSRC)scommon.h
-$(GLSRC)gxclio.h:$(GLSRC)gsstype.h
$(GLSRC)gxclio.h:$(GLSRC)stat_.h
+$(GLSRC)gxclio.h:$(GLSRC)gsstype.h
$(GLSRC)gxclio.h:$(GLSRC)gsmemory.h
-$(GLSRC)gxclio.h:$(GLSRC)memory_.h
$(GLSRC)gxclio.h:$(GLSRC)gpgetenv.h
-$(GLSRC)gxclio.h:$(GLSRC)gslibctx.h
$(GLSRC)gxclio.h:$(GLSRC)gscdefs.h
-$(GLSRC)gxclio.h:$(GLSRC)gs_dll_call.h
+$(GLSRC)gxclio.h:$(GLSRC)gslibctx.h
$(GLSRC)gxclio.h:$(GLSRC)stdio_.h
$(GLSRC)gxclio.h:$(GLSRC)stdint_.h
$(GLSRC)gxclio.h:$(GLSRC)gssprintf.h
-$(GLSRC)gxclio.h:$(GLSRC)std.h
$(GLSRC)gxclio.h:$(GLSRC)gstypes.h
+$(GLSRC)gxclio.h:$(GLSRC)std.h
$(GLSRC)gxclio.h:$(GLSRC)stdpre.h
$(GLSRC)gxclio.h:$(GLGEN)arch.h
+$(GLSRC)gxclio.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxclip.h:$(GLSRC)gxdevcli.h
+$(GLSRC)gxclip.h:$(GLSRC)gxcmap.h
$(GLSRC)gxclip.h:$(GLSRC)gxtext.h
$(GLSRC)gxclip.h:$(GLSRC)gstext.h
$(GLSRC)gxclip.h:$(GLSRC)gsnamecl.h
$(GLSRC)gxclip.h:$(GLSRC)gstparam.h
-$(GLSRC)gxclip.h:$(GLSRC)gxfcache.h
-$(GLSRC)gxclip.h:$(GLSRC)gxcspace.h
-$(GLSRC)gxclip.h:$(GLSRC)gsropt.h
+$(GLSRC)gxclip.h:$(GLSRC)gxfmap.h
$(GLSRC)gxclip.h:$(GLSRC)gsfunc.h
+$(GLSRC)gxclip.h:$(GLSRC)gxcspace.h
$(GLSRC)gxclip.h:$(GLSRC)gxrplane.h
-$(GLSRC)gxclip.h:$(GLSRC)gsuid.h
-$(GLSRC)gxclip.h:$(GLSRC)gxcmap.h
+$(GLSRC)gxclip.h:$(GLSRC)gscsel.h
+$(GLSRC)gxclip.h:$(GLSRC)gxfcache.h
+$(GLSRC)gxclip.h:$(GLSRC)gsfont.h
$(GLSRC)gxclip.h:$(GLSRC)gsimage.h
$(GLSRC)gxclip.h:$(GLSRC)gsdcolor.h
-$(GLSRC)gxclip.h:$(GLSRC)gxdda.h
$(GLSRC)gxclip.h:$(GLSRC)gxcvalue.h
-$(GLSRC)gxclip.h:$(GLSRC)gsfont.h
-$(GLSRC)gxclip.h:$(GLSRC)gxfmap.h
-$(GLSRC)gxclip.h:$(GLSRC)gxftype.h
+$(GLSRC)gxclip.h:$(GLSRC)gxbcache.h
+$(GLSRC)gxclip.h:$(GLSRC)gsropt.h
+$(GLSRC)gxclip.h:$(GLSRC)gxdda.h
+$(GLSRC)gxclip.h:$(GLSRC)gxpath.h
$(GLSRC)gxclip.h:$(GLSRC)gxfrac.h
+$(GLSRC)gxclip.h:$(GLSRC)gxtmap.h
+$(GLSRC)gxclip.h:$(GLSRC)gxftype.h
$(GLSRC)gxclip.h:$(GLSRC)gscms.h
-$(GLSRC)gxclip.h:$(GLSRC)gscspace.h
-$(GLSRC)gxclip.h:$(GLSRC)gxpath.h
-$(GLSRC)gxclip.h:$(GLSRC)gxbcache.h
-$(GLSRC)gxclip.h:$(GLSRC)gsdevice.h
-$(GLSRC)gxclip.h:$(GLSRC)gxarith.h
-$(GLSRC)gxclip.h:$(GLSRC)gspenum.h
-$(GLSRC)gxclip.h:$(GLSRC)gxhttile.h
$(GLSRC)gxclip.h:$(GLSRC)gsrect.h
$(GLSRC)gxclip.h:$(GLSRC)gslparam.h
+$(GLSRC)gxclip.h:$(GLSRC)gsdevice.h
+$(GLSRC)gxclip.h:$(GLSRC)gscpm.h
+$(GLSRC)gxclip.h:$(GLSRC)gscspace.h
+$(GLSRC)gxclip.h:$(GLSRC)gsgstate.h
$(GLSRC)gxclip.h:$(GLSRC)gsxfont.h
-$(GLSRC)gxclip.h:$(GLSRC)gsiparam.h
$(GLSRC)gxclip.h:$(GLSRC)gsdsrc.h
-$(GLSRC)gxclip.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gxclip.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gxclip.h:$(GLSRC)gscpm.h
+$(GLSRC)gxclip.h:$(GLSRC)gsiparam.h
$(GLSRC)gxclip.h:$(GLSRC)gxfixed.h
-$(GLSRC)gxclip.h:$(GLSRC)gsrefct.h
+$(GLSRC)gxclip.h:$(GLSRC)gscompt.h
+$(GLSRC)gxclip.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gxclip.h:$(GLSRC)gspenum.h
+$(GLSRC)gxclip.h:$(GLSRC)gxhttile.h
$(GLSRC)gxclip.h:$(GLSRC)gsparam.h
+$(GLSRC)gxclip.h:$(GLSRC)gsrefct.h
$(GLSRC)gxclip.h:$(GLSRC)gp.h
-$(GLSRC)gxclip.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxclip.h:$(GLSRC)memento.h
+$(GLSRC)gxclip.h:$(GLSRC)memory_.h
+$(GLSRC)gxclip.h:$(GLSRC)gsuid.h
$(GLSRC)gxclip.h:$(GLSRC)gsstruct.h
$(GLSRC)gxclip.h:$(GLSRC)gxsync.h
+$(GLSRC)gxclip.h:$(GLSRC)gxbitmap.h
$(GLSRC)gxclip.h:$(GLSRC)srdline.h
$(GLSRC)gxclip.h:$(GLSRC)scommon.h
-$(GLSRC)gxclip.h:$(GLSRC)memento.h
-$(GLSRC)gxclip.h:$(GLSRC)gscsel.h
$(GLSRC)gxclip.h:$(GLSRC)gsbitmap.h
-$(GLSRC)gxclip.h:$(GLSRC)gsstype.h
+$(GLSRC)gxclip.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxclip.h:$(GLSRC)gxarith.h
$(GLSRC)gxclip.h:$(GLSRC)stat_.h
-$(GLSRC)gxclip.h:$(GLSRC)gxtmap.h
-$(GLSRC)gxclip.h:$(GLSRC)gsmemory.h
$(GLSRC)gxclip.h:$(GLSRC)gpsync.h
-$(GLSRC)gxclip.h:$(GLSRC)memory_.h
+$(GLSRC)gxclip.h:$(GLSRC)gsstype.h
+$(GLSRC)gxclip.h:$(GLSRC)gsmemory.h
$(GLSRC)gxclip.h:$(GLSRC)gpgetenv.h
-$(GLSRC)gxclip.h:$(GLSRC)gslibctx.h
$(GLSRC)gxclip.h:$(GLSRC)gscdefs.h
-$(GLSRC)gxclip.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gxclip.h:$(GLSRC)stdio_.h
-$(GLSRC)gxclip.h:$(GLSRC)gscompt.h
+$(GLSRC)gxclip.h:$(GLSRC)gslibctx.h
$(GLSRC)gxclip.h:$(GLSRC)gxcindex.h
-$(GLSRC)gxclip.h:$(GLSRC)gsgstate.h
+$(GLSRC)gxclip.h:$(GLSRC)stdio_.h
+$(GLSRC)gxclip.h:$(GLSRC)gsccode.h
$(GLSRC)gxclip.h:$(GLSRC)stdint_.h
$(GLSRC)gxclip.h:$(GLSRC)gssprintf.h
-$(GLSRC)gxclip.h:$(GLSRC)gsccode.h
-$(GLSRC)gxclip.h:$(GLSRC)std.h
$(GLSRC)gxclip.h:$(GLSRC)gstypes.h
+$(GLSRC)gxclip.h:$(GLSRC)std.h
$(GLSRC)gxclip.h:$(GLSRC)stdpre.h
$(GLSRC)gxclip.h:$(GLGEN)arch.h
+$(GLSRC)gxclip.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxclipsr.h:$(GLSRC)gxpath.h
-$(GLSRC)gxclipsr.h:$(GLSRC)gspenum.h
$(GLSRC)gxclipsr.h:$(GLSRC)gsrect.h
$(GLSRC)gxclipsr.h:$(GLSRC)gslparam.h
$(GLSRC)gxclipsr.h:$(GLSRC)gscpm.h
+$(GLSRC)gxclipsr.h:$(GLSRC)gsgstate.h
$(GLSRC)gxclipsr.h:$(GLSRC)gxfixed.h
+$(GLSRC)gxclipsr.h:$(GLSRC)gspenum.h
$(GLSRC)gxclipsr.h:$(GLSRC)gsrefct.h
$(GLSRC)gxclipsr.h:$(GLSRC)memento.h
-$(GLSRC)gxclipsr.h:$(GLSRC)gsgstate.h
-$(GLSRC)gxclipsr.h:$(GLSRC)std.h
$(GLSRC)gxclipsr.h:$(GLSRC)gstypes.h
+$(GLSRC)gxclipsr.h:$(GLSRC)std.h
$(GLSRC)gxclipsr.h:$(GLSRC)stdpre.h
$(GLSRC)gxclipsr.h:$(GLGEN)arch.h
$(GLSRC)gxcoord.h:$(GLSRC)gscoord.h
$(GLSRC)gxcoord.h:$(GLSRC)gxmatrix.h
-$(GLSRC)gxcoord.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gxcoord.h:$(GLSRC)gsgstate.h
$(GLSRC)gxcoord.h:$(GLSRC)gxfixed.h
+$(GLSRC)gxcoord.h:$(GLSRC)gsmatrix.h
$(GLSRC)gxcoord.h:$(GLSRC)scommon.h
$(GLSRC)gxcoord.h:$(GLSRC)gsstype.h
$(GLSRC)gxcoord.h:$(GLSRC)gsmemory.h
$(GLSRC)gxcoord.h:$(GLSRC)gslibctx.h
-$(GLSRC)gxcoord.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxcoord.h:$(GLSRC)stdio_.h
-$(GLSRC)gxcoord.h:$(GLSRC)gsgstate.h
$(GLSRC)gxcoord.h:$(GLSRC)stdint_.h
$(GLSRC)gxcoord.h:$(GLSRC)gssprintf.h
-$(GLSRC)gxcoord.h:$(GLSRC)std.h
$(GLSRC)gxcoord.h:$(GLSRC)gstypes.h
+$(GLSRC)gxcoord.h:$(GLSRC)std.h
$(GLSRC)gxcoord.h:$(GLSRC)stdpre.h
$(GLSRC)gxcoord.h:$(GLGEN)arch.h
+$(GLSRC)gxcoord.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxcpath.h:$(GLSRC)gxdevcli.h
+$(GLSRC)gxcpath.h:$(GLSRC)gxcmap.h
$(GLSRC)gxcpath.h:$(GLSRC)gxtext.h
$(GLSRC)gxcpath.h:$(GLSRC)gstext.h
$(GLSRC)gxcpath.h:$(GLSRC)gsnamecl.h
$(GLSRC)gxcpath.h:$(GLSRC)gstparam.h
-$(GLSRC)gxcpath.h:$(GLSRC)gxfcache.h
-$(GLSRC)gxcpath.h:$(GLSRC)gxcspace.h
-$(GLSRC)gxcpath.h:$(GLSRC)gsropt.h
+$(GLSRC)gxcpath.h:$(GLSRC)gxfmap.h
$(GLSRC)gxcpath.h:$(GLSRC)gsfunc.h
+$(GLSRC)gxcpath.h:$(GLSRC)gxcspace.h
$(GLSRC)gxcpath.h:$(GLSRC)gxrplane.h
-$(GLSRC)gxcpath.h:$(GLSRC)gsuid.h
-$(GLSRC)gxcpath.h:$(GLSRC)gxcmap.h
+$(GLSRC)gxcpath.h:$(GLSRC)gscsel.h
+$(GLSRC)gxcpath.h:$(GLSRC)gxfcache.h
+$(GLSRC)gxcpath.h:$(GLSRC)gsfont.h
$(GLSRC)gxcpath.h:$(GLSRC)gsimage.h
$(GLSRC)gxcpath.h:$(GLSRC)gsdcolor.h
-$(GLSRC)gxcpath.h:$(GLSRC)gxdda.h
$(GLSRC)gxcpath.h:$(GLSRC)gxcvalue.h
-$(GLSRC)gxcpath.h:$(GLSRC)gsfont.h
-$(GLSRC)gxcpath.h:$(GLSRC)gxfmap.h
-$(GLSRC)gxcpath.h:$(GLSRC)gxftype.h
+$(GLSRC)gxcpath.h:$(GLSRC)gxbcache.h
+$(GLSRC)gxcpath.h:$(GLSRC)gsropt.h
+$(GLSRC)gxcpath.h:$(GLSRC)gxdda.h
+$(GLSRC)gxcpath.h:$(GLSRC)gxpath.h
$(GLSRC)gxcpath.h:$(GLSRC)gxfrac.h
+$(GLSRC)gxcpath.h:$(GLSRC)gxtmap.h
+$(GLSRC)gxcpath.h:$(GLSRC)gxftype.h
$(GLSRC)gxcpath.h:$(GLSRC)gscms.h
-$(GLSRC)gxcpath.h:$(GLSRC)gscspace.h
-$(GLSRC)gxcpath.h:$(GLSRC)gxpath.h
-$(GLSRC)gxcpath.h:$(GLSRC)gxbcache.h
-$(GLSRC)gxcpath.h:$(GLSRC)gsdevice.h
-$(GLSRC)gxcpath.h:$(GLSRC)gxarith.h
-$(GLSRC)gxcpath.h:$(GLSRC)gspenum.h
-$(GLSRC)gxcpath.h:$(GLSRC)gxhttile.h
$(GLSRC)gxcpath.h:$(GLSRC)gsrect.h
$(GLSRC)gxcpath.h:$(GLSRC)gslparam.h
+$(GLSRC)gxcpath.h:$(GLSRC)gsdevice.h
+$(GLSRC)gxcpath.h:$(GLSRC)gscpm.h
+$(GLSRC)gxcpath.h:$(GLSRC)gscspace.h
+$(GLSRC)gxcpath.h:$(GLSRC)gsgstate.h
$(GLSRC)gxcpath.h:$(GLSRC)gsxfont.h
-$(GLSRC)gxcpath.h:$(GLSRC)gsiparam.h
$(GLSRC)gxcpath.h:$(GLSRC)gsdsrc.h
-$(GLSRC)gxcpath.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gxcpath.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gxcpath.h:$(GLSRC)gscpm.h
+$(GLSRC)gxcpath.h:$(GLSRC)gsiparam.h
$(GLSRC)gxcpath.h:$(GLSRC)gxfixed.h
-$(GLSRC)gxcpath.h:$(GLSRC)gsrefct.h
+$(GLSRC)gxcpath.h:$(GLSRC)gscompt.h
+$(GLSRC)gxcpath.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gxcpath.h:$(GLSRC)gspenum.h
+$(GLSRC)gxcpath.h:$(GLSRC)gxhttile.h
$(GLSRC)gxcpath.h:$(GLSRC)gsparam.h
+$(GLSRC)gxcpath.h:$(GLSRC)gsrefct.h
$(GLSRC)gxcpath.h:$(GLSRC)gp.h
-$(GLSRC)gxcpath.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxcpath.h:$(GLSRC)memento.h
+$(GLSRC)gxcpath.h:$(GLSRC)memory_.h
+$(GLSRC)gxcpath.h:$(GLSRC)gsuid.h
$(GLSRC)gxcpath.h:$(GLSRC)gsstruct.h
$(GLSRC)gxcpath.h:$(GLSRC)gxsync.h
+$(GLSRC)gxcpath.h:$(GLSRC)gxbitmap.h
$(GLSRC)gxcpath.h:$(GLSRC)srdline.h
$(GLSRC)gxcpath.h:$(GLSRC)scommon.h
-$(GLSRC)gxcpath.h:$(GLSRC)memento.h
-$(GLSRC)gxcpath.h:$(GLSRC)gscsel.h
$(GLSRC)gxcpath.h:$(GLSRC)gsbitmap.h
-$(GLSRC)gxcpath.h:$(GLSRC)gsstype.h
+$(GLSRC)gxcpath.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxcpath.h:$(GLSRC)gxarith.h
$(GLSRC)gxcpath.h:$(GLSRC)stat_.h
-$(GLSRC)gxcpath.h:$(GLSRC)gxtmap.h
-$(GLSRC)gxcpath.h:$(GLSRC)gsmemory.h
$(GLSRC)gxcpath.h:$(GLSRC)gpsync.h
-$(GLSRC)gxcpath.h:$(GLSRC)memory_.h
+$(GLSRC)gxcpath.h:$(GLSRC)gsstype.h
+$(GLSRC)gxcpath.h:$(GLSRC)gsmemory.h
$(GLSRC)gxcpath.h:$(GLSRC)gpgetenv.h
-$(GLSRC)gxcpath.h:$(GLSRC)gslibctx.h
$(GLSRC)gxcpath.h:$(GLSRC)gscdefs.h
-$(GLSRC)gxcpath.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gxcpath.h:$(GLSRC)stdio_.h
-$(GLSRC)gxcpath.h:$(GLSRC)gscompt.h
+$(GLSRC)gxcpath.h:$(GLSRC)gslibctx.h
$(GLSRC)gxcpath.h:$(GLSRC)gxcindex.h
-$(GLSRC)gxcpath.h:$(GLSRC)gsgstate.h
+$(GLSRC)gxcpath.h:$(GLSRC)stdio_.h
+$(GLSRC)gxcpath.h:$(GLSRC)gsccode.h
$(GLSRC)gxcpath.h:$(GLSRC)stdint_.h
$(GLSRC)gxcpath.h:$(GLSRC)gssprintf.h
-$(GLSRC)gxcpath.h:$(GLSRC)gsccode.h
-$(GLSRC)gxcpath.h:$(GLSRC)std.h
$(GLSRC)gxcpath.h:$(GLSRC)gstypes.h
+$(GLSRC)gxcpath.h:$(GLSRC)std.h
$(GLSRC)gxcpath.h:$(GLSRC)stdpre.h
$(GLSRC)gxcpath.h:$(GLGEN)arch.h
+$(GLSRC)gxcpath.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxdda.h:$(GLSRC)gxfixed.h
$(GLSRC)gxdda.h:$(GLSRC)std.h
$(GLSRC)gxdda.h:$(GLSRC)stdpre.h
$(GLSRC)gxdda.h:$(GLGEN)arch.h
$(GLSRC)gxdevbuf.h:$(GLSRC)gxband.h
$(GLSRC)gxdevbuf.h:$(GLSRC)gxdevcli.h
+$(GLSRC)gxdevbuf.h:$(GLSRC)gxcmap.h
$(GLSRC)gxdevbuf.h:$(GLSRC)gxtext.h
$(GLSRC)gxdevbuf.h:$(GLSRC)gstext.h
$(GLSRC)gxdevbuf.h:$(GLSRC)gsnamecl.h
$(GLSRC)gxdevbuf.h:$(GLSRC)gstparam.h
-$(GLSRC)gxdevbuf.h:$(GLSRC)gxfcache.h
-$(GLSRC)gxdevbuf.h:$(GLSRC)gxcspace.h
-$(GLSRC)gxdevbuf.h:$(GLSRC)gsropt.h
+$(GLSRC)gxdevbuf.h:$(GLSRC)gxfmap.h
$(GLSRC)gxdevbuf.h:$(GLSRC)gsfunc.h
+$(GLSRC)gxdevbuf.h:$(GLSRC)gxcspace.h
$(GLSRC)gxdevbuf.h:$(GLSRC)gxrplane.h
-$(GLSRC)gxdevbuf.h:$(GLSRC)gsuid.h
-$(GLSRC)gxdevbuf.h:$(GLSRC)gxcmap.h
+$(GLSRC)gxdevbuf.h:$(GLSRC)gscsel.h
+$(GLSRC)gxdevbuf.h:$(GLSRC)gxfcache.h
+$(GLSRC)gxdevbuf.h:$(GLSRC)gsfont.h
$(GLSRC)gxdevbuf.h:$(GLSRC)gsimage.h
$(GLSRC)gxdevbuf.h:$(GLSRC)gsdcolor.h
-$(GLSRC)gxdevbuf.h:$(GLSRC)gxdda.h
$(GLSRC)gxdevbuf.h:$(GLSRC)gxcvalue.h
-$(GLSRC)gxdevbuf.h:$(GLSRC)gsfont.h
-$(GLSRC)gxdevbuf.h:$(GLSRC)gxfmap.h
-$(GLSRC)gxdevbuf.h:$(GLSRC)gxftype.h
+$(GLSRC)gxdevbuf.h:$(GLSRC)gxbcache.h
+$(GLSRC)gxdevbuf.h:$(GLSRC)gsropt.h
+$(GLSRC)gxdevbuf.h:$(GLSRC)gxdda.h
+$(GLSRC)gxdevbuf.h:$(GLSRC)gxpath.h
$(GLSRC)gxdevbuf.h:$(GLSRC)gxfrac.h
+$(GLSRC)gxdevbuf.h:$(GLSRC)gxtmap.h
+$(GLSRC)gxdevbuf.h:$(GLSRC)gxftype.h
$(GLSRC)gxdevbuf.h:$(GLSRC)gscms.h
-$(GLSRC)gxdevbuf.h:$(GLSRC)gscspace.h
-$(GLSRC)gxdevbuf.h:$(GLSRC)gxpath.h
-$(GLSRC)gxdevbuf.h:$(GLSRC)gxbcache.h
-$(GLSRC)gxdevbuf.h:$(GLSRC)gsdevice.h
-$(GLSRC)gxdevbuf.h:$(GLSRC)gxarith.h
-$(GLSRC)gxdevbuf.h:$(GLSRC)gspenum.h
-$(GLSRC)gxdevbuf.h:$(GLSRC)gxhttile.h
$(GLSRC)gxdevbuf.h:$(GLSRC)gsrect.h
$(GLSRC)gxdevbuf.h:$(GLSRC)gslparam.h
+$(GLSRC)gxdevbuf.h:$(GLSRC)gsdevice.h
+$(GLSRC)gxdevbuf.h:$(GLSRC)gscpm.h
+$(GLSRC)gxdevbuf.h:$(GLSRC)gscspace.h
+$(GLSRC)gxdevbuf.h:$(GLSRC)gsgstate.h
$(GLSRC)gxdevbuf.h:$(GLSRC)gsxfont.h
-$(GLSRC)gxdevbuf.h:$(GLSRC)gxclio.h
-$(GLSRC)gxdevbuf.h:$(GLSRC)gsiparam.h
$(GLSRC)gxdevbuf.h:$(GLSRC)gsdsrc.h
-$(GLSRC)gxdevbuf.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gxdevbuf.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gxdevbuf.h:$(GLSRC)gscpm.h
+$(GLSRC)gxdevbuf.h:$(GLSRC)gsiparam.h
$(GLSRC)gxdevbuf.h:$(GLSRC)gxfixed.h
-$(GLSRC)gxdevbuf.h:$(GLSRC)gsrefct.h
+$(GLSRC)gxdevbuf.h:$(GLSRC)gxclio.h
+$(GLSRC)gxdevbuf.h:$(GLSRC)gscompt.h
+$(GLSRC)gxdevbuf.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gxdevbuf.h:$(GLSRC)gspenum.h
+$(GLSRC)gxdevbuf.h:$(GLSRC)gxhttile.h
$(GLSRC)gxdevbuf.h:$(GLSRC)gsparam.h
+$(GLSRC)gxdevbuf.h:$(GLSRC)gsrefct.h
$(GLSRC)gxdevbuf.h:$(GLSRC)gp.h
-$(GLSRC)gxdevbuf.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxdevbuf.h:$(GLSRC)memento.h
+$(GLSRC)gxdevbuf.h:$(GLSRC)memory_.h
+$(GLSRC)gxdevbuf.h:$(GLSRC)gsuid.h
$(GLSRC)gxdevbuf.h:$(GLSRC)gsstruct.h
$(GLSRC)gxdevbuf.h:$(GLSRC)gxsync.h
+$(GLSRC)gxdevbuf.h:$(GLSRC)gxbitmap.h
$(GLSRC)gxdevbuf.h:$(GLSRC)srdline.h
$(GLSRC)gxdevbuf.h:$(GLSRC)scommon.h
-$(GLSRC)gxdevbuf.h:$(GLSRC)memento.h
-$(GLSRC)gxdevbuf.h:$(GLSRC)gscsel.h
$(GLSRC)gxdevbuf.h:$(GLSRC)gsbitmap.h
-$(GLSRC)gxdevbuf.h:$(GLSRC)gsstype.h
+$(GLSRC)gxdevbuf.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxdevbuf.h:$(GLSRC)gxarith.h
$(GLSRC)gxdevbuf.h:$(GLSRC)stat_.h
-$(GLSRC)gxdevbuf.h:$(GLSRC)gxtmap.h
-$(GLSRC)gxdevbuf.h:$(GLSRC)gsmemory.h
$(GLSRC)gxdevbuf.h:$(GLSRC)gpsync.h
-$(GLSRC)gxdevbuf.h:$(GLSRC)memory_.h
+$(GLSRC)gxdevbuf.h:$(GLSRC)gsstype.h
+$(GLSRC)gxdevbuf.h:$(GLSRC)gsmemory.h
$(GLSRC)gxdevbuf.h:$(GLSRC)gpgetenv.h
-$(GLSRC)gxdevbuf.h:$(GLSRC)gslibctx.h
$(GLSRC)gxdevbuf.h:$(GLSRC)gscdefs.h
-$(GLSRC)gxdevbuf.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gxdevbuf.h:$(GLSRC)stdio_.h
-$(GLSRC)gxdevbuf.h:$(GLSRC)gscompt.h
+$(GLSRC)gxdevbuf.h:$(GLSRC)gslibctx.h
$(GLSRC)gxdevbuf.h:$(GLSRC)gxcindex.h
-$(GLSRC)gxdevbuf.h:$(GLSRC)gsgstate.h
+$(GLSRC)gxdevbuf.h:$(GLSRC)stdio_.h
+$(GLSRC)gxdevbuf.h:$(GLSRC)gsccode.h
$(GLSRC)gxdevbuf.h:$(GLSRC)stdint_.h
$(GLSRC)gxdevbuf.h:$(GLSRC)gssprintf.h
-$(GLSRC)gxdevbuf.h:$(GLSRC)gsccode.h
-$(GLSRC)gxdevbuf.h:$(GLSRC)std.h
$(GLSRC)gxdevbuf.h:$(GLSRC)gstypes.h
+$(GLSRC)gxdevbuf.h:$(GLSRC)std.h
$(GLSRC)gxdevbuf.h:$(GLSRC)stdpre.h
$(GLSRC)gxdevbuf.h:$(GLGEN)arch.h
+$(GLSRC)gxdevbuf.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxdevrop.h:$(GLSRC)gxdevcli.h
+$(GLSRC)gxdevrop.h:$(GLSRC)gxcmap.h
$(GLSRC)gxdevrop.h:$(GLSRC)gxtext.h
$(GLSRC)gxdevrop.h:$(GLSRC)gstext.h
$(GLSRC)gxdevrop.h:$(GLSRC)gsnamecl.h
$(GLSRC)gxdevrop.h:$(GLSRC)gstparam.h
-$(GLSRC)gxdevrop.h:$(GLSRC)gxfcache.h
-$(GLSRC)gxdevrop.h:$(GLSRC)gxcspace.h
-$(GLSRC)gxdevrop.h:$(GLSRC)gsropt.h
+$(GLSRC)gxdevrop.h:$(GLSRC)gxfmap.h
$(GLSRC)gxdevrop.h:$(GLSRC)gsfunc.h
+$(GLSRC)gxdevrop.h:$(GLSRC)gxcspace.h
$(GLSRC)gxdevrop.h:$(GLSRC)gxrplane.h
-$(GLSRC)gxdevrop.h:$(GLSRC)gsuid.h
-$(GLSRC)gxdevrop.h:$(GLSRC)gxcmap.h
+$(GLSRC)gxdevrop.h:$(GLSRC)gscsel.h
+$(GLSRC)gxdevrop.h:$(GLSRC)gxfcache.h
+$(GLSRC)gxdevrop.h:$(GLSRC)gsfont.h
$(GLSRC)gxdevrop.h:$(GLSRC)gsimage.h
$(GLSRC)gxdevrop.h:$(GLSRC)gsdcolor.h
-$(GLSRC)gxdevrop.h:$(GLSRC)gxdda.h
$(GLSRC)gxdevrop.h:$(GLSRC)gxcvalue.h
-$(GLSRC)gxdevrop.h:$(GLSRC)gsfont.h
-$(GLSRC)gxdevrop.h:$(GLSRC)gxfmap.h
-$(GLSRC)gxdevrop.h:$(GLSRC)gxftype.h
+$(GLSRC)gxdevrop.h:$(GLSRC)gxbcache.h
+$(GLSRC)gxdevrop.h:$(GLSRC)gsropt.h
+$(GLSRC)gxdevrop.h:$(GLSRC)gxdda.h
+$(GLSRC)gxdevrop.h:$(GLSRC)gxpath.h
$(GLSRC)gxdevrop.h:$(GLSRC)gxfrac.h
+$(GLSRC)gxdevrop.h:$(GLSRC)gxtmap.h
+$(GLSRC)gxdevrop.h:$(GLSRC)gxftype.h
$(GLSRC)gxdevrop.h:$(GLSRC)gscms.h
-$(GLSRC)gxdevrop.h:$(GLSRC)gscspace.h
-$(GLSRC)gxdevrop.h:$(GLSRC)gxpath.h
-$(GLSRC)gxdevrop.h:$(GLSRC)gxbcache.h
-$(GLSRC)gxdevrop.h:$(GLSRC)gsdevice.h
-$(GLSRC)gxdevrop.h:$(GLSRC)gxarith.h
-$(GLSRC)gxdevrop.h:$(GLSRC)gspenum.h
-$(GLSRC)gxdevrop.h:$(GLSRC)gxhttile.h
$(GLSRC)gxdevrop.h:$(GLSRC)gsrect.h
$(GLSRC)gxdevrop.h:$(GLSRC)gslparam.h
+$(GLSRC)gxdevrop.h:$(GLSRC)gsdevice.h
+$(GLSRC)gxdevrop.h:$(GLSRC)gscpm.h
+$(GLSRC)gxdevrop.h:$(GLSRC)gscspace.h
+$(GLSRC)gxdevrop.h:$(GLSRC)gsgstate.h
$(GLSRC)gxdevrop.h:$(GLSRC)gsxfont.h
-$(GLSRC)gxdevrop.h:$(GLSRC)gsiparam.h
$(GLSRC)gxdevrop.h:$(GLSRC)gsdsrc.h
-$(GLSRC)gxdevrop.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gxdevrop.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gxdevrop.h:$(GLSRC)gscpm.h
+$(GLSRC)gxdevrop.h:$(GLSRC)gsiparam.h
$(GLSRC)gxdevrop.h:$(GLSRC)gxfixed.h
-$(GLSRC)gxdevrop.h:$(GLSRC)gsrefct.h
+$(GLSRC)gxdevrop.h:$(GLSRC)gscompt.h
+$(GLSRC)gxdevrop.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gxdevrop.h:$(GLSRC)gspenum.h
+$(GLSRC)gxdevrop.h:$(GLSRC)gxhttile.h
$(GLSRC)gxdevrop.h:$(GLSRC)gsparam.h
+$(GLSRC)gxdevrop.h:$(GLSRC)gsrefct.h
$(GLSRC)gxdevrop.h:$(GLSRC)gp.h
-$(GLSRC)gxdevrop.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxdevrop.h:$(GLSRC)memento.h
+$(GLSRC)gxdevrop.h:$(GLSRC)memory_.h
+$(GLSRC)gxdevrop.h:$(GLSRC)gsuid.h
$(GLSRC)gxdevrop.h:$(GLSRC)gsstruct.h
$(GLSRC)gxdevrop.h:$(GLSRC)gxsync.h
+$(GLSRC)gxdevrop.h:$(GLSRC)gxbitmap.h
$(GLSRC)gxdevrop.h:$(GLSRC)srdline.h
$(GLSRC)gxdevrop.h:$(GLSRC)scommon.h
-$(GLSRC)gxdevrop.h:$(GLSRC)memento.h
-$(GLSRC)gxdevrop.h:$(GLSRC)gscsel.h
$(GLSRC)gxdevrop.h:$(GLSRC)gsbitmap.h
-$(GLSRC)gxdevrop.h:$(GLSRC)gsstype.h
+$(GLSRC)gxdevrop.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxdevrop.h:$(GLSRC)gxarith.h
$(GLSRC)gxdevrop.h:$(GLSRC)stat_.h
-$(GLSRC)gxdevrop.h:$(GLSRC)gxtmap.h
-$(GLSRC)gxdevrop.h:$(GLSRC)gsmemory.h
$(GLSRC)gxdevrop.h:$(GLSRC)gpsync.h
-$(GLSRC)gxdevrop.h:$(GLSRC)memory_.h
+$(GLSRC)gxdevrop.h:$(GLSRC)gsstype.h
+$(GLSRC)gxdevrop.h:$(GLSRC)gsmemory.h
$(GLSRC)gxdevrop.h:$(GLSRC)gpgetenv.h
-$(GLSRC)gxdevrop.h:$(GLSRC)gslibctx.h
$(GLSRC)gxdevrop.h:$(GLSRC)gscdefs.h
-$(GLSRC)gxdevrop.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gxdevrop.h:$(GLSRC)stdio_.h
-$(GLSRC)gxdevrop.h:$(GLSRC)gscompt.h
+$(GLSRC)gxdevrop.h:$(GLSRC)gslibctx.h
$(GLSRC)gxdevrop.h:$(GLSRC)gxcindex.h
-$(GLSRC)gxdevrop.h:$(GLSRC)gsgstate.h
+$(GLSRC)gxdevrop.h:$(GLSRC)stdio_.h
+$(GLSRC)gxdevrop.h:$(GLSRC)gsccode.h
$(GLSRC)gxdevrop.h:$(GLSRC)stdint_.h
$(GLSRC)gxdevrop.h:$(GLSRC)gssprintf.h
-$(GLSRC)gxdevrop.h:$(GLSRC)gsccode.h
-$(GLSRC)gxdevrop.h:$(GLSRC)std.h
$(GLSRC)gxdevrop.h:$(GLSRC)gstypes.h
+$(GLSRC)gxdevrop.h:$(GLSRC)std.h
$(GLSRC)gxdevrop.h:$(GLSRC)stdpre.h
$(GLSRC)gxdevrop.h:$(GLGEN)arch.h
+$(GLSRC)gxdevrop.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxdevmem.h:$(GLSRC)gxdevcli.h
+$(GLSRC)gxdevmem.h:$(GLSRC)gxcmap.h
$(GLSRC)gxdevmem.h:$(GLSRC)gxtext.h
$(GLSRC)gxdevmem.h:$(GLSRC)gstext.h
$(GLSRC)gxdevmem.h:$(GLSRC)gsnamecl.h
$(GLSRC)gxdevmem.h:$(GLSRC)gstparam.h
-$(GLSRC)gxdevmem.h:$(GLSRC)gxfcache.h
-$(GLSRC)gxdevmem.h:$(GLSRC)gxcspace.h
-$(GLSRC)gxdevmem.h:$(GLSRC)gsropt.h
+$(GLSRC)gxdevmem.h:$(GLSRC)gxfmap.h
$(GLSRC)gxdevmem.h:$(GLSRC)gsfunc.h
+$(GLSRC)gxdevmem.h:$(GLSRC)gxcspace.h
$(GLSRC)gxdevmem.h:$(GLSRC)gxrplane.h
-$(GLSRC)gxdevmem.h:$(GLSRC)gsuid.h
-$(GLSRC)gxdevmem.h:$(GLSRC)gxcmap.h
+$(GLSRC)gxdevmem.h:$(GLSRC)gscsel.h
+$(GLSRC)gxdevmem.h:$(GLSRC)gxfcache.h
+$(GLSRC)gxdevmem.h:$(GLSRC)gsfont.h
$(GLSRC)gxdevmem.h:$(GLSRC)gsimage.h
$(GLSRC)gxdevmem.h:$(GLSRC)gsdcolor.h
-$(GLSRC)gxdevmem.h:$(GLSRC)gxdda.h
$(GLSRC)gxdevmem.h:$(GLSRC)gxcvalue.h
-$(GLSRC)gxdevmem.h:$(GLSRC)gsfont.h
-$(GLSRC)gxdevmem.h:$(GLSRC)gxfmap.h
-$(GLSRC)gxdevmem.h:$(GLSRC)gxftype.h
+$(GLSRC)gxdevmem.h:$(GLSRC)gxbcache.h
+$(GLSRC)gxdevmem.h:$(GLSRC)gsropt.h
+$(GLSRC)gxdevmem.h:$(GLSRC)gxdda.h
+$(GLSRC)gxdevmem.h:$(GLSRC)gxpath.h
$(GLSRC)gxdevmem.h:$(GLSRC)gxfrac.h
+$(GLSRC)gxdevmem.h:$(GLSRC)gxtmap.h
+$(GLSRC)gxdevmem.h:$(GLSRC)gxftype.h
$(GLSRC)gxdevmem.h:$(GLSRC)gscms.h
-$(GLSRC)gxdevmem.h:$(GLSRC)gscspace.h
-$(GLSRC)gxdevmem.h:$(GLSRC)gxpath.h
-$(GLSRC)gxdevmem.h:$(GLSRC)gxbcache.h
-$(GLSRC)gxdevmem.h:$(GLSRC)gsdevice.h
-$(GLSRC)gxdevmem.h:$(GLSRC)gxarith.h
-$(GLSRC)gxdevmem.h:$(GLSRC)gspenum.h
-$(GLSRC)gxdevmem.h:$(GLSRC)gxhttile.h
$(GLSRC)gxdevmem.h:$(GLSRC)gsrect.h
$(GLSRC)gxdevmem.h:$(GLSRC)gslparam.h
+$(GLSRC)gxdevmem.h:$(GLSRC)gsdevice.h
+$(GLSRC)gxdevmem.h:$(GLSRC)gscpm.h
+$(GLSRC)gxdevmem.h:$(GLSRC)gscspace.h
+$(GLSRC)gxdevmem.h:$(GLSRC)gsgstate.h
$(GLSRC)gxdevmem.h:$(GLSRC)gsxfont.h
-$(GLSRC)gxdevmem.h:$(GLSRC)gsiparam.h
$(GLSRC)gxdevmem.h:$(GLSRC)gsdsrc.h
-$(GLSRC)gxdevmem.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gxdevmem.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gxdevmem.h:$(GLSRC)gscpm.h
+$(GLSRC)gxdevmem.h:$(GLSRC)gsiparam.h
$(GLSRC)gxdevmem.h:$(GLSRC)gxfixed.h
-$(GLSRC)gxdevmem.h:$(GLSRC)gsrefct.h
+$(GLSRC)gxdevmem.h:$(GLSRC)gscompt.h
+$(GLSRC)gxdevmem.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gxdevmem.h:$(GLSRC)gspenum.h
+$(GLSRC)gxdevmem.h:$(GLSRC)gxhttile.h
$(GLSRC)gxdevmem.h:$(GLSRC)gsparam.h
+$(GLSRC)gxdevmem.h:$(GLSRC)gsrefct.h
$(GLSRC)gxdevmem.h:$(GLSRC)gp.h
-$(GLSRC)gxdevmem.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxdevmem.h:$(GLSRC)memento.h
+$(GLSRC)gxdevmem.h:$(GLSRC)memory_.h
+$(GLSRC)gxdevmem.h:$(GLSRC)gsuid.h
$(GLSRC)gxdevmem.h:$(GLSRC)gsstruct.h
$(GLSRC)gxdevmem.h:$(GLSRC)gxsync.h
+$(GLSRC)gxdevmem.h:$(GLSRC)gxbitmap.h
$(GLSRC)gxdevmem.h:$(GLSRC)srdline.h
$(GLSRC)gxdevmem.h:$(GLSRC)scommon.h
-$(GLSRC)gxdevmem.h:$(GLSRC)memento.h
-$(GLSRC)gxdevmem.h:$(GLSRC)gscsel.h
$(GLSRC)gxdevmem.h:$(GLSRC)gsbitmap.h
-$(GLSRC)gxdevmem.h:$(GLSRC)gsstype.h
+$(GLSRC)gxdevmem.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxdevmem.h:$(GLSRC)gxarith.h
$(GLSRC)gxdevmem.h:$(GLSRC)stat_.h
-$(GLSRC)gxdevmem.h:$(GLSRC)gxtmap.h
-$(GLSRC)gxdevmem.h:$(GLSRC)gsmemory.h
$(GLSRC)gxdevmem.h:$(GLSRC)gpsync.h
-$(GLSRC)gxdevmem.h:$(GLSRC)memory_.h
+$(GLSRC)gxdevmem.h:$(GLSRC)gsstype.h
+$(GLSRC)gxdevmem.h:$(GLSRC)gsmemory.h
$(GLSRC)gxdevmem.h:$(GLSRC)gpgetenv.h
-$(GLSRC)gxdevmem.h:$(GLSRC)gslibctx.h
$(GLSRC)gxdevmem.h:$(GLSRC)gscdefs.h
-$(GLSRC)gxdevmem.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gxdevmem.h:$(GLSRC)stdio_.h
-$(GLSRC)gxdevmem.h:$(GLSRC)gscompt.h
+$(GLSRC)gxdevmem.h:$(GLSRC)gslibctx.h
$(GLSRC)gxdevmem.h:$(GLSRC)gxcindex.h
-$(GLSRC)gxdevmem.h:$(GLSRC)gsgstate.h
+$(GLSRC)gxdevmem.h:$(GLSRC)stdio_.h
+$(GLSRC)gxdevmem.h:$(GLSRC)gsccode.h
$(GLSRC)gxdevmem.h:$(GLSRC)stdint_.h
$(GLSRC)gxdevmem.h:$(GLSRC)gssprintf.h
-$(GLSRC)gxdevmem.h:$(GLSRC)gsccode.h
-$(GLSRC)gxdevmem.h:$(GLSRC)std.h
$(GLSRC)gxdevmem.h:$(GLSRC)gstypes.h
+$(GLSRC)gxdevmem.h:$(GLSRC)std.h
$(GLSRC)gxdevmem.h:$(GLSRC)stdpre.h
$(GLSRC)gxdevmem.h:$(GLGEN)arch.h
+$(GLSRC)gxdevmem.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxdhtres.h:$(GLSRC)stdpre.h
$(GLSRC)gxfont0.h:$(GLSRC)gxfont.h
$(GLSRC)gxfont0.h:$(GLSRC)gspath.h
-$(GLSRC)gxfont0.h:$(GLSRC)gxmatrix.h
$(GLSRC)gxfont0.h:$(GLSRC)gsgdata.h
-$(GLSRC)gxfont0.h:$(GLSRC)gsgcache.h
+$(GLSRC)gxfont0.h:$(GLSRC)gxmatrix.h
$(GLSRC)gxfont0.h:$(GLSRC)gxfapi.h
-$(GLSRC)gxfont0.h:$(GLSRC)gsnotify.h
$(GLSRC)gxfont0.h:$(GLSRC)gsfcmap.h
$(GLSRC)gxfont0.h:$(GLSRC)gstext.h
-$(GLSRC)gxfont0.h:$(GLSRC)gsuid.h
-$(GLSRC)gxfont0.h:$(GLSRC)gsdcolor.h
$(GLSRC)gxfont0.h:$(GLSRC)gsfont.h
+$(GLSRC)gxfont0.h:$(GLSRC)gsdcolor.h
+$(GLSRC)gxfont0.h:$(GLSRC)gxpath.h
$(GLSRC)gxfont0.h:$(GLSRC)gxftype.h
$(GLSRC)gxfont0.h:$(GLSRC)gscms.h
-$(GLSRC)gxfont0.h:$(GLSRC)gscspace.h
-$(GLSRC)gxfont0.h:$(GLSRC)gxpath.h
-$(GLSRC)gxfont0.h:$(GLSRC)gsdevice.h
-$(GLSRC)gxfont0.h:$(GLSRC)gxarith.h
-$(GLSRC)gxfont0.h:$(GLSRC)gspenum.h
-$(GLSRC)gxfont0.h:$(GLSRC)gxhttile.h
$(GLSRC)gxfont0.h:$(GLSRC)gsrect.h
$(GLSRC)gxfont0.h:$(GLSRC)gslparam.h
-$(GLSRC)gxfont0.h:$(GLSRC)gsiparam.h
-$(GLSRC)gxfont0.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gxfont0.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gxfont0.h:$(GLSRC)gsdevice.h
$(GLSRC)gxfont0.h:$(GLSRC)gscpm.h
+$(GLSRC)gxfont0.h:$(GLSRC)gsgcache.h
+$(GLSRC)gxfont0.h:$(GLSRC)gscspace.h
+$(GLSRC)gxfont0.h:$(GLSRC)gsgstate.h
+$(GLSRC)gxfont0.h:$(GLSRC)gsnotify.h
+$(GLSRC)gxfont0.h:$(GLSRC)gsiparam.h
$(GLSRC)gxfont0.h:$(GLSRC)gxfixed.h
-$(GLSRC)gxfont0.h:$(GLSRC)gsrefct.h
+$(GLSRC)gxfont0.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gxfont0.h:$(GLSRC)gspenum.h
+$(GLSRC)gxfont0.h:$(GLSRC)gxhttile.h
$(GLSRC)gxfont0.h:$(GLSRC)gsparam.h
-$(GLSRC)gxfont0.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxfont0.h:$(GLSRC)gsrefct.h
+$(GLSRC)gxfont0.h:$(GLSRC)memento.h
+$(GLSRC)gxfont0.h:$(GLSRC)gsuid.h
$(GLSRC)gxfont0.h:$(GLSRC)gxsync.h
+$(GLSRC)gxfont0.h:$(GLSRC)gxbitmap.h
$(GLSRC)gxfont0.h:$(GLSRC)scommon.h
-$(GLSRC)gxfont0.h:$(GLSRC)memento.h
$(GLSRC)gxfont0.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gxfont0.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxfont0.h:$(GLSRC)gxarith.h
+$(GLSRC)gxfont0.h:$(GLSRC)gpsync.h
$(GLSRC)gxfont0.h:$(GLSRC)gsstype.h
$(GLSRC)gxfont0.h:$(GLSRC)gsmemory.h
-$(GLSRC)gxfont0.h:$(GLSRC)gpsync.h
$(GLSRC)gxfont0.h:$(GLSRC)gslibctx.h
-$(GLSRC)gxfont0.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gxfont0.h:$(GLSRC)stdio_.h
$(GLSRC)gxfont0.h:$(GLSRC)gxcindex.h
-$(GLSRC)gxfont0.h:$(GLSRC)gsgstate.h
+$(GLSRC)gxfont0.h:$(GLSRC)stdio_.h
+$(GLSRC)gxfont0.h:$(GLSRC)gsccode.h
$(GLSRC)gxfont0.h:$(GLSRC)stdint_.h
$(GLSRC)gxfont0.h:$(GLSRC)gssprintf.h
-$(GLSRC)gxfont0.h:$(GLSRC)gsccode.h
-$(GLSRC)gxfont0.h:$(GLSRC)std.h
$(GLSRC)gxfont0.h:$(GLSRC)gstypes.h
+$(GLSRC)gxfont0.h:$(GLSRC)std.h
$(GLSRC)gxfont0.h:$(GLSRC)stdpre.h
$(GLSRC)gxfont0.h:$(GLGEN)arch.h
-$(GLSRC)gxgetbit.h:$(GLSRC)gxbitfmt.h
+$(GLSRC)gxfont0.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxgetbit.h:$(GLSRC)gxdevcli.h
+$(GLSRC)gxgetbit.h:$(GLSRC)gxcmap.h
$(GLSRC)gxgetbit.h:$(GLSRC)gxtext.h
$(GLSRC)gxgetbit.h:$(GLSRC)gstext.h
$(GLSRC)gxgetbit.h:$(GLSRC)gsnamecl.h
$(GLSRC)gxgetbit.h:$(GLSRC)gstparam.h
-$(GLSRC)gxgetbit.h:$(GLSRC)gxfcache.h
-$(GLSRC)gxgetbit.h:$(GLSRC)gxcspace.h
-$(GLSRC)gxgetbit.h:$(GLSRC)gsropt.h
+$(GLSRC)gxgetbit.h:$(GLSRC)gxfmap.h
$(GLSRC)gxgetbit.h:$(GLSRC)gsfunc.h
+$(GLSRC)gxgetbit.h:$(GLSRC)gxcspace.h
$(GLSRC)gxgetbit.h:$(GLSRC)gxrplane.h
-$(GLSRC)gxgetbit.h:$(GLSRC)gsuid.h
-$(GLSRC)gxgetbit.h:$(GLSRC)gxcmap.h
+$(GLSRC)gxgetbit.h:$(GLSRC)gscsel.h
+$(GLSRC)gxgetbit.h:$(GLSRC)gxfcache.h
+$(GLSRC)gxgetbit.h:$(GLSRC)gsfont.h
$(GLSRC)gxgetbit.h:$(GLSRC)gsimage.h
$(GLSRC)gxgetbit.h:$(GLSRC)gsdcolor.h
-$(GLSRC)gxgetbit.h:$(GLSRC)gxdda.h
$(GLSRC)gxgetbit.h:$(GLSRC)gxcvalue.h
-$(GLSRC)gxgetbit.h:$(GLSRC)gsfont.h
-$(GLSRC)gxgetbit.h:$(GLSRC)gxfmap.h
-$(GLSRC)gxgetbit.h:$(GLSRC)gxftype.h
+$(GLSRC)gxgetbit.h:$(GLSRC)gxbcache.h
+$(GLSRC)gxgetbit.h:$(GLSRC)gsropt.h
+$(GLSRC)gxgetbit.h:$(GLSRC)gxdda.h
+$(GLSRC)gxgetbit.h:$(GLSRC)gxpath.h
$(GLSRC)gxgetbit.h:$(GLSRC)gxfrac.h
+$(GLSRC)gxgetbit.h:$(GLSRC)gxtmap.h
+$(GLSRC)gxgetbit.h:$(GLSRC)gxftype.h
$(GLSRC)gxgetbit.h:$(GLSRC)gscms.h
-$(GLSRC)gxgetbit.h:$(GLSRC)gscspace.h
-$(GLSRC)gxgetbit.h:$(GLSRC)gxpath.h
-$(GLSRC)gxgetbit.h:$(GLSRC)gxbcache.h
-$(GLSRC)gxgetbit.h:$(GLSRC)gsdevice.h
-$(GLSRC)gxgetbit.h:$(GLSRC)gxarith.h
-$(GLSRC)gxgetbit.h:$(GLSRC)gspenum.h
-$(GLSRC)gxgetbit.h:$(GLSRC)gxhttile.h
$(GLSRC)gxgetbit.h:$(GLSRC)gsrect.h
$(GLSRC)gxgetbit.h:$(GLSRC)gslparam.h
+$(GLSRC)gxgetbit.h:$(GLSRC)gsdevice.h
+$(GLSRC)gxgetbit.h:$(GLSRC)gxbitfmt.h
+$(GLSRC)gxgetbit.h:$(GLSRC)gscpm.h
+$(GLSRC)gxgetbit.h:$(GLSRC)gscspace.h
+$(GLSRC)gxgetbit.h:$(GLSRC)gsgstate.h
$(GLSRC)gxgetbit.h:$(GLSRC)gsxfont.h
-$(GLSRC)gxgetbit.h:$(GLSRC)gsiparam.h
$(GLSRC)gxgetbit.h:$(GLSRC)gsdsrc.h
-$(GLSRC)gxgetbit.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gxgetbit.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gxgetbit.h:$(GLSRC)gscpm.h
+$(GLSRC)gxgetbit.h:$(GLSRC)gsiparam.h
$(GLSRC)gxgetbit.h:$(GLSRC)gxfixed.h
-$(GLSRC)gxgetbit.h:$(GLSRC)gsrefct.h
+$(GLSRC)gxgetbit.h:$(GLSRC)gscompt.h
+$(GLSRC)gxgetbit.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gxgetbit.h:$(GLSRC)gspenum.h
+$(GLSRC)gxgetbit.h:$(GLSRC)gxhttile.h
$(GLSRC)gxgetbit.h:$(GLSRC)gsparam.h
+$(GLSRC)gxgetbit.h:$(GLSRC)gsrefct.h
$(GLSRC)gxgetbit.h:$(GLSRC)gp.h
-$(GLSRC)gxgetbit.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxgetbit.h:$(GLSRC)memento.h
+$(GLSRC)gxgetbit.h:$(GLSRC)memory_.h
+$(GLSRC)gxgetbit.h:$(GLSRC)gsuid.h
$(GLSRC)gxgetbit.h:$(GLSRC)gsstruct.h
$(GLSRC)gxgetbit.h:$(GLSRC)gxsync.h
+$(GLSRC)gxgetbit.h:$(GLSRC)gxbitmap.h
$(GLSRC)gxgetbit.h:$(GLSRC)srdline.h
$(GLSRC)gxgetbit.h:$(GLSRC)scommon.h
-$(GLSRC)gxgetbit.h:$(GLSRC)memento.h
-$(GLSRC)gxgetbit.h:$(GLSRC)gscsel.h
$(GLSRC)gxgetbit.h:$(GLSRC)gsbitmap.h
-$(GLSRC)gxgetbit.h:$(GLSRC)gsstype.h
+$(GLSRC)gxgetbit.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxgetbit.h:$(GLSRC)gxarith.h
$(GLSRC)gxgetbit.h:$(GLSRC)stat_.h
-$(GLSRC)gxgetbit.h:$(GLSRC)gxtmap.h
-$(GLSRC)gxgetbit.h:$(GLSRC)gsmemory.h
$(GLSRC)gxgetbit.h:$(GLSRC)gpsync.h
-$(GLSRC)gxgetbit.h:$(GLSRC)memory_.h
+$(GLSRC)gxgetbit.h:$(GLSRC)gsstype.h
+$(GLSRC)gxgetbit.h:$(GLSRC)gsmemory.h
$(GLSRC)gxgetbit.h:$(GLSRC)gpgetenv.h
-$(GLSRC)gxgetbit.h:$(GLSRC)gslibctx.h
$(GLSRC)gxgetbit.h:$(GLSRC)gscdefs.h
-$(GLSRC)gxgetbit.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gxgetbit.h:$(GLSRC)stdio_.h
-$(GLSRC)gxgetbit.h:$(GLSRC)gscompt.h
+$(GLSRC)gxgetbit.h:$(GLSRC)gslibctx.h
$(GLSRC)gxgetbit.h:$(GLSRC)gxcindex.h
-$(GLSRC)gxgetbit.h:$(GLSRC)gsgstate.h
+$(GLSRC)gxgetbit.h:$(GLSRC)stdio_.h
+$(GLSRC)gxgetbit.h:$(GLSRC)gsccode.h
$(GLSRC)gxgetbit.h:$(GLSRC)stdint_.h
$(GLSRC)gxgetbit.h:$(GLSRC)gssprintf.h
-$(GLSRC)gxgetbit.h:$(GLSRC)gsccode.h
-$(GLSRC)gxgetbit.h:$(GLSRC)std.h
$(GLSRC)gxgetbit.h:$(GLSRC)gstypes.h
+$(GLSRC)gxgetbit.h:$(GLSRC)std.h
$(GLSRC)gxgetbit.h:$(GLSRC)stdpre.h
$(GLSRC)gxgetbit.h:$(GLGEN)arch.h
+$(GLSRC)gxgetbit.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxhttile.h:$(GLSRC)gxbitmap.h
$(GLSRC)gxhttile.h:$(GLSRC)gsbitmap.h
$(GLSRC)gxhttile.h:$(GLSRC)gsstype.h
$(GLSRC)gxhttile.h:$(GLSRC)gsmemory.h
$(GLSRC)gxhttile.h:$(GLSRC)gslibctx.h
-$(GLSRC)gxhttile.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxhttile.h:$(GLSRC)stdio_.h
$(GLSRC)gxhttile.h:$(GLSRC)gssprintf.h
-$(GLSRC)gxhttile.h:$(GLSRC)std.h
$(GLSRC)gxhttile.h:$(GLSRC)gstypes.h
+$(GLSRC)gxhttile.h:$(GLSRC)std.h
$(GLSRC)gxhttile.h:$(GLSRC)stdpre.h
$(GLSRC)gxhttile.h:$(GLGEN)arch.h
+$(GLSRC)gxhttile.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxiclass.h:$(GLSRC)gsdevice.h
+$(GLSRC)gxiclass.h:$(GLSRC)gsgstate.h
$(GLSRC)gxiclass.h:$(GLSRC)gsmatrix.h
$(GLSRC)gxiclass.h:$(GLSRC)gsparam.h
$(GLSRC)gxiclass.h:$(GLSRC)scommon.h
$(GLSRC)gxiclass.h:$(GLSRC)gsstype.h
$(GLSRC)gxiclass.h:$(GLSRC)gsmemory.h
$(GLSRC)gxiclass.h:$(GLSRC)gslibctx.h
-$(GLSRC)gxiclass.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxiclass.h:$(GLSRC)stdio_.h
-$(GLSRC)gxiclass.h:$(GLSRC)gsgstate.h
$(GLSRC)gxiclass.h:$(GLSRC)stdint_.h
$(GLSRC)gxiclass.h:$(GLSRC)gssprintf.h
-$(GLSRC)gxiclass.h:$(GLSRC)std.h
$(GLSRC)gxiclass.h:$(GLSRC)gstypes.h
+$(GLSRC)gxiclass.h:$(GLSRC)std.h
$(GLSRC)gxiclass.h:$(GLSRC)stdpre.h
$(GLSRC)gxiclass.h:$(GLGEN)arch.h
+$(GLSRC)gxiclass.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxiodev.h:$(GLSRC)gsparam.h
$(GLSRC)gxiodev.h:$(GLSRC)gp.h
+$(GLSRC)gxiodev.h:$(GLSRC)memory_.h
$(GLSRC)gxiodev.h:$(GLSRC)srdline.h
$(GLSRC)gxiodev.h:$(GLSRC)scommon.h
$(GLSRC)gxiodev.h:$(GLSRC)gsfname.h
-$(GLSRC)gxiodev.h:$(GLSRC)gsstype.h
$(GLSRC)gxiodev.h:$(GLSRC)stat_.h
+$(GLSRC)gxiodev.h:$(GLSRC)gsstype.h
$(GLSRC)gxiodev.h:$(GLSRC)gsmemory.h
-$(GLSRC)gxiodev.h:$(GLSRC)memory_.h
$(GLSRC)gxiodev.h:$(GLSRC)gpgetenv.h
-$(GLSRC)gxiodev.h:$(GLSRC)gslibctx.h
$(GLSRC)gxiodev.h:$(GLSRC)gscdefs.h
-$(GLSRC)gxiodev.h:$(GLSRC)gs_dll_call.h
+$(GLSRC)gxiodev.h:$(GLSRC)gslibctx.h
$(GLSRC)gxiodev.h:$(GLSRC)stdio_.h
$(GLSRC)gxiodev.h:$(GLSRC)stdint_.h
$(GLSRC)gxiodev.h:$(GLSRC)gssprintf.h
-$(GLSRC)gxiodev.h:$(GLSRC)std.h
$(GLSRC)gxiodev.h:$(GLSRC)gstypes.h
+$(GLSRC)gxiodev.h:$(GLSRC)std.h
$(GLSRC)gxiodev.h:$(GLSRC)stdpre.h
$(GLSRC)gxiodev.h:$(GLGEN)arch.h
+$(GLSRC)gxiodev.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxline.h:$(GLSRC)math_.h
$(GLSRC)gxline.h:$(GLSRC)gslparam.h
$(GLSRC)gxline.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gxline.h:$(GLSRC)scommon.h
$(GLSRC)gxline.h:$(GLSRC)vmsmath.h
+$(GLSRC)gxline.h:$(GLSRC)scommon.h
$(GLSRC)gxline.h:$(GLSRC)gsstype.h
$(GLSRC)gxline.h:$(GLSRC)gsmemory.h
$(GLSRC)gxline.h:$(GLSRC)gslibctx.h
-$(GLSRC)gxline.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxline.h:$(GLSRC)stdio_.h
$(GLSRC)gxline.h:$(GLSRC)stdint_.h
$(GLSRC)gxline.h:$(GLSRC)gssprintf.h
-$(GLSRC)gxline.h:$(GLSRC)std.h
$(GLSRC)gxline.h:$(GLSRC)gstypes.h
+$(GLSRC)gxline.h:$(GLSRC)std.h
$(GLSRC)gxline.h:$(GLSRC)stdpre.h
$(GLSRC)gxline.h:$(GLGEN)arch.h
-$(GLSRC)gxmatrix.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gxline.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxmatrix.h:$(GLSRC)gxfixed.h
+$(GLSRC)gxmatrix.h:$(GLSRC)gsmatrix.h
$(GLSRC)gxmatrix.h:$(GLSRC)scommon.h
$(GLSRC)gxmatrix.h:$(GLSRC)gsstype.h
$(GLSRC)gxmatrix.h:$(GLSRC)gsmemory.h
$(GLSRC)gxmatrix.h:$(GLSRC)gslibctx.h
-$(GLSRC)gxmatrix.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxmatrix.h:$(GLSRC)stdio_.h
$(GLSRC)gxmatrix.h:$(GLSRC)stdint_.h
$(GLSRC)gxmatrix.h:$(GLSRC)gssprintf.h
-$(GLSRC)gxmatrix.h:$(GLSRC)std.h
$(GLSRC)gxmatrix.h:$(GLSRC)gstypes.h
+$(GLSRC)gxmatrix.h:$(GLSRC)std.h
$(GLSRC)gxmatrix.h:$(GLSRC)stdpre.h
$(GLSRC)gxmatrix.h:$(GLGEN)arch.h
+$(GLSRC)gxmatrix.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxmclip.h:$(GLSRC)gxclip.h
$(GLSRC)gxmclip.h:$(GLSRC)gxdevmem.h
$(GLSRC)gxmclip.h:$(GLSRC)gxdevcli.h
+$(GLSRC)gxmclip.h:$(GLSRC)gxcmap.h
$(GLSRC)gxmclip.h:$(GLSRC)gxtext.h
$(GLSRC)gxmclip.h:$(GLSRC)gstext.h
$(GLSRC)gxmclip.h:$(GLSRC)gsnamecl.h
$(GLSRC)gxmclip.h:$(GLSRC)gstparam.h
-$(GLSRC)gxmclip.h:$(GLSRC)gxfcache.h
-$(GLSRC)gxmclip.h:$(GLSRC)gxcspace.h
-$(GLSRC)gxmclip.h:$(GLSRC)gsropt.h
+$(GLSRC)gxmclip.h:$(GLSRC)gxfmap.h
$(GLSRC)gxmclip.h:$(GLSRC)gsfunc.h
+$(GLSRC)gxmclip.h:$(GLSRC)gxcspace.h
$(GLSRC)gxmclip.h:$(GLSRC)gxrplane.h
-$(GLSRC)gxmclip.h:$(GLSRC)gsuid.h
-$(GLSRC)gxmclip.h:$(GLSRC)gxcmap.h
+$(GLSRC)gxmclip.h:$(GLSRC)gscsel.h
+$(GLSRC)gxmclip.h:$(GLSRC)gxfcache.h
+$(GLSRC)gxmclip.h:$(GLSRC)gsfont.h
$(GLSRC)gxmclip.h:$(GLSRC)gsimage.h
$(GLSRC)gxmclip.h:$(GLSRC)gsdcolor.h
-$(GLSRC)gxmclip.h:$(GLSRC)gxdda.h
$(GLSRC)gxmclip.h:$(GLSRC)gxcvalue.h
-$(GLSRC)gxmclip.h:$(GLSRC)gsfont.h
-$(GLSRC)gxmclip.h:$(GLSRC)gxfmap.h
-$(GLSRC)gxmclip.h:$(GLSRC)gxftype.h
+$(GLSRC)gxmclip.h:$(GLSRC)gxbcache.h
+$(GLSRC)gxmclip.h:$(GLSRC)gsropt.h
+$(GLSRC)gxmclip.h:$(GLSRC)gxdda.h
+$(GLSRC)gxmclip.h:$(GLSRC)gxpath.h
$(GLSRC)gxmclip.h:$(GLSRC)gxfrac.h
+$(GLSRC)gxmclip.h:$(GLSRC)gxtmap.h
+$(GLSRC)gxmclip.h:$(GLSRC)gxftype.h
$(GLSRC)gxmclip.h:$(GLSRC)gscms.h
-$(GLSRC)gxmclip.h:$(GLSRC)gscspace.h
-$(GLSRC)gxmclip.h:$(GLSRC)gxpath.h
-$(GLSRC)gxmclip.h:$(GLSRC)gxbcache.h
-$(GLSRC)gxmclip.h:$(GLSRC)gsdevice.h
-$(GLSRC)gxmclip.h:$(GLSRC)gxarith.h
-$(GLSRC)gxmclip.h:$(GLSRC)gspenum.h
-$(GLSRC)gxmclip.h:$(GLSRC)gxhttile.h
$(GLSRC)gxmclip.h:$(GLSRC)gsrect.h
$(GLSRC)gxmclip.h:$(GLSRC)gslparam.h
+$(GLSRC)gxmclip.h:$(GLSRC)gsdevice.h
+$(GLSRC)gxmclip.h:$(GLSRC)gscpm.h
+$(GLSRC)gxmclip.h:$(GLSRC)gscspace.h
+$(GLSRC)gxmclip.h:$(GLSRC)gsgstate.h
$(GLSRC)gxmclip.h:$(GLSRC)gsxfont.h
-$(GLSRC)gxmclip.h:$(GLSRC)gsiparam.h
$(GLSRC)gxmclip.h:$(GLSRC)gsdsrc.h
-$(GLSRC)gxmclip.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gxmclip.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gxmclip.h:$(GLSRC)gscpm.h
+$(GLSRC)gxmclip.h:$(GLSRC)gsiparam.h
$(GLSRC)gxmclip.h:$(GLSRC)gxfixed.h
-$(GLSRC)gxmclip.h:$(GLSRC)gsrefct.h
+$(GLSRC)gxmclip.h:$(GLSRC)gscompt.h
+$(GLSRC)gxmclip.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gxmclip.h:$(GLSRC)gspenum.h
+$(GLSRC)gxmclip.h:$(GLSRC)gxhttile.h
$(GLSRC)gxmclip.h:$(GLSRC)gsparam.h
+$(GLSRC)gxmclip.h:$(GLSRC)gsrefct.h
$(GLSRC)gxmclip.h:$(GLSRC)gp.h
-$(GLSRC)gxmclip.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxmclip.h:$(GLSRC)memento.h
+$(GLSRC)gxmclip.h:$(GLSRC)memory_.h
+$(GLSRC)gxmclip.h:$(GLSRC)gsuid.h
$(GLSRC)gxmclip.h:$(GLSRC)gsstruct.h
$(GLSRC)gxmclip.h:$(GLSRC)gxsync.h
+$(GLSRC)gxmclip.h:$(GLSRC)gxbitmap.h
$(GLSRC)gxmclip.h:$(GLSRC)srdline.h
$(GLSRC)gxmclip.h:$(GLSRC)scommon.h
-$(GLSRC)gxmclip.h:$(GLSRC)memento.h
-$(GLSRC)gxmclip.h:$(GLSRC)gscsel.h
$(GLSRC)gxmclip.h:$(GLSRC)gsbitmap.h
-$(GLSRC)gxmclip.h:$(GLSRC)gsstype.h
+$(GLSRC)gxmclip.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxmclip.h:$(GLSRC)gxarith.h
$(GLSRC)gxmclip.h:$(GLSRC)stat_.h
-$(GLSRC)gxmclip.h:$(GLSRC)gxtmap.h
-$(GLSRC)gxmclip.h:$(GLSRC)gsmemory.h
$(GLSRC)gxmclip.h:$(GLSRC)gpsync.h
-$(GLSRC)gxmclip.h:$(GLSRC)memory_.h
+$(GLSRC)gxmclip.h:$(GLSRC)gsstype.h
+$(GLSRC)gxmclip.h:$(GLSRC)gsmemory.h
$(GLSRC)gxmclip.h:$(GLSRC)gpgetenv.h
-$(GLSRC)gxmclip.h:$(GLSRC)gslibctx.h
$(GLSRC)gxmclip.h:$(GLSRC)gscdefs.h
-$(GLSRC)gxmclip.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gxmclip.h:$(GLSRC)stdio_.h
-$(GLSRC)gxmclip.h:$(GLSRC)gscompt.h
+$(GLSRC)gxmclip.h:$(GLSRC)gslibctx.h
$(GLSRC)gxmclip.h:$(GLSRC)gxcindex.h
-$(GLSRC)gxmclip.h:$(GLSRC)gsgstate.h
+$(GLSRC)gxmclip.h:$(GLSRC)stdio_.h
+$(GLSRC)gxmclip.h:$(GLSRC)gsccode.h
$(GLSRC)gxmclip.h:$(GLSRC)stdint_.h
$(GLSRC)gxmclip.h:$(GLSRC)gssprintf.h
-$(GLSRC)gxmclip.h:$(GLSRC)gsccode.h
-$(GLSRC)gxmclip.h:$(GLSRC)std.h
$(GLSRC)gxmclip.h:$(GLSRC)gstypes.h
+$(GLSRC)gxmclip.h:$(GLSRC)std.h
$(GLSRC)gxmclip.h:$(GLSRC)stdpre.h
$(GLSRC)gxmclip.h:$(GLGEN)arch.h
+$(GLSRC)gxmclip.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxoprect.h:$(GLSRC)gxdevcli.h
+$(GLSRC)gxoprect.h:$(GLSRC)gxcmap.h
$(GLSRC)gxoprect.h:$(GLSRC)gxtext.h
$(GLSRC)gxoprect.h:$(GLSRC)gstext.h
$(GLSRC)gxoprect.h:$(GLSRC)gsnamecl.h
$(GLSRC)gxoprect.h:$(GLSRC)gstparam.h
-$(GLSRC)gxoprect.h:$(GLSRC)gxfcache.h
-$(GLSRC)gxoprect.h:$(GLSRC)gxcspace.h
-$(GLSRC)gxoprect.h:$(GLSRC)gsropt.h
+$(GLSRC)gxoprect.h:$(GLSRC)gxfmap.h
$(GLSRC)gxoprect.h:$(GLSRC)gsfunc.h
+$(GLSRC)gxoprect.h:$(GLSRC)gxcspace.h
$(GLSRC)gxoprect.h:$(GLSRC)gxrplane.h
-$(GLSRC)gxoprect.h:$(GLSRC)gsuid.h
-$(GLSRC)gxoprect.h:$(GLSRC)gxcmap.h
+$(GLSRC)gxoprect.h:$(GLSRC)gscsel.h
+$(GLSRC)gxoprect.h:$(GLSRC)gxfcache.h
+$(GLSRC)gxoprect.h:$(GLSRC)gsfont.h
$(GLSRC)gxoprect.h:$(GLSRC)gsimage.h
$(GLSRC)gxoprect.h:$(GLSRC)gsdcolor.h
-$(GLSRC)gxoprect.h:$(GLSRC)gxdda.h
$(GLSRC)gxoprect.h:$(GLSRC)gxcvalue.h
-$(GLSRC)gxoprect.h:$(GLSRC)gsfont.h
-$(GLSRC)gxoprect.h:$(GLSRC)gxfmap.h
-$(GLSRC)gxoprect.h:$(GLSRC)gxftype.h
+$(GLSRC)gxoprect.h:$(GLSRC)gxbcache.h
+$(GLSRC)gxoprect.h:$(GLSRC)gsropt.h
+$(GLSRC)gxoprect.h:$(GLSRC)gxdda.h
+$(GLSRC)gxoprect.h:$(GLSRC)gxpath.h
$(GLSRC)gxoprect.h:$(GLSRC)gxfrac.h
+$(GLSRC)gxoprect.h:$(GLSRC)gxtmap.h
+$(GLSRC)gxoprect.h:$(GLSRC)gxftype.h
$(GLSRC)gxoprect.h:$(GLSRC)gscms.h
-$(GLSRC)gxoprect.h:$(GLSRC)gscspace.h
-$(GLSRC)gxoprect.h:$(GLSRC)gxpath.h
-$(GLSRC)gxoprect.h:$(GLSRC)gxbcache.h
-$(GLSRC)gxoprect.h:$(GLSRC)gsdevice.h
-$(GLSRC)gxoprect.h:$(GLSRC)gxarith.h
-$(GLSRC)gxoprect.h:$(GLSRC)gspenum.h
-$(GLSRC)gxoprect.h:$(GLSRC)gxhttile.h
$(GLSRC)gxoprect.h:$(GLSRC)gsrect.h
$(GLSRC)gxoprect.h:$(GLSRC)gslparam.h
+$(GLSRC)gxoprect.h:$(GLSRC)gsdevice.h
+$(GLSRC)gxoprect.h:$(GLSRC)gscpm.h
+$(GLSRC)gxoprect.h:$(GLSRC)gscspace.h
+$(GLSRC)gxoprect.h:$(GLSRC)gsgstate.h
$(GLSRC)gxoprect.h:$(GLSRC)gsxfont.h
-$(GLSRC)gxoprect.h:$(GLSRC)gsiparam.h
$(GLSRC)gxoprect.h:$(GLSRC)gsdsrc.h
-$(GLSRC)gxoprect.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gxoprect.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gxoprect.h:$(GLSRC)gscpm.h
+$(GLSRC)gxoprect.h:$(GLSRC)gsiparam.h
$(GLSRC)gxoprect.h:$(GLSRC)gxfixed.h
-$(GLSRC)gxoprect.h:$(GLSRC)gsrefct.h
+$(GLSRC)gxoprect.h:$(GLSRC)gscompt.h
+$(GLSRC)gxoprect.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gxoprect.h:$(GLSRC)gspenum.h
+$(GLSRC)gxoprect.h:$(GLSRC)gxhttile.h
$(GLSRC)gxoprect.h:$(GLSRC)gsparam.h
+$(GLSRC)gxoprect.h:$(GLSRC)gsrefct.h
$(GLSRC)gxoprect.h:$(GLSRC)gp.h
-$(GLSRC)gxoprect.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxoprect.h:$(GLSRC)memento.h
+$(GLSRC)gxoprect.h:$(GLSRC)memory_.h
+$(GLSRC)gxoprect.h:$(GLSRC)gsuid.h
$(GLSRC)gxoprect.h:$(GLSRC)gsstruct.h
$(GLSRC)gxoprect.h:$(GLSRC)gxsync.h
+$(GLSRC)gxoprect.h:$(GLSRC)gxbitmap.h
$(GLSRC)gxoprect.h:$(GLSRC)srdline.h
$(GLSRC)gxoprect.h:$(GLSRC)scommon.h
-$(GLSRC)gxoprect.h:$(GLSRC)memento.h
-$(GLSRC)gxoprect.h:$(GLSRC)gscsel.h
$(GLSRC)gxoprect.h:$(GLSRC)gsbitmap.h
-$(GLSRC)gxoprect.h:$(GLSRC)gsstype.h
+$(GLSRC)gxoprect.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxoprect.h:$(GLSRC)gxarith.h
$(GLSRC)gxoprect.h:$(GLSRC)stat_.h
-$(GLSRC)gxoprect.h:$(GLSRC)gxtmap.h
-$(GLSRC)gxoprect.h:$(GLSRC)gsmemory.h
$(GLSRC)gxoprect.h:$(GLSRC)gpsync.h
-$(GLSRC)gxoprect.h:$(GLSRC)memory_.h
+$(GLSRC)gxoprect.h:$(GLSRC)gsstype.h
+$(GLSRC)gxoprect.h:$(GLSRC)gsmemory.h
$(GLSRC)gxoprect.h:$(GLSRC)gpgetenv.h
-$(GLSRC)gxoprect.h:$(GLSRC)gslibctx.h
$(GLSRC)gxoprect.h:$(GLSRC)gscdefs.h
-$(GLSRC)gxoprect.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gxoprect.h:$(GLSRC)stdio_.h
-$(GLSRC)gxoprect.h:$(GLSRC)gscompt.h
+$(GLSRC)gxoprect.h:$(GLSRC)gslibctx.h
$(GLSRC)gxoprect.h:$(GLSRC)gxcindex.h
-$(GLSRC)gxoprect.h:$(GLSRC)gsgstate.h
+$(GLSRC)gxoprect.h:$(GLSRC)stdio_.h
+$(GLSRC)gxoprect.h:$(GLSRC)gsccode.h
$(GLSRC)gxoprect.h:$(GLSRC)stdint_.h
$(GLSRC)gxoprect.h:$(GLSRC)gssprintf.h
-$(GLSRC)gxoprect.h:$(GLSRC)gsccode.h
-$(GLSRC)gxoprect.h:$(GLSRC)std.h
$(GLSRC)gxoprect.h:$(GLSRC)gstypes.h
+$(GLSRC)gxoprect.h:$(GLSRC)std.h
$(GLSRC)gxoprect.h:$(GLSRC)stdpre.h
$(GLSRC)gxoprect.h:$(GLGEN)arch.h
+$(GLSRC)gxoprect.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxp1impl.h:$(GLSRC)gxpcolor.h
-$(GLSRC)gxp1impl.h:$(GLSRC)gxblend.h
+$(GLSRC)gxp1impl.h:$(GLSRC)gxdevmem.h
$(GLSRC)gxp1impl.h:$(GLSRC)gxdcolor.h
+$(GLSRC)gxp1impl.h:$(GLSRC)gxblend.h
$(GLSRC)gxp1impl.h:$(GLSRC)gxdevice.h
$(GLSRC)gxp1impl.h:$(GLSRC)gxcpath.h
-$(GLSRC)gxp1impl.h:$(GLSRC)gxdevmem.h
$(GLSRC)gxp1impl.h:$(GLSRC)gxdevcli.h
$(GLSRC)gxp1impl.h:$(GLSRC)gxpcache.h
+$(GLSRC)gxp1impl.h:$(GLSRC)gxcmap.h
$(GLSRC)gxp1impl.h:$(GLSRC)gxtext.h
$(GLSRC)gxp1impl.h:$(GLSRC)gstext.h
$(GLSRC)gxp1impl.h:$(GLSRC)gsnamecl.h
$(GLSRC)gxp1impl.h:$(GLSRC)gstparam.h
$(GLSRC)gxp1impl.h:$(GLSRC)gspcolor.h
-$(GLSRC)gxp1impl.h:$(GLSRC)gxfcache.h
-$(GLSRC)gxp1impl.h:$(GLSRC)gxcspace.h
-$(GLSRC)gxp1impl.h:$(GLSRC)gsropt.h
-$(GLSRC)gxp1impl.h:$(GLSRC)gsfunc.h
+$(GLSRC)gxp1impl.h:$(GLSRC)gxfmap.h
$(GLSRC)gxp1impl.h:$(GLSRC)gsmalloc.h
+$(GLSRC)gxp1impl.h:$(GLSRC)gsfunc.h
+$(GLSRC)gxp1impl.h:$(GLSRC)gxcspace.h
$(GLSRC)gxp1impl.h:$(GLSRC)gxrplane.h
-$(GLSRC)gxp1impl.h:$(GLSRC)gsuid.h
-$(GLSRC)gxp1impl.h:$(GLSRC)gxcmap.h
+$(GLSRC)gxp1impl.h:$(GLSRC)gscsel.h
+$(GLSRC)gxp1impl.h:$(GLSRC)gxfcache.h
+$(GLSRC)gxp1impl.h:$(GLSRC)gsfont.h
$(GLSRC)gxp1impl.h:$(GLSRC)gsimage.h
$(GLSRC)gxp1impl.h:$(GLSRC)gsdcolor.h
-$(GLSRC)gxp1impl.h:$(GLSRC)gxdda.h
$(GLSRC)gxp1impl.h:$(GLSRC)gxcvalue.h
-$(GLSRC)gxp1impl.h:$(GLSRC)gsfont.h
-$(GLSRC)gxp1impl.h:$(GLSRC)gxfmap.h
+$(GLSRC)gxp1impl.h:$(GLSRC)gxbcache.h
+$(GLSRC)gxp1impl.h:$(GLSRC)gsropt.h
+$(GLSRC)gxp1impl.h:$(GLSRC)gxdda.h
+$(GLSRC)gxp1impl.h:$(GLSRC)gxpath.h
$(GLSRC)gxp1impl.h:$(GLSRC)gxiclass.h
-$(GLSRC)gxp1impl.h:$(GLSRC)gxftype.h
$(GLSRC)gxp1impl.h:$(GLSRC)gxfrac.h
+$(GLSRC)gxp1impl.h:$(GLSRC)gxtmap.h
+$(GLSRC)gxp1impl.h:$(GLSRC)gxftype.h
$(GLSRC)gxp1impl.h:$(GLSRC)gscms.h
-$(GLSRC)gxp1impl.h:$(GLSRC)gscspace.h
-$(GLSRC)gxp1impl.h:$(GLSRC)gxpath.h
-$(GLSRC)gxp1impl.h:$(GLSRC)gxbcache.h
-$(GLSRC)gxp1impl.h:$(GLSRC)gsdevice.h
-$(GLSRC)gxp1impl.h:$(GLSRC)gxarith.h
-$(GLSRC)gxp1impl.h:$(GLSRC)gxstdio.h
-$(GLSRC)gxp1impl.h:$(GLSRC)gspenum.h
-$(GLSRC)gxp1impl.h:$(GLSRC)gxhttile.h
$(GLSRC)gxp1impl.h:$(GLSRC)gsrect.h
$(GLSRC)gxp1impl.h:$(GLSRC)gslparam.h
+$(GLSRC)gxp1impl.h:$(GLSRC)gsdevice.h
+$(GLSRC)gxp1impl.h:$(GLSRC)gscpm.h
+$(GLSRC)gxp1impl.h:$(GLSRC)gscspace.h
+$(GLSRC)gxp1impl.h:$(GLSRC)gsgstate.h
+$(GLSRC)gxp1impl.h:$(GLSRC)gxstdio.h
$(GLSRC)gxp1impl.h:$(GLSRC)gsxfont.h
-$(GLSRC)gxp1impl.h:$(GLSRC)gsiparam.h
$(GLSRC)gxp1impl.h:$(GLSRC)gsdsrc.h
$(GLSRC)gxp1impl.h:$(GLSRC)gsio.h
-$(GLSRC)gxp1impl.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gxp1impl.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gxp1impl.h:$(GLSRC)gscpm.h
+$(GLSRC)gxp1impl.h:$(GLSRC)gsiparam.h
$(GLSRC)gxp1impl.h:$(GLSRC)gxfixed.h
-$(GLSRC)gxp1impl.h:$(GLSRC)gsrefct.h
+$(GLSRC)gxp1impl.h:$(GLSRC)gscompt.h
+$(GLSRC)gxp1impl.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gxp1impl.h:$(GLSRC)gspenum.h
+$(GLSRC)gxp1impl.h:$(GLSRC)gxhttile.h
$(GLSRC)gxp1impl.h:$(GLSRC)gsparam.h
+$(GLSRC)gxp1impl.h:$(GLSRC)gsrefct.h
$(GLSRC)gxp1impl.h:$(GLSRC)gp.h
-$(GLSRC)gxp1impl.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxp1impl.h:$(GLSRC)memento.h
+$(GLSRC)gxp1impl.h:$(GLSRC)memory_.h
+$(GLSRC)gxp1impl.h:$(GLSRC)gsuid.h
$(GLSRC)gxp1impl.h:$(GLSRC)gsstruct.h
$(GLSRC)gxp1impl.h:$(GLSRC)gxsync.h
+$(GLSRC)gxp1impl.h:$(GLSRC)gxbitmap.h
$(GLSRC)gxp1impl.h:$(GLSRC)srdline.h
$(GLSRC)gxp1impl.h:$(GLSRC)scommon.h
-$(GLSRC)gxp1impl.h:$(GLSRC)memento.h
-$(GLSRC)gxp1impl.h:$(GLSRC)gscsel.h
-$(GLSRC)gxp1impl.h:$(GLSRC)gsbitmap.h
$(GLSRC)gxp1impl.h:$(GLSRC)gsfname.h
-$(GLSRC)gxp1impl.h:$(GLSRC)gsstype.h
+$(GLSRC)gxp1impl.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gxp1impl.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxp1impl.h:$(GLSRC)gxarith.h
$(GLSRC)gxp1impl.h:$(GLSRC)stat_.h
-$(GLSRC)gxp1impl.h:$(GLSRC)gxtmap.h
-$(GLSRC)gxp1impl.h:$(GLSRC)gsmemory.h
$(GLSRC)gxp1impl.h:$(GLSRC)gpsync.h
-$(GLSRC)gxp1impl.h:$(GLSRC)memory_.h
+$(GLSRC)gxp1impl.h:$(GLSRC)gsstype.h
+$(GLSRC)gxp1impl.h:$(GLSRC)gsmemory.h
$(GLSRC)gxp1impl.h:$(GLSRC)gpgetenv.h
-$(GLSRC)gxp1impl.h:$(GLSRC)gslibctx.h
$(GLSRC)gxp1impl.h:$(GLSRC)gscdefs.h
-$(GLSRC)gxp1impl.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gxp1impl.h:$(GLSRC)stdio_.h
-$(GLSRC)gxp1impl.h:$(GLSRC)gscompt.h
+$(GLSRC)gxp1impl.h:$(GLSRC)gslibctx.h
$(GLSRC)gxp1impl.h:$(GLSRC)gxcindex.h
-$(GLSRC)gxp1impl.h:$(GLSRC)gsgstate.h
+$(GLSRC)gxp1impl.h:$(GLSRC)stdio_.h
+$(GLSRC)gxp1impl.h:$(GLSRC)gsccode.h
$(GLSRC)gxp1impl.h:$(GLSRC)stdint_.h
$(GLSRC)gxp1impl.h:$(GLSRC)gssprintf.h
-$(GLSRC)gxp1impl.h:$(GLSRC)gsccode.h
-$(GLSRC)gxp1impl.h:$(GLSRC)std.h
$(GLSRC)gxp1impl.h:$(GLSRC)gstypes.h
+$(GLSRC)gxp1impl.h:$(GLSRC)std.h
$(GLSRC)gxp1impl.h:$(GLSRC)stdpre.h
$(GLSRC)gxp1impl.h:$(GLGEN)arch.h
+$(GLSRC)gxp1impl.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxpaint.h:$(GLSRC)gsdcolor.h
-$(GLSRC)gxpaint.h:$(GLSRC)gscms.h
-$(GLSRC)gxpaint.h:$(GLSRC)gscspace.h
$(GLSRC)gxpaint.h:$(GLSRC)gxpath.h
-$(GLSRC)gxpaint.h:$(GLSRC)gsdevice.h
-$(GLSRC)gxpaint.h:$(GLSRC)gxarith.h
-$(GLSRC)gxpaint.h:$(GLSRC)gspenum.h
-$(GLSRC)gxpaint.h:$(GLSRC)gxhttile.h
+$(GLSRC)gxpaint.h:$(GLSRC)gscms.h
$(GLSRC)gxpaint.h:$(GLSRC)gsrect.h
$(GLSRC)gxpaint.h:$(GLSRC)gslparam.h
-$(GLSRC)gxpaint.h:$(GLSRC)gsiparam.h
-$(GLSRC)gxpaint.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gxpaint.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gxpaint.h:$(GLSRC)gsdevice.h
$(GLSRC)gxpaint.h:$(GLSRC)gscpm.h
+$(GLSRC)gxpaint.h:$(GLSRC)gscspace.h
+$(GLSRC)gxpaint.h:$(GLSRC)gsgstate.h
+$(GLSRC)gxpaint.h:$(GLSRC)gsiparam.h
$(GLSRC)gxpaint.h:$(GLSRC)gxfixed.h
-$(GLSRC)gxpaint.h:$(GLSRC)gsrefct.h
+$(GLSRC)gxpaint.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gxpaint.h:$(GLSRC)gspenum.h
+$(GLSRC)gxpaint.h:$(GLSRC)gxhttile.h
$(GLSRC)gxpaint.h:$(GLSRC)gsparam.h
-$(GLSRC)gxpaint.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxpaint.h:$(GLSRC)gsrefct.h
+$(GLSRC)gxpaint.h:$(GLSRC)memento.h
$(GLSRC)gxpaint.h:$(GLSRC)gxsync.h
+$(GLSRC)gxpaint.h:$(GLSRC)gxbitmap.h
$(GLSRC)gxpaint.h:$(GLSRC)scommon.h
-$(GLSRC)gxpaint.h:$(GLSRC)memento.h
$(GLSRC)gxpaint.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gxpaint.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxpaint.h:$(GLSRC)gxarith.h
+$(GLSRC)gxpaint.h:$(GLSRC)gpsync.h
$(GLSRC)gxpaint.h:$(GLSRC)gsstype.h
$(GLSRC)gxpaint.h:$(GLSRC)gsmemory.h
-$(GLSRC)gxpaint.h:$(GLSRC)gpsync.h
$(GLSRC)gxpaint.h:$(GLSRC)gslibctx.h
-$(GLSRC)gxpaint.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gxpaint.h:$(GLSRC)stdio_.h
$(GLSRC)gxpaint.h:$(GLSRC)gxcindex.h
-$(GLSRC)gxpaint.h:$(GLSRC)gsgstate.h
+$(GLSRC)gxpaint.h:$(GLSRC)stdio_.h
$(GLSRC)gxpaint.h:$(GLSRC)stdint_.h
$(GLSRC)gxpaint.h:$(GLSRC)gssprintf.h
-$(GLSRC)gxpaint.h:$(GLSRC)std.h
$(GLSRC)gxpaint.h:$(GLSRC)gstypes.h
+$(GLSRC)gxpaint.h:$(GLSRC)std.h
$(GLSRC)gxpaint.h:$(GLSRC)stdpre.h
$(GLSRC)gxpaint.h:$(GLGEN)arch.h
-$(GLSRC)gxpath.h:$(GLSRC)gspenum.h
+$(GLSRC)gxpaint.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxpath.h:$(GLSRC)gsrect.h
$(GLSRC)gxpath.h:$(GLSRC)gslparam.h
$(GLSRC)gxpath.h:$(GLSRC)gscpm.h
-$(GLSRC)gxpath.h:$(GLSRC)gxfixed.h
$(GLSRC)gxpath.h:$(GLSRC)gsgstate.h
-$(GLSRC)gxpath.h:$(GLSRC)std.h
+$(GLSRC)gxpath.h:$(GLSRC)gxfixed.h
+$(GLSRC)gxpath.h:$(GLSRC)gspenum.h
$(GLSRC)gxpath.h:$(GLSRC)gstypes.h
+$(GLSRC)gxpath.h:$(GLSRC)std.h
$(GLSRC)gxpath.h:$(GLSRC)stdpre.h
$(GLSRC)gxpath.h:$(GLGEN)arch.h
$(GLSRC)gxpcache.h:$(GLSRC)gsdcolor.h
$(GLSRC)gxpcache.h:$(GLSRC)gscms.h
-$(GLSRC)gxpcache.h:$(GLSRC)gscspace.h
$(GLSRC)gxpcache.h:$(GLSRC)gsdevice.h
-$(GLSRC)gxpcache.h:$(GLSRC)gxarith.h
-$(GLSRC)gxpcache.h:$(GLSRC)gxhttile.h
+$(GLSRC)gxpcache.h:$(GLSRC)gscspace.h
+$(GLSRC)gxpcache.h:$(GLSRC)gsgstate.h
$(GLSRC)gxpcache.h:$(GLSRC)gsiparam.h
-$(GLSRC)gxpcache.h:$(GLSRC)gxbitmap.h
$(GLSRC)gxpcache.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gxpcache.h:$(GLSRC)gsrefct.h
+$(GLSRC)gxpcache.h:$(GLSRC)gxhttile.h
$(GLSRC)gxpcache.h:$(GLSRC)gsparam.h
-$(GLSRC)gxpcache.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxpcache.h:$(GLSRC)gsrefct.h
+$(GLSRC)gxpcache.h:$(GLSRC)memento.h
$(GLSRC)gxpcache.h:$(GLSRC)gxsync.h
+$(GLSRC)gxpcache.h:$(GLSRC)gxbitmap.h
$(GLSRC)gxpcache.h:$(GLSRC)scommon.h
-$(GLSRC)gxpcache.h:$(GLSRC)memento.h
$(GLSRC)gxpcache.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gxpcache.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxpcache.h:$(GLSRC)gxarith.h
+$(GLSRC)gxpcache.h:$(GLSRC)gpsync.h
$(GLSRC)gxpcache.h:$(GLSRC)gsstype.h
$(GLSRC)gxpcache.h:$(GLSRC)gsmemory.h
-$(GLSRC)gxpcache.h:$(GLSRC)gpsync.h
$(GLSRC)gxpcache.h:$(GLSRC)gslibctx.h
-$(GLSRC)gxpcache.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gxpcache.h:$(GLSRC)stdio_.h
$(GLSRC)gxpcache.h:$(GLSRC)gxcindex.h
-$(GLSRC)gxpcache.h:$(GLSRC)gsgstate.h
+$(GLSRC)gxpcache.h:$(GLSRC)stdio_.h
$(GLSRC)gxpcache.h:$(GLSRC)stdint_.h
$(GLSRC)gxpcache.h:$(GLSRC)gssprintf.h
-$(GLSRC)gxpcache.h:$(GLSRC)std.h
$(GLSRC)gxpcache.h:$(GLSRC)gstypes.h
+$(GLSRC)gxpcache.h:$(GLSRC)std.h
$(GLSRC)gxpcache.h:$(GLSRC)stdpre.h
$(GLSRC)gxpcache.h:$(GLGEN)arch.h
+$(GLSRC)gxpcache.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxsample.h:$(GLSRC)std.h
$(GLSRC)gxsample.h:$(GLSRC)stdpre.h
$(GLSRC)gxsample.h:$(GLGEN)arch.h
@@ -6226,1947 +6239,1947 @@ $(GLSRC)gxsamplp.h:$(GLSRC)valgrind.h
$(GLSRC)gxsamplp.h:$(GLSRC)stdpre.h
$(GLSRC)gxscanc.h:$(GLSRC)gxdevice.h
$(GLSRC)gxscanc.h:$(GLSRC)gxdevcli.h
+$(GLSRC)gxscanc.h:$(GLSRC)gxcmap.h
$(GLSRC)gxscanc.h:$(GLSRC)gxtext.h
$(GLSRC)gxscanc.h:$(GLSRC)gstext.h
$(GLSRC)gxscanc.h:$(GLSRC)gsnamecl.h
$(GLSRC)gxscanc.h:$(GLSRC)gstparam.h
-$(GLSRC)gxscanc.h:$(GLSRC)gxfcache.h
-$(GLSRC)gxscanc.h:$(GLSRC)gxcspace.h
-$(GLSRC)gxscanc.h:$(GLSRC)gsropt.h
-$(GLSRC)gxscanc.h:$(GLSRC)gsfunc.h
+$(GLSRC)gxscanc.h:$(GLSRC)gxfmap.h
$(GLSRC)gxscanc.h:$(GLSRC)gsmalloc.h
+$(GLSRC)gxscanc.h:$(GLSRC)gsfunc.h
+$(GLSRC)gxscanc.h:$(GLSRC)gxcspace.h
$(GLSRC)gxscanc.h:$(GLSRC)gxrplane.h
-$(GLSRC)gxscanc.h:$(GLSRC)gsuid.h
-$(GLSRC)gxscanc.h:$(GLSRC)gxcmap.h
+$(GLSRC)gxscanc.h:$(GLSRC)gscsel.h
+$(GLSRC)gxscanc.h:$(GLSRC)gxfcache.h
+$(GLSRC)gxscanc.h:$(GLSRC)gsfont.h
$(GLSRC)gxscanc.h:$(GLSRC)gsimage.h
$(GLSRC)gxscanc.h:$(GLSRC)gsdcolor.h
-$(GLSRC)gxscanc.h:$(GLSRC)gxdda.h
$(GLSRC)gxscanc.h:$(GLSRC)gxcvalue.h
-$(GLSRC)gxscanc.h:$(GLSRC)gsfont.h
-$(GLSRC)gxscanc.h:$(GLSRC)gxfmap.h
-$(GLSRC)gxscanc.h:$(GLSRC)gxftype.h
+$(GLSRC)gxscanc.h:$(GLSRC)gxbcache.h
+$(GLSRC)gxscanc.h:$(GLSRC)gsropt.h
+$(GLSRC)gxscanc.h:$(GLSRC)gxdda.h
+$(GLSRC)gxscanc.h:$(GLSRC)gxpath.h
$(GLSRC)gxscanc.h:$(GLSRC)gxfrac.h
+$(GLSRC)gxscanc.h:$(GLSRC)gxtmap.h
+$(GLSRC)gxscanc.h:$(GLSRC)gxftype.h
$(GLSRC)gxscanc.h:$(GLSRC)gscms.h
-$(GLSRC)gxscanc.h:$(GLSRC)gscspace.h
-$(GLSRC)gxscanc.h:$(GLSRC)gxpath.h
-$(GLSRC)gxscanc.h:$(GLSRC)gxbcache.h
-$(GLSRC)gxscanc.h:$(GLSRC)gsdevice.h
-$(GLSRC)gxscanc.h:$(GLSRC)gxarith.h
-$(GLSRC)gxscanc.h:$(GLSRC)gxstdio.h
-$(GLSRC)gxscanc.h:$(GLSRC)gspenum.h
-$(GLSRC)gxscanc.h:$(GLSRC)gxhttile.h
$(GLSRC)gxscanc.h:$(GLSRC)gsrect.h
$(GLSRC)gxscanc.h:$(GLSRC)gslparam.h
+$(GLSRC)gxscanc.h:$(GLSRC)gsdevice.h
+$(GLSRC)gxscanc.h:$(GLSRC)gscpm.h
+$(GLSRC)gxscanc.h:$(GLSRC)gscspace.h
+$(GLSRC)gxscanc.h:$(GLSRC)gsgstate.h
+$(GLSRC)gxscanc.h:$(GLSRC)gxstdio.h
$(GLSRC)gxscanc.h:$(GLSRC)gsxfont.h
-$(GLSRC)gxscanc.h:$(GLSRC)gsiparam.h
$(GLSRC)gxscanc.h:$(GLSRC)gsdsrc.h
$(GLSRC)gxscanc.h:$(GLSRC)gsio.h
-$(GLSRC)gxscanc.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gxscanc.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gxscanc.h:$(GLSRC)gscpm.h
+$(GLSRC)gxscanc.h:$(GLSRC)gsiparam.h
$(GLSRC)gxscanc.h:$(GLSRC)gxfixed.h
-$(GLSRC)gxscanc.h:$(GLSRC)gsrefct.h
+$(GLSRC)gxscanc.h:$(GLSRC)gscompt.h
+$(GLSRC)gxscanc.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gxscanc.h:$(GLSRC)gspenum.h
+$(GLSRC)gxscanc.h:$(GLSRC)gxhttile.h
$(GLSRC)gxscanc.h:$(GLSRC)gsparam.h
+$(GLSRC)gxscanc.h:$(GLSRC)gsrefct.h
$(GLSRC)gxscanc.h:$(GLSRC)gp.h
-$(GLSRC)gxscanc.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxscanc.h:$(GLSRC)memento.h
+$(GLSRC)gxscanc.h:$(GLSRC)memory_.h
+$(GLSRC)gxscanc.h:$(GLSRC)gsuid.h
$(GLSRC)gxscanc.h:$(GLSRC)gsstruct.h
$(GLSRC)gxscanc.h:$(GLSRC)gxsync.h
+$(GLSRC)gxscanc.h:$(GLSRC)gxbitmap.h
$(GLSRC)gxscanc.h:$(GLSRC)srdline.h
$(GLSRC)gxscanc.h:$(GLSRC)scommon.h
-$(GLSRC)gxscanc.h:$(GLSRC)memento.h
-$(GLSRC)gxscanc.h:$(GLSRC)gscsel.h
-$(GLSRC)gxscanc.h:$(GLSRC)gsbitmap.h
$(GLSRC)gxscanc.h:$(GLSRC)gsfname.h
-$(GLSRC)gxscanc.h:$(GLSRC)gsstype.h
+$(GLSRC)gxscanc.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gxscanc.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxscanc.h:$(GLSRC)gxarith.h
$(GLSRC)gxscanc.h:$(GLSRC)stat_.h
-$(GLSRC)gxscanc.h:$(GLSRC)gxtmap.h
-$(GLSRC)gxscanc.h:$(GLSRC)gsmemory.h
$(GLSRC)gxscanc.h:$(GLSRC)gpsync.h
-$(GLSRC)gxscanc.h:$(GLSRC)memory_.h
+$(GLSRC)gxscanc.h:$(GLSRC)gsstype.h
+$(GLSRC)gxscanc.h:$(GLSRC)gsmemory.h
$(GLSRC)gxscanc.h:$(GLSRC)gpgetenv.h
-$(GLSRC)gxscanc.h:$(GLSRC)gslibctx.h
$(GLSRC)gxscanc.h:$(GLSRC)gscdefs.h
-$(GLSRC)gxscanc.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gxscanc.h:$(GLSRC)stdio_.h
-$(GLSRC)gxscanc.h:$(GLSRC)gscompt.h
+$(GLSRC)gxscanc.h:$(GLSRC)gslibctx.h
$(GLSRC)gxscanc.h:$(GLSRC)gxcindex.h
-$(GLSRC)gxscanc.h:$(GLSRC)gsgstate.h
+$(GLSRC)gxscanc.h:$(GLSRC)stdio_.h
+$(GLSRC)gxscanc.h:$(GLSRC)gsccode.h
$(GLSRC)gxscanc.h:$(GLSRC)stdint_.h
$(GLSRC)gxscanc.h:$(GLSRC)gssprintf.h
-$(GLSRC)gxscanc.h:$(GLSRC)gsccode.h
-$(GLSRC)gxscanc.h:$(GLSRC)std.h
$(GLSRC)gxscanc.h:$(GLSRC)gstypes.h
+$(GLSRC)gxscanc.h:$(GLSRC)std.h
$(GLSRC)gxscanc.h:$(GLSRC)stdpre.h
$(GLSRC)gxscanc.h:$(GLGEN)arch.h
+$(GLSRC)gxscanc.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxstate.h:$(GLSRC)gscspace.h
+$(GLSRC)gxstate.h:$(GLSRC)gsgstate.h
$(GLSRC)gxstate.h:$(GLSRC)gsiparam.h
-$(GLSRC)gxstate.h:$(GLSRC)gxbitmap.h
$(GLSRC)gxstate.h:$(GLSRC)gsmatrix.h
$(GLSRC)gxstate.h:$(GLSRC)gsrefct.h
-$(GLSRC)gxstate.h:$(GLSRC)gsccolor.h
-$(GLSRC)gxstate.h:$(GLSRC)scommon.h
$(GLSRC)gxstate.h:$(GLSRC)memento.h
+$(GLSRC)gxstate.h:$(GLSRC)gxbitmap.h
+$(GLSRC)gxstate.h:$(GLSRC)scommon.h
$(GLSRC)gxstate.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gxstate.h:$(GLSRC)gsccolor.h
$(GLSRC)gxstate.h:$(GLSRC)gsstype.h
$(GLSRC)gxstate.h:$(GLSRC)gsmemory.h
$(GLSRC)gxstate.h:$(GLSRC)gslibctx.h
-$(GLSRC)gxstate.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxstate.h:$(GLSRC)stdio_.h
-$(GLSRC)gxstate.h:$(GLSRC)gsgstate.h
$(GLSRC)gxstate.h:$(GLSRC)stdint_.h
$(GLSRC)gxstate.h:$(GLSRC)gssprintf.h
-$(GLSRC)gxstate.h:$(GLSRC)std.h
$(GLSRC)gxstate.h:$(GLSRC)gstypes.h
+$(GLSRC)gxstate.h:$(GLSRC)std.h
$(GLSRC)gxstate.h:$(GLSRC)stdpre.h
$(GLSRC)gxstate.h:$(GLGEN)arch.h
+$(GLSRC)gxstate.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxtext.h:$(GLSRC)gstext.h
$(GLSRC)gxtext.h:$(GLSRC)gxfcache.h
-$(GLSRC)gxtext.h:$(GLSRC)gsuid.h
-$(GLSRC)gxtext.h:$(GLSRC)gsdcolor.h
$(GLSRC)gxtext.h:$(GLSRC)gsfont.h
+$(GLSRC)gxtext.h:$(GLSRC)gsdcolor.h
+$(GLSRC)gxtext.h:$(GLSRC)gxbcache.h
+$(GLSRC)gxtext.h:$(GLSRC)gxpath.h
$(GLSRC)gxtext.h:$(GLSRC)gxftype.h
$(GLSRC)gxtext.h:$(GLSRC)gscms.h
-$(GLSRC)gxtext.h:$(GLSRC)gscspace.h
-$(GLSRC)gxtext.h:$(GLSRC)gxpath.h
-$(GLSRC)gxtext.h:$(GLSRC)gxbcache.h
-$(GLSRC)gxtext.h:$(GLSRC)gsdevice.h
-$(GLSRC)gxtext.h:$(GLSRC)gxarith.h
-$(GLSRC)gxtext.h:$(GLSRC)gspenum.h
-$(GLSRC)gxtext.h:$(GLSRC)gxhttile.h
$(GLSRC)gxtext.h:$(GLSRC)gsrect.h
$(GLSRC)gxtext.h:$(GLSRC)gslparam.h
+$(GLSRC)gxtext.h:$(GLSRC)gsdevice.h
+$(GLSRC)gxtext.h:$(GLSRC)gscpm.h
+$(GLSRC)gxtext.h:$(GLSRC)gscspace.h
+$(GLSRC)gxtext.h:$(GLSRC)gsgstate.h
$(GLSRC)gxtext.h:$(GLSRC)gsxfont.h
$(GLSRC)gxtext.h:$(GLSRC)gsiparam.h
-$(GLSRC)gxtext.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gxtext.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gxtext.h:$(GLSRC)gscpm.h
$(GLSRC)gxtext.h:$(GLSRC)gxfixed.h
-$(GLSRC)gxtext.h:$(GLSRC)gsrefct.h
+$(GLSRC)gxtext.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gxtext.h:$(GLSRC)gspenum.h
+$(GLSRC)gxtext.h:$(GLSRC)gxhttile.h
$(GLSRC)gxtext.h:$(GLSRC)gsparam.h
-$(GLSRC)gxtext.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxtext.h:$(GLSRC)gsrefct.h
+$(GLSRC)gxtext.h:$(GLSRC)memento.h
+$(GLSRC)gxtext.h:$(GLSRC)gsuid.h
$(GLSRC)gxtext.h:$(GLSRC)gxsync.h
+$(GLSRC)gxtext.h:$(GLSRC)gxbitmap.h
$(GLSRC)gxtext.h:$(GLSRC)scommon.h
-$(GLSRC)gxtext.h:$(GLSRC)memento.h
$(GLSRC)gxtext.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gxtext.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxtext.h:$(GLSRC)gxarith.h
+$(GLSRC)gxtext.h:$(GLSRC)gpsync.h
$(GLSRC)gxtext.h:$(GLSRC)gsstype.h
$(GLSRC)gxtext.h:$(GLSRC)gsmemory.h
-$(GLSRC)gxtext.h:$(GLSRC)gpsync.h
$(GLSRC)gxtext.h:$(GLSRC)gslibctx.h
-$(GLSRC)gxtext.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gxtext.h:$(GLSRC)stdio_.h
$(GLSRC)gxtext.h:$(GLSRC)gxcindex.h
-$(GLSRC)gxtext.h:$(GLSRC)gsgstate.h
+$(GLSRC)gxtext.h:$(GLSRC)stdio_.h
+$(GLSRC)gxtext.h:$(GLSRC)gsccode.h
$(GLSRC)gxtext.h:$(GLSRC)stdint_.h
$(GLSRC)gxtext.h:$(GLSRC)gssprintf.h
-$(GLSRC)gxtext.h:$(GLSRC)gsccode.h
-$(GLSRC)gxtext.h:$(GLSRC)std.h
$(GLSRC)gxtext.h:$(GLSRC)gstypes.h
+$(GLSRC)gxtext.h:$(GLSRC)std.h
$(GLSRC)gxtext.h:$(GLSRC)stdpre.h
$(GLSRC)gxtext.h:$(GLGEN)arch.h
+$(GLSRC)gxtext.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxxfont.h:$(GLSRC)gxdevcli.h
+$(GLSRC)gxxfont.h:$(GLSRC)gxcmap.h
$(GLSRC)gxxfont.h:$(GLSRC)gxtext.h
$(GLSRC)gxxfont.h:$(GLSRC)gstext.h
$(GLSRC)gxxfont.h:$(GLSRC)gsnamecl.h
$(GLSRC)gxxfont.h:$(GLSRC)gstparam.h
-$(GLSRC)gxxfont.h:$(GLSRC)gxfcache.h
-$(GLSRC)gxxfont.h:$(GLSRC)gxcspace.h
-$(GLSRC)gxxfont.h:$(GLSRC)gsropt.h
+$(GLSRC)gxxfont.h:$(GLSRC)gxfmap.h
$(GLSRC)gxxfont.h:$(GLSRC)gsfunc.h
+$(GLSRC)gxxfont.h:$(GLSRC)gxcspace.h
$(GLSRC)gxxfont.h:$(GLSRC)gxrplane.h
-$(GLSRC)gxxfont.h:$(GLSRC)gsuid.h
-$(GLSRC)gxxfont.h:$(GLSRC)gxcmap.h
+$(GLSRC)gxxfont.h:$(GLSRC)gscsel.h
+$(GLSRC)gxxfont.h:$(GLSRC)gxfcache.h
+$(GLSRC)gxxfont.h:$(GLSRC)gsfont.h
$(GLSRC)gxxfont.h:$(GLSRC)gsimage.h
$(GLSRC)gxxfont.h:$(GLSRC)gsdcolor.h
-$(GLSRC)gxxfont.h:$(GLSRC)gxdda.h
$(GLSRC)gxxfont.h:$(GLSRC)gxcvalue.h
-$(GLSRC)gxxfont.h:$(GLSRC)gsfont.h
-$(GLSRC)gxxfont.h:$(GLSRC)gxfmap.h
-$(GLSRC)gxxfont.h:$(GLSRC)gxftype.h
+$(GLSRC)gxxfont.h:$(GLSRC)gxbcache.h
+$(GLSRC)gxxfont.h:$(GLSRC)gsropt.h
+$(GLSRC)gxxfont.h:$(GLSRC)gxdda.h
+$(GLSRC)gxxfont.h:$(GLSRC)gxpath.h
$(GLSRC)gxxfont.h:$(GLSRC)gxfrac.h
+$(GLSRC)gxxfont.h:$(GLSRC)gxtmap.h
+$(GLSRC)gxxfont.h:$(GLSRC)gxftype.h
$(GLSRC)gxxfont.h:$(GLSRC)gscms.h
-$(GLSRC)gxxfont.h:$(GLSRC)gscspace.h
-$(GLSRC)gxxfont.h:$(GLSRC)gxpath.h
-$(GLSRC)gxxfont.h:$(GLSRC)gxbcache.h
-$(GLSRC)gxxfont.h:$(GLSRC)gsdevice.h
-$(GLSRC)gxxfont.h:$(GLSRC)gxarith.h
-$(GLSRC)gxxfont.h:$(GLSRC)gspenum.h
-$(GLSRC)gxxfont.h:$(GLSRC)gxhttile.h
$(GLSRC)gxxfont.h:$(GLSRC)gsrect.h
$(GLSRC)gxxfont.h:$(GLSRC)gslparam.h
+$(GLSRC)gxxfont.h:$(GLSRC)gsdevice.h
+$(GLSRC)gxxfont.h:$(GLSRC)gscpm.h
+$(GLSRC)gxxfont.h:$(GLSRC)gscspace.h
+$(GLSRC)gxxfont.h:$(GLSRC)gsgstate.h
$(GLSRC)gxxfont.h:$(GLSRC)gsxfont.h
-$(GLSRC)gxxfont.h:$(GLSRC)gsiparam.h
$(GLSRC)gxxfont.h:$(GLSRC)gsdsrc.h
-$(GLSRC)gxxfont.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gxxfont.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gxxfont.h:$(GLSRC)gscpm.h
+$(GLSRC)gxxfont.h:$(GLSRC)gsiparam.h
$(GLSRC)gxxfont.h:$(GLSRC)gxfixed.h
-$(GLSRC)gxxfont.h:$(GLSRC)gsrefct.h
+$(GLSRC)gxxfont.h:$(GLSRC)gscompt.h
+$(GLSRC)gxxfont.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gxxfont.h:$(GLSRC)gspenum.h
+$(GLSRC)gxxfont.h:$(GLSRC)gxhttile.h
$(GLSRC)gxxfont.h:$(GLSRC)gsparam.h
+$(GLSRC)gxxfont.h:$(GLSRC)gsrefct.h
$(GLSRC)gxxfont.h:$(GLSRC)gp.h
-$(GLSRC)gxxfont.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxxfont.h:$(GLSRC)memento.h
+$(GLSRC)gxxfont.h:$(GLSRC)memory_.h
+$(GLSRC)gxxfont.h:$(GLSRC)gsuid.h
$(GLSRC)gxxfont.h:$(GLSRC)gsstruct.h
$(GLSRC)gxxfont.h:$(GLSRC)gxsync.h
+$(GLSRC)gxxfont.h:$(GLSRC)gxbitmap.h
$(GLSRC)gxxfont.h:$(GLSRC)srdline.h
$(GLSRC)gxxfont.h:$(GLSRC)scommon.h
-$(GLSRC)gxxfont.h:$(GLSRC)memento.h
-$(GLSRC)gxxfont.h:$(GLSRC)gscsel.h
$(GLSRC)gxxfont.h:$(GLSRC)gsbitmap.h
-$(GLSRC)gxxfont.h:$(GLSRC)gsstype.h
+$(GLSRC)gxxfont.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxxfont.h:$(GLSRC)gxarith.h
$(GLSRC)gxxfont.h:$(GLSRC)stat_.h
-$(GLSRC)gxxfont.h:$(GLSRC)gxtmap.h
-$(GLSRC)gxxfont.h:$(GLSRC)gsmemory.h
$(GLSRC)gxxfont.h:$(GLSRC)gpsync.h
-$(GLSRC)gxxfont.h:$(GLSRC)memory_.h
+$(GLSRC)gxxfont.h:$(GLSRC)gsstype.h
+$(GLSRC)gxxfont.h:$(GLSRC)gsmemory.h
$(GLSRC)gxxfont.h:$(GLSRC)gpgetenv.h
-$(GLSRC)gxxfont.h:$(GLSRC)gslibctx.h
$(GLSRC)gxxfont.h:$(GLSRC)gscdefs.h
-$(GLSRC)gxxfont.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gxxfont.h:$(GLSRC)stdio_.h
-$(GLSRC)gxxfont.h:$(GLSRC)gscompt.h
+$(GLSRC)gxxfont.h:$(GLSRC)gslibctx.h
$(GLSRC)gxxfont.h:$(GLSRC)gxcindex.h
-$(GLSRC)gxxfont.h:$(GLSRC)gsgstate.h
+$(GLSRC)gxxfont.h:$(GLSRC)stdio_.h
+$(GLSRC)gxxfont.h:$(GLSRC)gsccode.h
$(GLSRC)gxxfont.h:$(GLSRC)stdint_.h
$(GLSRC)gxxfont.h:$(GLSRC)gssprintf.h
-$(GLSRC)gxxfont.h:$(GLSRC)gsccode.h
-$(GLSRC)gxxfont.h:$(GLSRC)std.h
$(GLSRC)gxxfont.h:$(GLSRC)gstypes.h
+$(GLSRC)gxxfont.h:$(GLSRC)std.h
$(GLSRC)gxxfont.h:$(GLSRC)stdpre.h
$(GLSRC)gxxfont.h:$(GLGEN)arch.h
+$(GLSRC)gxxfont.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxband.h:$(GLSRC)gxdevcli.h
+$(GLSRC)gxband.h:$(GLSRC)gxcmap.h
$(GLSRC)gxband.h:$(GLSRC)gxtext.h
$(GLSRC)gxband.h:$(GLSRC)gstext.h
$(GLSRC)gxband.h:$(GLSRC)gsnamecl.h
$(GLSRC)gxband.h:$(GLSRC)gstparam.h
-$(GLSRC)gxband.h:$(GLSRC)gxfcache.h
-$(GLSRC)gxband.h:$(GLSRC)gxcspace.h
-$(GLSRC)gxband.h:$(GLSRC)gsropt.h
+$(GLSRC)gxband.h:$(GLSRC)gxfmap.h
$(GLSRC)gxband.h:$(GLSRC)gsfunc.h
+$(GLSRC)gxband.h:$(GLSRC)gxcspace.h
$(GLSRC)gxband.h:$(GLSRC)gxrplane.h
-$(GLSRC)gxband.h:$(GLSRC)gsuid.h
-$(GLSRC)gxband.h:$(GLSRC)gxcmap.h
+$(GLSRC)gxband.h:$(GLSRC)gscsel.h
+$(GLSRC)gxband.h:$(GLSRC)gxfcache.h
+$(GLSRC)gxband.h:$(GLSRC)gsfont.h
$(GLSRC)gxband.h:$(GLSRC)gsimage.h
$(GLSRC)gxband.h:$(GLSRC)gsdcolor.h
-$(GLSRC)gxband.h:$(GLSRC)gxdda.h
$(GLSRC)gxband.h:$(GLSRC)gxcvalue.h
-$(GLSRC)gxband.h:$(GLSRC)gsfont.h
-$(GLSRC)gxband.h:$(GLSRC)gxfmap.h
-$(GLSRC)gxband.h:$(GLSRC)gxftype.h
+$(GLSRC)gxband.h:$(GLSRC)gxbcache.h
+$(GLSRC)gxband.h:$(GLSRC)gsropt.h
+$(GLSRC)gxband.h:$(GLSRC)gxdda.h
+$(GLSRC)gxband.h:$(GLSRC)gxpath.h
$(GLSRC)gxband.h:$(GLSRC)gxfrac.h
+$(GLSRC)gxband.h:$(GLSRC)gxtmap.h
+$(GLSRC)gxband.h:$(GLSRC)gxftype.h
$(GLSRC)gxband.h:$(GLSRC)gscms.h
-$(GLSRC)gxband.h:$(GLSRC)gscspace.h
-$(GLSRC)gxband.h:$(GLSRC)gxpath.h
-$(GLSRC)gxband.h:$(GLSRC)gxbcache.h
-$(GLSRC)gxband.h:$(GLSRC)gsdevice.h
-$(GLSRC)gxband.h:$(GLSRC)gxarith.h
-$(GLSRC)gxband.h:$(GLSRC)gspenum.h
-$(GLSRC)gxband.h:$(GLSRC)gxhttile.h
$(GLSRC)gxband.h:$(GLSRC)gsrect.h
$(GLSRC)gxband.h:$(GLSRC)gslparam.h
+$(GLSRC)gxband.h:$(GLSRC)gsdevice.h
+$(GLSRC)gxband.h:$(GLSRC)gscpm.h
+$(GLSRC)gxband.h:$(GLSRC)gscspace.h
+$(GLSRC)gxband.h:$(GLSRC)gsgstate.h
$(GLSRC)gxband.h:$(GLSRC)gsxfont.h
-$(GLSRC)gxband.h:$(GLSRC)gxclio.h
-$(GLSRC)gxband.h:$(GLSRC)gsiparam.h
$(GLSRC)gxband.h:$(GLSRC)gsdsrc.h
-$(GLSRC)gxband.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gxband.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gxband.h:$(GLSRC)gscpm.h
+$(GLSRC)gxband.h:$(GLSRC)gsiparam.h
$(GLSRC)gxband.h:$(GLSRC)gxfixed.h
-$(GLSRC)gxband.h:$(GLSRC)gsrefct.h
+$(GLSRC)gxband.h:$(GLSRC)gxclio.h
+$(GLSRC)gxband.h:$(GLSRC)gscompt.h
+$(GLSRC)gxband.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gxband.h:$(GLSRC)gspenum.h
+$(GLSRC)gxband.h:$(GLSRC)gxhttile.h
$(GLSRC)gxband.h:$(GLSRC)gsparam.h
+$(GLSRC)gxband.h:$(GLSRC)gsrefct.h
$(GLSRC)gxband.h:$(GLSRC)gp.h
-$(GLSRC)gxband.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxband.h:$(GLSRC)memento.h
+$(GLSRC)gxband.h:$(GLSRC)memory_.h
+$(GLSRC)gxband.h:$(GLSRC)gsuid.h
$(GLSRC)gxband.h:$(GLSRC)gsstruct.h
$(GLSRC)gxband.h:$(GLSRC)gxsync.h
+$(GLSRC)gxband.h:$(GLSRC)gxbitmap.h
$(GLSRC)gxband.h:$(GLSRC)srdline.h
$(GLSRC)gxband.h:$(GLSRC)scommon.h
-$(GLSRC)gxband.h:$(GLSRC)memento.h
-$(GLSRC)gxband.h:$(GLSRC)gscsel.h
$(GLSRC)gxband.h:$(GLSRC)gsbitmap.h
-$(GLSRC)gxband.h:$(GLSRC)gsstype.h
+$(GLSRC)gxband.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxband.h:$(GLSRC)gxarith.h
$(GLSRC)gxband.h:$(GLSRC)stat_.h
-$(GLSRC)gxband.h:$(GLSRC)gxtmap.h
-$(GLSRC)gxband.h:$(GLSRC)gsmemory.h
$(GLSRC)gxband.h:$(GLSRC)gpsync.h
-$(GLSRC)gxband.h:$(GLSRC)memory_.h
+$(GLSRC)gxband.h:$(GLSRC)gsstype.h
+$(GLSRC)gxband.h:$(GLSRC)gsmemory.h
$(GLSRC)gxband.h:$(GLSRC)gpgetenv.h
-$(GLSRC)gxband.h:$(GLSRC)gslibctx.h
$(GLSRC)gxband.h:$(GLSRC)gscdefs.h
-$(GLSRC)gxband.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gxband.h:$(GLSRC)stdio_.h
-$(GLSRC)gxband.h:$(GLSRC)gscompt.h
+$(GLSRC)gxband.h:$(GLSRC)gslibctx.h
$(GLSRC)gxband.h:$(GLSRC)gxcindex.h
-$(GLSRC)gxband.h:$(GLSRC)gsgstate.h
+$(GLSRC)gxband.h:$(GLSRC)stdio_.h
+$(GLSRC)gxband.h:$(GLSRC)gsccode.h
$(GLSRC)gxband.h:$(GLSRC)stdint_.h
$(GLSRC)gxband.h:$(GLSRC)gssprintf.h
-$(GLSRC)gxband.h:$(GLSRC)gsccode.h
-$(GLSRC)gxband.h:$(GLSRC)std.h
$(GLSRC)gxband.h:$(GLSRC)gstypes.h
+$(GLSRC)gxband.h:$(GLSRC)std.h
$(GLSRC)gxband.h:$(GLSRC)stdpre.h
$(GLSRC)gxband.h:$(GLGEN)arch.h
+$(GLSRC)gxband.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxcdevn.h:$(GLSRC)gxfrac.h
$(GLSRC)gxcdevn.h:$(GLSRC)gscspace.h
+$(GLSRC)gxcdevn.h:$(GLSRC)gsgstate.h
$(GLSRC)gxcdevn.h:$(GLSRC)gsiparam.h
-$(GLSRC)gxcdevn.h:$(GLSRC)gxbitmap.h
$(GLSRC)gxcdevn.h:$(GLSRC)gsmatrix.h
$(GLSRC)gxcdevn.h:$(GLSRC)gsrefct.h
-$(GLSRC)gxcdevn.h:$(GLSRC)gsccolor.h
-$(GLSRC)gxcdevn.h:$(GLSRC)scommon.h
$(GLSRC)gxcdevn.h:$(GLSRC)memento.h
+$(GLSRC)gxcdevn.h:$(GLSRC)gxbitmap.h
+$(GLSRC)gxcdevn.h:$(GLSRC)scommon.h
$(GLSRC)gxcdevn.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gxcdevn.h:$(GLSRC)gsccolor.h
$(GLSRC)gxcdevn.h:$(GLSRC)gsstype.h
$(GLSRC)gxcdevn.h:$(GLSRC)gsmemory.h
$(GLSRC)gxcdevn.h:$(GLSRC)gslibctx.h
-$(GLSRC)gxcdevn.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gxcdevn.h:$(GLSRC)stdio_.h
$(GLSRC)gxcdevn.h:$(GLSRC)gxcindex.h
-$(GLSRC)gxcdevn.h:$(GLSRC)gsgstate.h
+$(GLSRC)gxcdevn.h:$(GLSRC)stdio_.h
$(GLSRC)gxcdevn.h:$(GLSRC)stdint_.h
$(GLSRC)gxcdevn.h:$(GLSRC)gssprintf.h
-$(GLSRC)gxcdevn.h:$(GLSRC)std.h
$(GLSRC)gxcdevn.h:$(GLSRC)gstypes.h
+$(GLSRC)gxcdevn.h:$(GLSRC)std.h
$(GLSRC)gxcdevn.h:$(GLSRC)stdpre.h
$(GLSRC)gxcdevn.h:$(GLGEN)arch.h
+$(GLSRC)gxcdevn.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxchar.h:$(GLSRC)gschar.h
$(GLSRC)gxchar.h:$(GLSRC)gsstate.h
$(GLSRC)gxchar.h:$(GLSRC)gsovrc.h
$(GLSRC)gxchar.h:$(GLSRC)gscolor.h
-$(GLSRC)gxchar.h:$(GLSRC)gxcomp.h
$(GLSRC)gxchar.h:$(GLSRC)gsline.h
-$(GLSRC)gxchar.h:$(GLSRC)gxbitfmt.h
+$(GLSRC)gxchar.h:$(GLSRC)gxcomp.h
$(GLSRC)gxchar.h:$(GLSRC)gsht.h
$(GLSRC)gxchar.h:$(GLSRC)gxtext.h
$(GLSRC)gxchar.h:$(GLSRC)gstext.h
+$(GLSRC)gxchar.h:$(GLSRC)gscsel.h
$(GLSRC)gxchar.h:$(GLSRC)gxfcache.h
-$(GLSRC)gxchar.h:$(GLSRC)gsuid.h
-$(GLSRC)gxchar.h:$(GLSRC)gsdcolor.h
$(GLSRC)gxchar.h:$(GLSRC)gsfont.h
+$(GLSRC)gxchar.h:$(GLSRC)gsdcolor.h
+$(GLSRC)gxchar.h:$(GLSRC)gxbcache.h
+$(GLSRC)gxchar.h:$(GLSRC)gxpath.h
+$(GLSRC)gxchar.h:$(GLSRC)gxtmap.h
$(GLSRC)gxchar.h:$(GLSRC)gxftype.h
$(GLSRC)gxchar.h:$(GLSRC)gscms.h
-$(GLSRC)gxchar.h:$(GLSRC)gscspace.h
-$(GLSRC)gxchar.h:$(GLSRC)gxpath.h
-$(GLSRC)gxchar.h:$(GLSRC)gxbcache.h
-$(GLSRC)gxchar.h:$(GLSRC)gsdevice.h
-$(GLSRC)gxchar.h:$(GLSRC)gxarith.h
-$(GLSRC)gxchar.h:$(GLSRC)gspenum.h
-$(GLSRC)gxchar.h:$(GLSRC)gxhttile.h
$(GLSRC)gxchar.h:$(GLSRC)gsrect.h
$(GLSRC)gxchar.h:$(GLSRC)gslparam.h
+$(GLSRC)gxchar.h:$(GLSRC)gsdevice.h
+$(GLSRC)gxchar.h:$(GLSRC)gxbitfmt.h
+$(GLSRC)gxchar.h:$(GLSRC)gscpm.h
+$(GLSRC)gxchar.h:$(GLSRC)gscspace.h
+$(GLSRC)gxchar.h:$(GLSRC)gsgstate.h
$(GLSRC)gxchar.h:$(GLSRC)gsxfont.h
$(GLSRC)gxchar.h:$(GLSRC)gsiparam.h
-$(GLSRC)gxchar.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gxchar.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gxchar.h:$(GLSRC)gscpm.h
$(GLSRC)gxchar.h:$(GLSRC)gxfixed.h
-$(GLSRC)gxchar.h:$(GLSRC)gsrefct.h
+$(GLSRC)gxchar.h:$(GLSRC)gscompt.h
+$(GLSRC)gxchar.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gxchar.h:$(GLSRC)gspenum.h
+$(GLSRC)gxchar.h:$(GLSRC)gxhttile.h
$(GLSRC)gxchar.h:$(GLSRC)gsparam.h
-$(GLSRC)gxchar.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxchar.h:$(GLSRC)gsrefct.h
+$(GLSRC)gxchar.h:$(GLSRC)memento.h
+$(GLSRC)gxchar.h:$(GLSRC)gsuid.h
$(GLSRC)gxchar.h:$(GLSRC)gxsync.h
+$(GLSRC)gxchar.h:$(GLSRC)gxbitmap.h
$(GLSRC)gxchar.h:$(GLSRC)scommon.h
-$(GLSRC)gxchar.h:$(GLSRC)memento.h
-$(GLSRC)gxchar.h:$(GLSRC)gscsel.h
$(GLSRC)gxchar.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gxchar.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxchar.h:$(GLSRC)gxarith.h
+$(GLSRC)gxchar.h:$(GLSRC)gpsync.h
$(GLSRC)gxchar.h:$(GLSRC)gsstype.h
-$(GLSRC)gxchar.h:$(GLSRC)gxtmap.h
$(GLSRC)gxchar.h:$(GLSRC)gsmemory.h
-$(GLSRC)gxchar.h:$(GLSRC)gpsync.h
$(GLSRC)gxchar.h:$(GLSRC)gslibctx.h
-$(GLSRC)gxchar.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gxchar.h:$(GLSRC)stdio_.h
-$(GLSRC)gxchar.h:$(GLSRC)gscompt.h
$(GLSRC)gxchar.h:$(GLSRC)gxcindex.h
-$(GLSRC)gxchar.h:$(GLSRC)gsgstate.h
+$(GLSRC)gxchar.h:$(GLSRC)stdio_.h
+$(GLSRC)gxchar.h:$(GLSRC)gsccode.h
$(GLSRC)gxchar.h:$(GLSRC)stdint_.h
$(GLSRC)gxchar.h:$(GLSRC)gssprintf.h
-$(GLSRC)gxchar.h:$(GLSRC)gsccode.h
-$(GLSRC)gxchar.h:$(GLSRC)std.h
$(GLSRC)gxchar.h:$(GLSRC)gstypes.h
+$(GLSRC)gxchar.h:$(GLSRC)std.h
$(GLSRC)gxchar.h:$(GLSRC)stdpre.h
$(GLSRC)gxchar.h:$(GLGEN)arch.h
+$(GLSRC)gxchar.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxchrout.h:$(GLSRC)gsgstate.h
$(GLSRC)gsdcolor.h:$(GLSRC)gscms.h
-$(GLSRC)gsdcolor.h:$(GLSRC)gscspace.h
$(GLSRC)gsdcolor.h:$(GLSRC)gsdevice.h
-$(GLSRC)gsdcolor.h:$(GLSRC)gxarith.h
-$(GLSRC)gsdcolor.h:$(GLSRC)gxhttile.h
+$(GLSRC)gsdcolor.h:$(GLSRC)gscspace.h
+$(GLSRC)gsdcolor.h:$(GLSRC)gsgstate.h
$(GLSRC)gsdcolor.h:$(GLSRC)gsiparam.h
-$(GLSRC)gsdcolor.h:$(GLSRC)gxbitmap.h
$(GLSRC)gsdcolor.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gsdcolor.h:$(GLSRC)gsrefct.h
+$(GLSRC)gsdcolor.h:$(GLSRC)gxhttile.h
$(GLSRC)gsdcolor.h:$(GLSRC)gsparam.h
-$(GLSRC)gsdcolor.h:$(GLSRC)gsccolor.h
+$(GLSRC)gsdcolor.h:$(GLSRC)gsrefct.h
+$(GLSRC)gsdcolor.h:$(GLSRC)memento.h
$(GLSRC)gsdcolor.h:$(GLSRC)gxsync.h
+$(GLSRC)gsdcolor.h:$(GLSRC)gxbitmap.h
$(GLSRC)gsdcolor.h:$(GLSRC)scommon.h
-$(GLSRC)gsdcolor.h:$(GLSRC)memento.h
$(GLSRC)gsdcolor.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gsdcolor.h:$(GLSRC)gsccolor.h
+$(GLSRC)gsdcolor.h:$(GLSRC)gxarith.h
+$(GLSRC)gsdcolor.h:$(GLSRC)gpsync.h
$(GLSRC)gsdcolor.h:$(GLSRC)gsstype.h
$(GLSRC)gsdcolor.h:$(GLSRC)gsmemory.h
-$(GLSRC)gsdcolor.h:$(GLSRC)gpsync.h
$(GLSRC)gsdcolor.h:$(GLSRC)gslibctx.h
-$(GLSRC)gsdcolor.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gsdcolor.h:$(GLSRC)stdio_.h
$(GLSRC)gsdcolor.h:$(GLSRC)gxcindex.h
-$(GLSRC)gsdcolor.h:$(GLSRC)gsgstate.h
+$(GLSRC)gsdcolor.h:$(GLSRC)stdio_.h
$(GLSRC)gsdcolor.h:$(GLSRC)stdint_.h
$(GLSRC)gsdcolor.h:$(GLSRC)gssprintf.h
-$(GLSRC)gsdcolor.h:$(GLSRC)std.h
$(GLSRC)gsdcolor.h:$(GLSRC)gstypes.h
+$(GLSRC)gsdcolor.h:$(GLSRC)std.h
$(GLSRC)gsdcolor.h:$(GLSRC)stdpre.h
$(GLSRC)gsdcolor.h:$(GLGEN)arch.h
-$(GLSRC)gxdcolor.h:$(GLSRC)gsropt.h
+$(GLSRC)gsdcolor.h:$(GLSRC)gs_dll_call.h
+$(GLSRC)gxdcolor.h:$(GLSRC)gscsel.h
$(GLSRC)gxdcolor.h:$(GLSRC)gsdcolor.h
+$(GLSRC)gxdcolor.h:$(GLSRC)gsropt.h
$(GLSRC)gxdcolor.h:$(GLSRC)gscms.h
-$(GLSRC)gxdcolor.h:$(GLSRC)gscspace.h
$(GLSRC)gxdcolor.h:$(GLSRC)gsdevice.h
-$(GLSRC)gxdcolor.h:$(GLSRC)gxarith.h
-$(GLSRC)gxdcolor.h:$(GLSRC)gxhttile.h
+$(GLSRC)gxdcolor.h:$(GLSRC)gscspace.h
+$(GLSRC)gxdcolor.h:$(GLSRC)gsgstate.h
$(GLSRC)gxdcolor.h:$(GLSRC)gsiparam.h
-$(GLSRC)gxdcolor.h:$(GLSRC)gxbitmap.h
$(GLSRC)gxdcolor.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gxdcolor.h:$(GLSRC)gsrefct.h
+$(GLSRC)gxdcolor.h:$(GLSRC)gxhttile.h
$(GLSRC)gxdcolor.h:$(GLSRC)gsparam.h
-$(GLSRC)gxdcolor.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxdcolor.h:$(GLSRC)gsrefct.h
+$(GLSRC)gxdcolor.h:$(GLSRC)memento.h
$(GLSRC)gxdcolor.h:$(GLSRC)gsstruct.h
$(GLSRC)gxdcolor.h:$(GLSRC)gxsync.h
+$(GLSRC)gxdcolor.h:$(GLSRC)gxbitmap.h
$(GLSRC)gxdcolor.h:$(GLSRC)scommon.h
-$(GLSRC)gxdcolor.h:$(GLSRC)memento.h
-$(GLSRC)gxdcolor.h:$(GLSRC)gscsel.h
$(GLSRC)gxdcolor.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gxdcolor.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxdcolor.h:$(GLSRC)gxarith.h
+$(GLSRC)gxdcolor.h:$(GLSRC)gpsync.h
$(GLSRC)gxdcolor.h:$(GLSRC)gsstype.h
$(GLSRC)gxdcolor.h:$(GLSRC)gsmemory.h
-$(GLSRC)gxdcolor.h:$(GLSRC)gpsync.h
$(GLSRC)gxdcolor.h:$(GLSRC)gslibctx.h
-$(GLSRC)gxdcolor.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gxdcolor.h:$(GLSRC)stdio_.h
$(GLSRC)gxdcolor.h:$(GLSRC)gxcindex.h
-$(GLSRC)gxdcolor.h:$(GLSRC)gsgstate.h
+$(GLSRC)gxdcolor.h:$(GLSRC)stdio_.h
$(GLSRC)gxdcolor.h:$(GLSRC)stdint_.h
$(GLSRC)gxdcolor.h:$(GLSRC)gssprintf.h
-$(GLSRC)gxdcolor.h:$(GLSRC)std.h
$(GLSRC)gxdcolor.h:$(GLSRC)gstypes.h
+$(GLSRC)gxdcolor.h:$(GLSRC)std.h
$(GLSRC)gxdcolor.h:$(GLSRC)stdpre.h
$(GLSRC)gxdcolor.h:$(GLGEN)arch.h
+$(GLSRC)gxdcolor.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gsnamecl.h:$(GLSRC)gxcspace.h
+$(GLSRC)gsnamecl.h:$(GLSRC)gscsel.h
$(GLSRC)gsnamecl.h:$(GLSRC)gsdcolor.h
$(GLSRC)gsnamecl.h:$(GLSRC)gxfrac.h
$(GLSRC)gsnamecl.h:$(GLSRC)gscms.h
-$(GLSRC)gsnamecl.h:$(GLSRC)gscspace.h
$(GLSRC)gsnamecl.h:$(GLSRC)gsdevice.h
-$(GLSRC)gsnamecl.h:$(GLSRC)gxarith.h
-$(GLSRC)gsnamecl.h:$(GLSRC)gxhttile.h
+$(GLSRC)gsnamecl.h:$(GLSRC)gscspace.h
+$(GLSRC)gsnamecl.h:$(GLSRC)gsgstate.h
$(GLSRC)gsnamecl.h:$(GLSRC)gsiparam.h
-$(GLSRC)gsnamecl.h:$(GLSRC)gxbitmap.h
$(GLSRC)gsnamecl.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gsnamecl.h:$(GLSRC)gsrefct.h
+$(GLSRC)gsnamecl.h:$(GLSRC)gxhttile.h
$(GLSRC)gsnamecl.h:$(GLSRC)gsparam.h
-$(GLSRC)gsnamecl.h:$(GLSRC)gsccolor.h
+$(GLSRC)gsnamecl.h:$(GLSRC)gsrefct.h
+$(GLSRC)gsnamecl.h:$(GLSRC)memento.h
$(GLSRC)gsnamecl.h:$(GLSRC)gxsync.h
+$(GLSRC)gsnamecl.h:$(GLSRC)gxbitmap.h
$(GLSRC)gsnamecl.h:$(GLSRC)scommon.h
-$(GLSRC)gsnamecl.h:$(GLSRC)memento.h
-$(GLSRC)gsnamecl.h:$(GLSRC)gscsel.h
$(GLSRC)gsnamecl.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gsnamecl.h:$(GLSRC)gsccolor.h
+$(GLSRC)gsnamecl.h:$(GLSRC)gxarith.h
+$(GLSRC)gsnamecl.h:$(GLSRC)gpsync.h
$(GLSRC)gsnamecl.h:$(GLSRC)gsstype.h
$(GLSRC)gsnamecl.h:$(GLSRC)gsmemory.h
-$(GLSRC)gsnamecl.h:$(GLSRC)gpsync.h
$(GLSRC)gsnamecl.h:$(GLSRC)gslibctx.h
-$(GLSRC)gsnamecl.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gsnamecl.h:$(GLSRC)stdio_.h
$(GLSRC)gsnamecl.h:$(GLSRC)gxcindex.h
-$(GLSRC)gsnamecl.h:$(GLSRC)gsgstate.h
+$(GLSRC)gsnamecl.h:$(GLSRC)stdio_.h
$(GLSRC)gsnamecl.h:$(GLSRC)stdint_.h
$(GLSRC)gsnamecl.h:$(GLSRC)gssprintf.h
-$(GLSRC)gsnamecl.h:$(GLSRC)std.h
$(GLSRC)gsnamecl.h:$(GLSRC)gstypes.h
+$(GLSRC)gsnamecl.h:$(GLSRC)std.h
$(GLSRC)gsnamecl.h:$(GLSRC)stdpre.h
$(GLSRC)gsnamecl.h:$(GLGEN)arch.h
+$(GLSRC)gsnamecl.h:$(GLSRC)gs_dll_call.h
+$(GLSRC)gscspace.h:$(GLSRC)gsgstate.h
$(GLSRC)gscspace.h:$(GLSRC)gsiparam.h
-$(GLSRC)gscspace.h:$(GLSRC)gxbitmap.h
$(GLSRC)gscspace.h:$(GLSRC)gsmatrix.h
$(GLSRC)gscspace.h:$(GLSRC)gsrefct.h
-$(GLSRC)gscspace.h:$(GLSRC)gsccolor.h
-$(GLSRC)gscspace.h:$(GLSRC)scommon.h
$(GLSRC)gscspace.h:$(GLSRC)memento.h
+$(GLSRC)gscspace.h:$(GLSRC)gxbitmap.h
+$(GLSRC)gscspace.h:$(GLSRC)scommon.h
$(GLSRC)gscspace.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gscspace.h:$(GLSRC)gsccolor.h
$(GLSRC)gscspace.h:$(GLSRC)gsstype.h
$(GLSRC)gscspace.h:$(GLSRC)gsmemory.h
$(GLSRC)gscspace.h:$(GLSRC)gslibctx.h
-$(GLSRC)gscspace.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gscspace.h:$(GLSRC)stdio_.h
-$(GLSRC)gscspace.h:$(GLSRC)gsgstate.h
$(GLSRC)gscspace.h:$(GLSRC)stdint_.h
$(GLSRC)gscspace.h:$(GLSRC)gssprintf.h
-$(GLSRC)gscspace.h:$(GLSRC)std.h
$(GLSRC)gscspace.h:$(GLSRC)gstypes.h
+$(GLSRC)gscspace.h:$(GLSRC)std.h
$(GLSRC)gscspace.h:$(GLSRC)stdpre.h
$(GLSRC)gscspace.h:$(GLGEN)arch.h
+$(GLSRC)gscspace.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gscssub.h:$(GLSRC)gscspace.h
+$(GLSRC)gscssub.h:$(GLSRC)gsgstate.h
$(GLSRC)gscssub.h:$(GLSRC)gsiparam.h
-$(GLSRC)gscssub.h:$(GLSRC)gxbitmap.h
$(GLSRC)gscssub.h:$(GLSRC)gsmatrix.h
$(GLSRC)gscssub.h:$(GLSRC)gsrefct.h
-$(GLSRC)gscssub.h:$(GLSRC)gsccolor.h
-$(GLSRC)gscssub.h:$(GLSRC)scommon.h
$(GLSRC)gscssub.h:$(GLSRC)memento.h
+$(GLSRC)gscssub.h:$(GLSRC)gxbitmap.h
+$(GLSRC)gscssub.h:$(GLSRC)scommon.h
$(GLSRC)gscssub.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gscssub.h:$(GLSRC)gsccolor.h
$(GLSRC)gscssub.h:$(GLSRC)gsstype.h
$(GLSRC)gscssub.h:$(GLSRC)gsmemory.h
$(GLSRC)gscssub.h:$(GLSRC)gslibctx.h
-$(GLSRC)gscssub.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gscssub.h:$(GLSRC)stdio_.h
-$(GLSRC)gscssub.h:$(GLSRC)gsgstate.h
$(GLSRC)gscssub.h:$(GLSRC)stdint_.h
$(GLSRC)gscssub.h:$(GLSRC)gssprintf.h
-$(GLSRC)gscssub.h:$(GLSRC)std.h
$(GLSRC)gscssub.h:$(GLSRC)gstypes.h
+$(GLSRC)gscssub.h:$(GLSRC)std.h
$(GLSRC)gscssub.h:$(GLSRC)stdpre.h
$(GLSRC)gscssub.h:$(GLGEN)arch.h
+$(GLSRC)gscssub.h:$(GLSRC)gs_dll_call.h
+$(GLSRC)gxdevcli.h:$(GLSRC)gxcmap.h
$(GLSRC)gxdevcli.h:$(GLSRC)gxtext.h
$(GLSRC)gxdevcli.h:$(GLSRC)gstext.h
$(GLSRC)gxdevcli.h:$(GLSRC)gsnamecl.h
$(GLSRC)gxdevcli.h:$(GLSRC)gstparam.h
-$(GLSRC)gxdevcli.h:$(GLSRC)gxfcache.h
-$(GLSRC)gxdevcli.h:$(GLSRC)gxcspace.h
-$(GLSRC)gxdevcli.h:$(GLSRC)gsropt.h
+$(GLSRC)gxdevcli.h:$(GLSRC)gxfmap.h
$(GLSRC)gxdevcli.h:$(GLSRC)gsfunc.h
+$(GLSRC)gxdevcli.h:$(GLSRC)gxcspace.h
$(GLSRC)gxdevcli.h:$(GLSRC)gxrplane.h
-$(GLSRC)gxdevcli.h:$(GLSRC)gsuid.h
-$(GLSRC)gxdevcli.h:$(GLSRC)gxcmap.h
+$(GLSRC)gxdevcli.h:$(GLSRC)gscsel.h
+$(GLSRC)gxdevcli.h:$(GLSRC)gxfcache.h
+$(GLSRC)gxdevcli.h:$(GLSRC)gsfont.h
$(GLSRC)gxdevcli.h:$(GLSRC)gsimage.h
$(GLSRC)gxdevcli.h:$(GLSRC)gsdcolor.h
-$(GLSRC)gxdevcli.h:$(GLSRC)gxdda.h
$(GLSRC)gxdevcli.h:$(GLSRC)gxcvalue.h
-$(GLSRC)gxdevcli.h:$(GLSRC)gsfont.h
-$(GLSRC)gxdevcli.h:$(GLSRC)gxfmap.h
-$(GLSRC)gxdevcli.h:$(GLSRC)gxftype.h
+$(GLSRC)gxdevcli.h:$(GLSRC)gxbcache.h
+$(GLSRC)gxdevcli.h:$(GLSRC)gsropt.h
+$(GLSRC)gxdevcli.h:$(GLSRC)gxdda.h
+$(GLSRC)gxdevcli.h:$(GLSRC)gxpath.h
$(GLSRC)gxdevcli.h:$(GLSRC)gxfrac.h
+$(GLSRC)gxdevcli.h:$(GLSRC)gxtmap.h
+$(GLSRC)gxdevcli.h:$(GLSRC)gxftype.h
$(GLSRC)gxdevcli.h:$(GLSRC)gscms.h
-$(GLSRC)gxdevcli.h:$(GLSRC)gscspace.h
-$(GLSRC)gxdevcli.h:$(GLSRC)gxpath.h
-$(GLSRC)gxdevcli.h:$(GLSRC)gxbcache.h
-$(GLSRC)gxdevcli.h:$(GLSRC)gsdevice.h
-$(GLSRC)gxdevcli.h:$(GLSRC)gxarith.h
-$(GLSRC)gxdevcli.h:$(GLSRC)gspenum.h
-$(GLSRC)gxdevcli.h:$(GLSRC)gxhttile.h
$(GLSRC)gxdevcli.h:$(GLSRC)gsrect.h
$(GLSRC)gxdevcli.h:$(GLSRC)gslparam.h
+$(GLSRC)gxdevcli.h:$(GLSRC)gsdevice.h
+$(GLSRC)gxdevcli.h:$(GLSRC)gscpm.h
+$(GLSRC)gxdevcli.h:$(GLSRC)gscspace.h
+$(GLSRC)gxdevcli.h:$(GLSRC)gsgstate.h
$(GLSRC)gxdevcli.h:$(GLSRC)gsxfont.h
-$(GLSRC)gxdevcli.h:$(GLSRC)gsiparam.h
$(GLSRC)gxdevcli.h:$(GLSRC)gsdsrc.h
-$(GLSRC)gxdevcli.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gxdevcli.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gxdevcli.h:$(GLSRC)gscpm.h
+$(GLSRC)gxdevcli.h:$(GLSRC)gsiparam.h
$(GLSRC)gxdevcli.h:$(GLSRC)gxfixed.h
-$(GLSRC)gxdevcli.h:$(GLSRC)gsrefct.h
+$(GLSRC)gxdevcli.h:$(GLSRC)gscompt.h
+$(GLSRC)gxdevcli.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gxdevcli.h:$(GLSRC)gspenum.h
+$(GLSRC)gxdevcli.h:$(GLSRC)gxhttile.h
$(GLSRC)gxdevcli.h:$(GLSRC)gsparam.h
+$(GLSRC)gxdevcli.h:$(GLSRC)gsrefct.h
$(GLSRC)gxdevcli.h:$(GLSRC)gp.h
-$(GLSRC)gxdevcli.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxdevcli.h:$(GLSRC)memento.h
+$(GLSRC)gxdevcli.h:$(GLSRC)memory_.h
+$(GLSRC)gxdevcli.h:$(GLSRC)gsuid.h
$(GLSRC)gxdevcli.h:$(GLSRC)gsstruct.h
$(GLSRC)gxdevcli.h:$(GLSRC)gxsync.h
+$(GLSRC)gxdevcli.h:$(GLSRC)gxbitmap.h
$(GLSRC)gxdevcli.h:$(GLSRC)srdline.h
$(GLSRC)gxdevcli.h:$(GLSRC)scommon.h
-$(GLSRC)gxdevcli.h:$(GLSRC)memento.h
-$(GLSRC)gxdevcli.h:$(GLSRC)gscsel.h
$(GLSRC)gxdevcli.h:$(GLSRC)gsbitmap.h
-$(GLSRC)gxdevcli.h:$(GLSRC)gsstype.h
+$(GLSRC)gxdevcli.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxdevcli.h:$(GLSRC)gxarith.h
$(GLSRC)gxdevcli.h:$(GLSRC)stat_.h
-$(GLSRC)gxdevcli.h:$(GLSRC)gxtmap.h
-$(GLSRC)gxdevcli.h:$(GLSRC)gsmemory.h
$(GLSRC)gxdevcli.h:$(GLSRC)gpsync.h
-$(GLSRC)gxdevcli.h:$(GLSRC)memory_.h
+$(GLSRC)gxdevcli.h:$(GLSRC)gsstype.h
+$(GLSRC)gxdevcli.h:$(GLSRC)gsmemory.h
$(GLSRC)gxdevcli.h:$(GLSRC)gpgetenv.h
-$(GLSRC)gxdevcli.h:$(GLSRC)gslibctx.h
$(GLSRC)gxdevcli.h:$(GLSRC)gscdefs.h
-$(GLSRC)gxdevcli.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gxdevcli.h:$(GLSRC)stdio_.h
-$(GLSRC)gxdevcli.h:$(GLSRC)gscompt.h
+$(GLSRC)gxdevcli.h:$(GLSRC)gslibctx.h
$(GLSRC)gxdevcli.h:$(GLSRC)gxcindex.h
-$(GLSRC)gxdevcli.h:$(GLSRC)gsgstate.h
+$(GLSRC)gxdevcli.h:$(GLSRC)stdio_.h
+$(GLSRC)gxdevcli.h:$(GLSRC)gsccode.h
$(GLSRC)gxdevcli.h:$(GLSRC)stdint_.h
$(GLSRC)gxdevcli.h:$(GLSRC)gssprintf.h
-$(GLSRC)gxdevcli.h:$(GLSRC)gsccode.h
-$(GLSRC)gxdevcli.h:$(GLSRC)std.h
$(GLSRC)gxdevcli.h:$(GLSRC)gstypes.h
+$(GLSRC)gxdevcli.h:$(GLSRC)std.h
$(GLSRC)gxdevcli.h:$(GLSRC)stdpre.h
$(GLSRC)gxdevcli.h:$(GLGEN)arch.h
+$(GLSRC)gxdevcli.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gscicach.h:$(GLSRC)gxdevcli.h
+$(GLSRC)gscicach.h:$(GLSRC)gxcmap.h
$(GLSRC)gscicach.h:$(GLSRC)gxtext.h
$(GLSRC)gscicach.h:$(GLSRC)gstext.h
$(GLSRC)gscicach.h:$(GLSRC)gsnamecl.h
$(GLSRC)gscicach.h:$(GLSRC)gstparam.h
-$(GLSRC)gscicach.h:$(GLSRC)gxfcache.h
-$(GLSRC)gscicach.h:$(GLSRC)gxcspace.h
-$(GLSRC)gscicach.h:$(GLSRC)gsropt.h
+$(GLSRC)gscicach.h:$(GLSRC)gxfmap.h
$(GLSRC)gscicach.h:$(GLSRC)gsfunc.h
+$(GLSRC)gscicach.h:$(GLSRC)gxcspace.h
$(GLSRC)gscicach.h:$(GLSRC)gxrplane.h
-$(GLSRC)gscicach.h:$(GLSRC)gsuid.h
-$(GLSRC)gscicach.h:$(GLSRC)gxcmap.h
+$(GLSRC)gscicach.h:$(GLSRC)gscsel.h
+$(GLSRC)gscicach.h:$(GLSRC)gxfcache.h
+$(GLSRC)gscicach.h:$(GLSRC)gsfont.h
$(GLSRC)gscicach.h:$(GLSRC)gsimage.h
$(GLSRC)gscicach.h:$(GLSRC)gsdcolor.h
-$(GLSRC)gscicach.h:$(GLSRC)gxdda.h
$(GLSRC)gscicach.h:$(GLSRC)gxcvalue.h
-$(GLSRC)gscicach.h:$(GLSRC)gsfont.h
-$(GLSRC)gscicach.h:$(GLSRC)gxfmap.h
-$(GLSRC)gscicach.h:$(GLSRC)gxftype.h
+$(GLSRC)gscicach.h:$(GLSRC)gxbcache.h
+$(GLSRC)gscicach.h:$(GLSRC)gsropt.h
+$(GLSRC)gscicach.h:$(GLSRC)gxdda.h
+$(GLSRC)gscicach.h:$(GLSRC)gxpath.h
$(GLSRC)gscicach.h:$(GLSRC)gxfrac.h
+$(GLSRC)gscicach.h:$(GLSRC)gxtmap.h
+$(GLSRC)gscicach.h:$(GLSRC)gxftype.h
$(GLSRC)gscicach.h:$(GLSRC)gscms.h
-$(GLSRC)gscicach.h:$(GLSRC)gscspace.h
-$(GLSRC)gscicach.h:$(GLSRC)gxpath.h
-$(GLSRC)gscicach.h:$(GLSRC)gxbcache.h
-$(GLSRC)gscicach.h:$(GLSRC)gsdevice.h
-$(GLSRC)gscicach.h:$(GLSRC)gxarith.h
-$(GLSRC)gscicach.h:$(GLSRC)gspenum.h
-$(GLSRC)gscicach.h:$(GLSRC)gxhttile.h
$(GLSRC)gscicach.h:$(GLSRC)gsrect.h
$(GLSRC)gscicach.h:$(GLSRC)gslparam.h
+$(GLSRC)gscicach.h:$(GLSRC)gsdevice.h
+$(GLSRC)gscicach.h:$(GLSRC)gscpm.h
+$(GLSRC)gscicach.h:$(GLSRC)gscspace.h
+$(GLSRC)gscicach.h:$(GLSRC)gsgstate.h
$(GLSRC)gscicach.h:$(GLSRC)gsxfont.h
-$(GLSRC)gscicach.h:$(GLSRC)gsiparam.h
$(GLSRC)gscicach.h:$(GLSRC)gsdsrc.h
-$(GLSRC)gscicach.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gscicach.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gscicach.h:$(GLSRC)gscpm.h
+$(GLSRC)gscicach.h:$(GLSRC)gsiparam.h
$(GLSRC)gscicach.h:$(GLSRC)gxfixed.h
-$(GLSRC)gscicach.h:$(GLSRC)gsrefct.h
+$(GLSRC)gscicach.h:$(GLSRC)gscompt.h
+$(GLSRC)gscicach.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gscicach.h:$(GLSRC)gspenum.h
+$(GLSRC)gscicach.h:$(GLSRC)gxhttile.h
$(GLSRC)gscicach.h:$(GLSRC)gsparam.h
+$(GLSRC)gscicach.h:$(GLSRC)gsrefct.h
$(GLSRC)gscicach.h:$(GLSRC)gp.h
-$(GLSRC)gscicach.h:$(GLSRC)gsccolor.h
+$(GLSRC)gscicach.h:$(GLSRC)memento.h
+$(GLSRC)gscicach.h:$(GLSRC)memory_.h
+$(GLSRC)gscicach.h:$(GLSRC)gsuid.h
$(GLSRC)gscicach.h:$(GLSRC)gsstruct.h
$(GLSRC)gscicach.h:$(GLSRC)gxsync.h
+$(GLSRC)gscicach.h:$(GLSRC)gxbitmap.h
$(GLSRC)gscicach.h:$(GLSRC)srdline.h
$(GLSRC)gscicach.h:$(GLSRC)scommon.h
-$(GLSRC)gscicach.h:$(GLSRC)memento.h
-$(GLSRC)gscicach.h:$(GLSRC)gscsel.h
$(GLSRC)gscicach.h:$(GLSRC)gsbitmap.h
-$(GLSRC)gscicach.h:$(GLSRC)gsstype.h
+$(GLSRC)gscicach.h:$(GLSRC)gsccolor.h
+$(GLSRC)gscicach.h:$(GLSRC)gxarith.h
$(GLSRC)gscicach.h:$(GLSRC)stat_.h
-$(GLSRC)gscicach.h:$(GLSRC)gxtmap.h
-$(GLSRC)gscicach.h:$(GLSRC)gsmemory.h
$(GLSRC)gscicach.h:$(GLSRC)gpsync.h
-$(GLSRC)gscicach.h:$(GLSRC)memory_.h
+$(GLSRC)gscicach.h:$(GLSRC)gsstype.h
+$(GLSRC)gscicach.h:$(GLSRC)gsmemory.h
$(GLSRC)gscicach.h:$(GLSRC)gpgetenv.h
-$(GLSRC)gscicach.h:$(GLSRC)gslibctx.h
$(GLSRC)gscicach.h:$(GLSRC)gscdefs.h
-$(GLSRC)gscicach.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gscicach.h:$(GLSRC)stdio_.h
-$(GLSRC)gscicach.h:$(GLSRC)gscompt.h
+$(GLSRC)gscicach.h:$(GLSRC)gslibctx.h
$(GLSRC)gscicach.h:$(GLSRC)gxcindex.h
-$(GLSRC)gscicach.h:$(GLSRC)gsgstate.h
+$(GLSRC)gscicach.h:$(GLSRC)stdio_.h
+$(GLSRC)gscicach.h:$(GLSRC)gsccode.h
$(GLSRC)gscicach.h:$(GLSRC)stdint_.h
$(GLSRC)gscicach.h:$(GLSRC)gssprintf.h
-$(GLSRC)gscicach.h:$(GLSRC)gsccode.h
-$(GLSRC)gscicach.h:$(GLSRC)std.h
$(GLSRC)gscicach.h:$(GLSRC)gstypes.h
+$(GLSRC)gscicach.h:$(GLSRC)std.h
$(GLSRC)gscicach.h:$(GLSRC)stdpre.h
$(GLSRC)gscicach.h:$(GLGEN)arch.h
+$(GLSRC)gscicach.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxdevice.h:$(GLSRC)gxdevcli.h
+$(GLSRC)gxdevice.h:$(GLSRC)gxcmap.h
$(GLSRC)gxdevice.h:$(GLSRC)gxtext.h
$(GLSRC)gxdevice.h:$(GLSRC)gstext.h
$(GLSRC)gxdevice.h:$(GLSRC)gsnamecl.h
$(GLSRC)gxdevice.h:$(GLSRC)gstparam.h
-$(GLSRC)gxdevice.h:$(GLSRC)gxfcache.h
-$(GLSRC)gxdevice.h:$(GLSRC)gxcspace.h
-$(GLSRC)gxdevice.h:$(GLSRC)gsropt.h
-$(GLSRC)gxdevice.h:$(GLSRC)gsfunc.h
+$(GLSRC)gxdevice.h:$(GLSRC)gxfmap.h
$(GLSRC)gxdevice.h:$(GLSRC)gsmalloc.h
+$(GLSRC)gxdevice.h:$(GLSRC)gsfunc.h
+$(GLSRC)gxdevice.h:$(GLSRC)gxcspace.h
$(GLSRC)gxdevice.h:$(GLSRC)gxrplane.h
-$(GLSRC)gxdevice.h:$(GLSRC)gsuid.h
-$(GLSRC)gxdevice.h:$(GLSRC)gxcmap.h
+$(GLSRC)gxdevice.h:$(GLSRC)gscsel.h
+$(GLSRC)gxdevice.h:$(GLSRC)gxfcache.h
+$(GLSRC)gxdevice.h:$(GLSRC)gsfont.h
$(GLSRC)gxdevice.h:$(GLSRC)gsimage.h
$(GLSRC)gxdevice.h:$(GLSRC)gsdcolor.h
-$(GLSRC)gxdevice.h:$(GLSRC)gxdda.h
$(GLSRC)gxdevice.h:$(GLSRC)gxcvalue.h
-$(GLSRC)gxdevice.h:$(GLSRC)gsfont.h
-$(GLSRC)gxdevice.h:$(GLSRC)gxfmap.h
-$(GLSRC)gxdevice.h:$(GLSRC)gxftype.h
+$(GLSRC)gxdevice.h:$(GLSRC)gxbcache.h
+$(GLSRC)gxdevice.h:$(GLSRC)gsropt.h
+$(GLSRC)gxdevice.h:$(GLSRC)gxdda.h
+$(GLSRC)gxdevice.h:$(GLSRC)gxpath.h
$(GLSRC)gxdevice.h:$(GLSRC)gxfrac.h
+$(GLSRC)gxdevice.h:$(GLSRC)gxtmap.h
+$(GLSRC)gxdevice.h:$(GLSRC)gxftype.h
$(GLSRC)gxdevice.h:$(GLSRC)gscms.h
-$(GLSRC)gxdevice.h:$(GLSRC)gscspace.h
-$(GLSRC)gxdevice.h:$(GLSRC)gxpath.h
-$(GLSRC)gxdevice.h:$(GLSRC)gxbcache.h
-$(GLSRC)gxdevice.h:$(GLSRC)gsdevice.h
-$(GLSRC)gxdevice.h:$(GLSRC)gxarith.h
-$(GLSRC)gxdevice.h:$(GLSRC)gxstdio.h
-$(GLSRC)gxdevice.h:$(GLSRC)gspenum.h
-$(GLSRC)gxdevice.h:$(GLSRC)gxhttile.h
$(GLSRC)gxdevice.h:$(GLSRC)gsrect.h
$(GLSRC)gxdevice.h:$(GLSRC)gslparam.h
+$(GLSRC)gxdevice.h:$(GLSRC)gsdevice.h
+$(GLSRC)gxdevice.h:$(GLSRC)gscpm.h
+$(GLSRC)gxdevice.h:$(GLSRC)gscspace.h
+$(GLSRC)gxdevice.h:$(GLSRC)gsgstate.h
+$(GLSRC)gxdevice.h:$(GLSRC)gxstdio.h
$(GLSRC)gxdevice.h:$(GLSRC)gsxfont.h
-$(GLSRC)gxdevice.h:$(GLSRC)gsiparam.h
$(GLSRC)gxdevice.h:$(GLSRC)gsdsrc.h
$(GLSRC)gxdevice.h:$(GLSRC)gsio.h
-$(GLSRC)gxdevice.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gxdevice.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gxdevice.h:$(GLSRC)gscpm.h
+$(GLSRC)gxdevice.h:$(GLSRC)gsiparam.h
$(GLSRC)gxdevice.h:$(GLSRC)gxfixed.h
-$(GLSRC)gxdevice.h:$(GLSRC)gsrefct.h
+$(GLSRC)gxdevice.h:$(GLSRC)gscompt.h
+$(GLSRC)gxdevice.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gxdevice.h:$(GLSRC)gspenum.h
+$(GLSRC)gxdevice.h:$(GLSRC)gxhttile.h
$(GLSRC)gxdevice.h:$(GLSRC)gsparam.h
+$(GLSRC)gxdevice.h:$(GLSRC)gsrefct.h
$(GLSRC)gxdevice.h:$(GLSRC)gp.h
-$(GLSRC)gxdevice.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxdevice.h:$(GLSRC)memento.h
+$(GLSRC)gxdevice.h:$(GLSRC)memory_.h
+$(GLSRC)gxdevice.h:$(GLSRC)gsuid.h
$(GLSRC)gxdevice.h:$(GLSRC)gsstruct.h
$(GLSRC)gxdevice.h:$(GLSRC)gxsync.h
+$(GLSRC)gxdevice.h:$(GLSRC)gxbitmap.h
$(GLSRC)gxdevice.h:$(GLSRC)srdline.h
$(GLSRC)gxdevice.h:$(GLSRC)scommon.h
-$(GLSRC)gxdevice.h:$(GLSRC)memento.h
-$(GLSRC)gxdevice.h:$(GLSRC)gscsel.h
-$(GLSRC)gxdevice.h:$(GLSRC)gsbitmap.h
$(GLSRC)gxdevice.h:$(GLSRC)gsfname.h
-$(GLSRC)gxdevice.h:$(GLSRC)gsstype.h
+$(GLSRC)gxdevice.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gxdevice.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxdevice.h:$(GLSRC)gxarith.h
$(GLSRC)gxdevice.h:$(GLSRC)stat_.h
-$(GLSRC)gxdevice.h:$(GLSRC)gxtmap.h
-$(GLSRC)gxdevice.h:$(GLSRC)gsmemory.h
$(GLSRC)gxdevice.h:$(GLSRC)gpsync.h
-$(GLSRC)gxdevice.h:$(GLSRC)memory_.h
+$(GLSRC)gxdevice.h:$(GLSRC)gsstype.h
+$(GLSRC)gxdevice.h:$(GLSRC)gsmemory.h
$(GLSRC)gxdevice.h:$(GLSRC)gpgetenv.h
-$(GLSRC)gxdevice.h:$(GLSRC)gslibctx.h
$(GLSRC)gxdevice.h:$(GLSRC)gscdefs.h
-$(GLSRC)gxdevice.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gxdevice.h:$(GLSRC)stdio_.h
-$(GLSRC)gxdevice.h:$(GLSRC)gscompt.h
+$(GLSRC)gxdevice.h:$(GLSRC)gslibctx.h
$(GLSRC)gxdevice.h:$(GLSRC)gxcindex.h
-$(GLSRC)gxdevice.h:$(GLSRC)gsgstate.h
+$(GLSRC)gxdevice.h:$(GLSRC)stdio_.h
+$(GLSRC)gxdevice.h:$(GLSRC)gsccode.h
$(GLSRC)gxdevice.h:$(GLSRC)stdint_.h
$(GLSRC)gxdevice.h:$(GLSRC)gssprintf.h
-$(GLSRC)gxdevice.h:$(GLSRC)gsccode.h
-$(GLSRC)gxdevice.h:$(GLSRC)std.h
$(GLSRC)gxdevice.h:$(GLSRC)gstypes.h
+$(GLSRC)gxdevice.h:$(GLSRC)std.h
$(GLSRC)gxdevice.h:$(GLSRC)stdpre.h
$(GLSRC)gxdevice.h:$(GLGEN)arch.h
+$(GLSRC)gxdevice.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxdht.h:$(GLSRC)gxht.h
$(GLSRC)gxdht.h:$(GLSRC)gxhttype.h
$(GLSRC)gxdht.h:$(GLSRC)gsht1.h
$(GLSRC)gxdht.h:$(GLSRC)gsht.h
$(GLSRC)gxdht.h:$(GLSRC)gsdcolor.h
$(GLSRC)gxdht.h:$(GLSRC)gxfrac.h
+$(GLSRC)gxdht.h:$(GLSRC)gxtmap.h
$(GLSRC)gxdht.h:$(GLSRC)gscms.h
-$(GLSRC)gxdht.h:$(GLSRC)gscspace.h
$(GLSRC)gxdht.h:$(GLSRC)gsdevice.h
-$(GLSRC)gxdht.h:$(GLSRC)gxarith.h
-$(GLSRC)gxdht.h:$(GLSRC)gxhttile.h
+$(GLSRC)gxdht.h:$(GLSRC)gscspace.h
+$(GLSRC)gxdht.h:$(GLSRC)gsgstate.h
$(GLSRC)gxdht.h:$(GLSRC)gsiparam.h
-$(GLSRC)gxdht.h:$(GLSRC)gxbitmap.h
$(GLSRC)gxdht.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gxdht.h:$(GLSRC)gsrefct.h
+$(GLSRC)gxdht.h:$(GLSRC)gxhttile.h
$(GLSRC)gxdht.h:$(GLSRC)gsparam.h
-$(GLSRC)gxdht.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxdht.h:$(GLSRC)gsrefct.h
+$(GLSRC)gxdht.h:$(GLSRC)memento.h
$(GLSRC)gxdht.h:$(GLSRC)gxsync.h
+$(GLSRC)gxdht.h:$(GLSRC)gxbitmap.h
$(GLSRC)gxdht.h:$(GLSRC)scommon.h
-$(GLSRC)gxdht.h:$(GLSRC)memento.h
$(GLSRC)gxdht.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gxdht.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxdht.h:$(GLSRC)gxarith.h
+$(GLSRC)gxdht.h:$(GLSRC)gpsync.h
$(GLSRC)gxdht.h:$(GLSRC)gsstype.h
-$(GLSRC)gxdht.h:$(GLSRC)gxtmap.h
$(GLSRC)gxdht.h:$(GLSRC)gsmemory.h
-$(GLSRC)gxdht.h:$(GLSRC)gpsync.h
$(GLSRC)gxdht.h:$(GLSRC)gslibctx.h
-$(GLSRC)gxdht.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gxdht.h:$(GLSRC)stdio_.h
$(GLSRC)gxdht.h:$(GLSRC)gxcindex.h
-$(GLSRC)gxdht.h:$(GLSRC)gsgstate.h
+$(GLSRC)gxdht.h:$(GLSRC)stdio_.h
$(GLSRC)gxdht.h:$(GLSRC)stdint_.h
$(GLSRC)gxdht.h:$(GLSRC)gssprintf.h
-$(GLSRC)gxdht.h:$(GLSRC)std.h
$(GLSRC)gxdht.h:$(GLSRC)gstypes.h
+$(GLSRC)gxdht.h:$(GLSRC)std.h
$(GLSRC)gxdht.h:$(GLSRC)stdpre.h
$(GLSRC)gxdht.h:$(GLGEN)arch.h
+$(GLSRC)gxdht.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxdhtserial.h:$(GLSRC)gsdcolor.h
$(GLSRC)gxdhtserial.h:$(GLSRC)gscms.h
-$(GLSRC)gxdhtserial.h:$(GLSRC)gscspace.h
$(GLSRC)gxdhtserial.h:$(GLSRC)gsdevice.h
-$(GLSRC)gxdhtserial.h:$(GLSRC)gxarith.h
-$(GLSRC)gxdhtserial.h:$(GLSRC)gxhttile.h
+$(GLSRC)gxdhtserial.h:$(GLSRC)gscspace.h
+$(GLSRC)gxdhtserial.h:$(GLSRC)gsgstate.h
$(GLSRC)gxdhtserial.h:$(GLSRC)gsiparam.h
-$(GLSRC)gxdhtserial.h:$(GLSRC)gxbitmap.h
$(GLSRC)gxdhtserial.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gxdhtserial.h:$(GLSRC)gsrefct.h
+$(GLSRC)gxdhtserial.h:$(GLSRC)gxhttile.h
$(GLSRC)gxdhtserial.h:$(GLSRC)gsparam.h
-$(GLSRC)gxdhtserial.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxdhtserial.h:$(GLSRC)gsrefct.h
+$(GLSRC)gxdhtserial.h:$(GLSRC)memento.h
$(GLSRC)gxdhtserial.h:$(GLSRC)gxsync.h
+$(GLSRC)gxdhtserial.h:$(GLSRC)gxbitmap.h
$(GLSRC)gxdhtserial.h:$(GLSRC)scommon.h
-$(GLSRC)gxdhtserial.h:$(GLSRC)memento.h
$(GLSRC)gxdhtserial.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gxdhtserial.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxdhtserial.h:$(GLSRC)gxarith.h
+$(GLSRC)gxdhtserial.h:$(GLSRC)gpsync.h
$(GLSRC)gxdhtserial.h:$(GLSRC)gsstype.h
$(GLSRC)gxdhtserial.h:$(GLSRC)gsmemory.h
-$(GLSRC)gxdhtserial.h:$(GLSRC)gpsync.h
$(GLSRC)gxdhtserial.h:$(GLSRC)gslibctx.h
-$(GLSRC)gxdhtserial.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gxdhtserial.h:$(GLSRC)stdio_.h
$(GLSRC)gxdhtserial.h:$(GLSRC)gxcindex.h
-$(GLSRC)gxdhtserial.h:$(GLSRC)gsgstate.h
+$(GLSRC)gxdhtserial.h:$(GLSRC)stdio_.h
$(GLSRC)gxdhtserial.h:$(GLSRC)stdint_.h
$(GLSRC)gxdhtserial.h:$(GLSRC)gssprintf.h
-$(GLSRC)gxdhtserial.h:$(GLSRC)std.h
$(GLSRC)gxdhtserial.h:$(GLSRC)gstypes.h
+$(GLSRC)gxdhtserial.h:$(GLSRC)std.h
$(GLSRC)gxdhtserial.h:$(GLSRC)stdpre.h
$(GLSRC)gxdhtserial.h:$(GLGEN)arch.h
+$(GLSRC)gxdhtserial.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxdither.h:$(GLSRC)gsdcolor.h
$(GLSRC)gxdither.h:$(GLSRC)gxfrac.h
$(GLSRC)gxdither.h:$(GLSRC)gscms.h
-$(GLSRC)gxdither.h:$(GLSRC)gscspace.h
$(GLSRC)gxdither.h:$(GLSRC)gsdevice.h
-$(GLSRC)gxdither.h:$(GLSRC)gxarith.h
-$(GLSRC)gxdither.h:$(GLSRC)gxhttile.h
+$(GLSRC)gxdither.h:$(GLSRC)gscspace.h
+$(GLSRC)gxdither.h:$(GLSRC)gsgstate.h
$(GLSRC)gxdither.h:$(GLSRC)gsiparam.h
-$(GLSRC)gxdither.h:$(GLSRC)gxbitmap.h
$(GLSRC)gxdither.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gxdither.h:$(GLSRC)gsrefct.h
+$(GLSRC)gxdither.h:$(GLSRC)gxhttile.h
$(GLSRC)gxdither.h:$(GLSRC)gsparam.h
-$(GLSRC)gxdither.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxdither.h:$(GLSRC)gsrefct.h
+$(GLSRC)gxdither.h:$(GLSRC)memento.h
$(GLSRC)gxdither.h:$(GLSRC)gxsync.h
+$(GLSRC)gxdither.h:$(GLSRC)gxbitmap.h
$(GLSRC)gxdither.h:$(GLSRC)scommon.h
-$(GLSRC)gxdither.h:$(GLSRC)memento.h
$(GLSRC)gxdither.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gxdither.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxdither.h:$(GLSRC)gxarith.h
+$(GLSRC)gxdither.h:$(GLSRC)gpsync.h
$(GLSRC)gxdither.h:$(GLSRC)gsstype.h
$(GLSRC)gxdither.h:$(GLSRC)gsmemory.h
-$(GLSRC)gxdither.h:$(GLSRC)gpsync.h
$(GLSRC)gxdither.h:$(GLSRC)gslibctx.h
-$(GLSRC)gxdither.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gxdither.h:$(GLSRC)stdio_.h
$(GLSRC)gxdither.h:$(GLSRC)gxcindex.h
-$(GLSRC)gxdither.h:$(GLSRC)gsgstate.h
+$(GLSRC)gxdither.h:$(GLSRC)stdio_.h
$(GLSRC)gxdither.h:$(GLSRC)stdint_.h
$(GLSRC)gxdither.h:$(GLSRC)gssprintf.h
-$(GLSRC)gxdither.h:$(GLSRC)std.h
$(GLSRC)gxdither.h:$(GLSRC)gstypes.h
+$(GLSRC)gxdither.h:$(GLSRC)std.h
$(GLSRC)gxdither.h:$(GLSRC)stdpre.h
$(GLSRC)gxdither.h:$(GLGEN)arch.h
+$(GLSRC)gxdither.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxclip2.h:$(GLSRC)gxmclip.h
$(GLSRC)gxclip2.h:$(GLSRC)gxclip.h
$(GLSRC)gxclip2.h:$(GLSRC)gxdevmem.h
$(GLSRC)gxclip2.h:$(GLSRC)gxdevcli.h
+$(GLSRC)gxclip2.h:$(GLSRC)gxcmap.h
$(GLSRC)gxclip2.h:$(GLSRC)gxtext.h
$(GLSRC)gxclip2.h:$(GLSRC)gstext.h
$(GLSRC)gxclip2.h:$(GLSRC)gsnamecl.h
$(GLSRC)gxclip2.h:$(GLSRC)gstparam.h
-$(GLSRC)gxclip2.h:$(GLSRC)gxfcache.h
-$(GLSRC)gxclip2.h:$(GLSRC)gxcspace.h
-$(GLSRC)gxclip2.h:$(GLSRC)gsropt.h
+$(GLSRC)gxclip2.h:$(GLSRC)gxfmap.h
$(GLSRC)gxclip2.h:$(GLSRC)gsfunc.h
+$(GLSRC)gxclip2.h:$(GLSRC)gxcspace.h
$(GLSRC)gxclip2.h:$(GLSRC)gxrplane.h
-$(GLSRC)gxclip2.h:$(GLSRC)gsuid.h
-$(GLSRC)gxclip2.h:$(GLSRC)gxcmap.h
+$(GLSRC)gxclip2.h:$(GLSRC)gscsel.h
+$(GLSRC)gxclip2.h:$(GLSRC)gxfcache.h
+$(GLSRC)gxclip2.h:$(GLSRC)gsfont.h
$(GLSRC)gxclip2.h:$(GLSRC)gsimage.h
$(GLSRC)gxclip2.h:$(GLSRC)gsdcolor.h
-$(GLSRC)gxclip2.h:$(GLSRC)gxdda.h
$(GLSRC)gxclip2.h:$(GLSRC)gxcvalue.h
-$(GLSRC)gxclip2.h:$(GLSRC)gsfont.h
-$(GLSRC)gxclip2.h:$(GLSRC)gxfmap.h
-$(GLSRC)gxclip2.h:$(GLSRC)gxftype.h
+$(GLSRC)gxclip2.h:$(GLSRC)gxbcache.h
+$(GLSRC)gxclip2.h:$(GLSRC)gsropt.h
+$(GLSRC)gxclip2.h:$(GLSRC)gxdda.h
+$(GLSRC)gxclip2.h:$(GLSRC)gxpath.h
$(GLSRC)gxclip2.h:$(GLSRC)gxfrac.h
+$(GLSRC)gxclip2.h:$(GLSRC)gxtmap.h
+$(GLSRC)gxclip2.h:$(GLSRC)gxftype.h
$(GLSRC)gxclip2.h:$(GLSRC)gscms.h
-$(GLSRC)gxclip2.h:$(GLSRC)gscspace.h
-$(GLSRC)gxclip2.h:$(GLSRC)gxpath.h
-$(GLSRC)gxclip2.h:$(GLSRC)gxbcache.h
-$(GLSRC)gxclip2.h:$(GLSRC)gsdevice.h
-$(GLSRC)gxclip2.h:$(GLSRC)gxarith.h
-$(GLSRC)gxclip2.h:$(GLSRC)gspenum.h
-$(GLSRC)gxclip2.h:$(GLSRC)gxhttile.h
$(GLSRC)gxclip2.h:$(GLSRC)gsrect.h
$(GLSRC)gxclip2.h:$(GLSRC)gslparam.h
+$(GLSRC)gxclip2.h:$(GLSRC)gsdevice.h
+$(GLSRC)gxclip2.h:$(GLSRC)gscpm.h
+$(GLSRC)gxclip2.h:$(GLSRC)gscspace.h
+$(GLSRC)gxclip2.h:$(GLSRC)gsgstate.h
$(GLSRC)gxclip2.h:$(GLSRC)gsxfont.h
-$(GLSRC)gxclip2.h:$(GLSRC)gsiparam.h
$(GLSRC)gxclip2.h:$(GLSRC)gsdsrc.h
-$(GLSRC)gxclip2.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gxclip2.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gxclip2.h:$(GLSRC)gscpm.h
+$(GLSRC)gxclip2.h:$(GLSRC)gsiparam.h
$(GLSRC)gxclip2.h:$(GLSRC)gxfixed.h
-$(GLSRC)gxclip2.h:$(GLSRC)gsrefct.h
+$(GLSRC)gxclip2.h:$(GLSRC)gscompt.h
+$(GLSRC)gxclip2.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gxclip2.h:$(GLSRC)gspenum.h
+$(GLSRC)gxclip2.h:$(GLSRC)gxhttile.h
$(GLSRC)gxclip2.h:$(GLSRC)gsparam.h
+$(GLSRC)gxclip2.h:$(GLSRC)gsrefct.h
$(GLSRC)gxclip2.h:$(GLSRC)gp.h
-$(GLSRC)gxclip2.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxclip2.h:$(GLSRC)memento.h
+$(GLSRC)gxclip2.h:$(GLSRC)memory_.h
+$(GLSRC)gxclip2.h:$(GLSRC)gsuid.h
$(GLSRC)gxclip2.h:$(GLSRC)gsstruct.h
$(GLSRC)gxclip2.h:$(GLSRC)gxsync.h
+$(GLSRC)gxclip2.h:$(GLSRC)gxbitmap.h
$(GLSRC)gxclip2.h:$(GLSRC)srdline.h
$(GLSRC)gxclip2.h:$(GLSRC)scommon.h
-$(GLSRC)gxclip2.h:$(GLSRC)memento.h
-$(GLSRC)gxclip2.h:$(GLSRC)gscsel.h
$(GLSRC)gxclip2.h:$(GLSRC)gsbitmap.h
-$(GLSRC)gxclip2.h:$(GLSRC)gsstype.h
+$(GLSRC)gxclip2.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxclip2.h:$(GLSRC)gxarith.h
$(GLSRC)gxclip2.h:$(GLSRC)stat_.h
-$(GLSRC)gxclip2.h:$(GLSRC)gxtmap.h
-$(GLSRC)gxclip2.h:$(GLSRC)gsmemory.h
$(GLSRC)gxclip2.h:$(GLSRC)gpsync.h
-$(GLSRC)gxclip2.h:$(GLSRC)memory_.h
+$(GLSRC)gxclip2.h:$(GLSRC)gsstype.h
+$(GLSRC)gxclip2.h:$(GLSRC)gsmemory.h
$(GLSRC)gxclip2.h:$(GLSRC)gpgetenv.h
-$(GLSRC)gxclip2.h:$(GLSRC)gslibctx.h
$(GLSRC)gxclip2.h:$(GLSRC)gscdefs.h
-$(GLSRC)gxclip2.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gxclip2.h:$(GLSRC)stdio_.h
-$(GLSRC)gxclip2.h:$(GLSRC)gscompt.h
+$(GLSRC)gxclip2.h:$(GLSRC)gslibctx.h
$(GLSRC)gxclip2.h:$(GLSRC)gxcindex.h
-$(GLSRC)gxclip2.h:$(GLSRC)gsgstate.h
+$(GLSRC)gxclip2.h:$(GLSRC)stdio_.h
+$(GLSRC)gxclip2.h:$(GLSRC)gsccode.h
$(GLSRC)gxclip2.h:$(GLSRC)stdint_.h
$(GLSRC)gxclip2.h:$(GLSRC)gssprintf.h
-$(GLSRC)gxclip2.h:$(GLSRC)gsccode.h
-$(GLSRC)gxclip2.h:$(GLSRC)std.h
$(GLSRC)gxclip2.h:$(GLSRC)gstypes.h
+$(GLSRC)gxclip2.h:$(GLSRC)std.h
$(GLSRC)gxclip2.h:$(GLSRC)stdpre.h
$(GLSRC)gxclip2.h:$(GLGEN)arch.h
+$(GLSRC)gxclip2.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxclipm.h:$(GLSRC)gxmclip.h
$(GLSRC)gxclipm.h:$(GLSRC)gxclip.h
$(GLSRC)gxclipm.h:$(GLSRC)gxdevmem.h
$(GLSRC)gxclipm.h:$(GLSRC)gxdevcli.h
+$(GLSRC)gxclipm.h:$(GLSRC)gxcmap.h
$(GLSRC)gxclipm.h:$(GLSRC)gxtext.h
$(GLSRC)gxclipm.h:$(GLSRC)gstext.h
$(GLSRC)gxclipm.h:$(GLSRC)gsnamecl.h
$(GLSRC)gxclipm.h:$(GLSRC)gstparam.h
-$(GLSRC)gxclipm.h:$(GLSRC)gxfcache.h
-$(GLSRC)gxclipm.h:$(GLSRC)gxcspace.h
-$(GLSRC)gxclipm.h:$(GLSRC)gsropt.h
+$(GLSRC)gxclipm.h:$(GLSRC)gxfmap.h
$(GLSRC)gxclipm.h:$(GLSRC)gsfunc.h
+$(GLSRC)gxclipm.h:$(GLSRC)gxcspace.h
$(GLSRC)gxclipm.h:$(GLSRC)gxrplane.h
-$(GLSRC)gxclipm.h:$(GLSRC)gsuid.h
-$(GLSRC)gxclipm.h:$(GLSRC)gxcmap.h
+$(GLSRC)gxclipm.h:$(GLSRC)gscsel.h
+$(GLSRC)gxclipm.h:$(GLSRC)gxfcache.h
+$(GLSRC)gxclipm.h:$(GLSRC)gsfont.h
$(GLSRC)gxclipm.h:$(GLSRC)gsimage.h
$(GLSRC)gxclipm.h:$(GLSRC)gsdcolor.h
-$(GLSRC)gxclipm.h:$(GLSRC)gxdda.h
$(GLSRC)gxclipm.h:$(GLSRC)gxcvalue.h
-$(GLSRC)gxclipm.h:$(GLSRC)gsfont.h
-$(GLSRC)gxclipm.h:$(GLSRC)gxfmap.h
-$(GLSRC)gxclipm.h:$(GLSRC)gxftype.h
+$(GLSRC)gxclipm.h:$(GLSRC)gxbcache.h
+$(GLSRC)gxclipm.h:$(GLSRC)gsropt.h
+$(GLSRC)gxclipm.h:$(GLSRC)gxdda.h
+$(GLSRC)gxclipm.h:$(GLSRC)gxpath.h
$(GLSRC)gxclipm.h:$(GLSRC)gxfrac.h
+$(GLSRC)gxclipm.h:$(GLSRC)gxtmap.h
+$(GLSRC)gxclipm.h:$(GLSRC)gxftype.h
$(GLSRC)gxclipm.h:$(GLSRC)gscms.h
-$(GLSRC)gxclipm.h:$(GLSRC)gscspace.h
-$(GLSRC)gxclipm.h:$(GLSRC)gxpath.h
-$(GLSRC)gxclipm.h:$(GLSRC)gxbcache.h
-$(GLSRC)gxclipm.h:$(GLSRC)gsdevice.h
-$(GLSRC)gxclipm.h:$(GLSRC)gxarith.h
-$(GLSRC)gxclipm.h:$(GLSRC)gspenum.h
-$(GLSRC)gxclipm.h:$(GLSRC)gxhttile.h
$(GLSRC)gxclipm.h:$(GLSRC)gsrect.h
$(GLSRC)gxclipm.h:$(GLSRC)gslparam.h
+$(GLSRC)gxclipm.h:$(GLSRC)gsdevice.h
+$(GLSRC)gxclipm.h:$(GLSRC)gscpm.h
+$(GLSRC)gxclipm.h:$(GLSRC)gscspace.h
+$(GLSRC)gxclipm.h:$(GLSRC)gsgstate.h
$(GLSRC)gxclipm.h:$(GLSRC)gsxfont.h
-$(GLSRC)gxclipm.h:$(GLSRC)gsiparam.h
$(GLSRC)gxclipm.h:$(GLSRC)gsdsrc.h
-$(GLSRC)gxclipm.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gxclipm.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gxclipm.h:$(GLSRC)gscpm.h
+$(GLSRC)gxclipm.h:$(GLSRC)gsiparam.h
$(GLSRC)gxclipm.h:$(GLSRC)gxfixed.h
-$(GLSRC)gxclipm.h:$(GLSRC)gsrefct.h
+$(GLSRC)gxclipm.h:$(GLSRC)gscompt.h
+$(GLSRC)gxclipm.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gxclipm.h:$(GLSRC)gspenum.h
+$(GLSRC)gxclipm.h:$(GLSRC)gxhttile.h
$(GLSRC)gxclipm.h:$(GLSRC)gsparam.h
+$(GLSRC)gxclipm.h:$(GLSRC)gsrefct.h
$(GLSRC)gxclipm.h:$(GLSRC)gp.h
-$(GLSRC)gxclipm.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxclipm.h:$(GLSRC)memento.h
+$(GLSRC)gxclipm.h:$(GLSRC)memory_.h
+$(GLSRC)gxclipm.h:$(GLSRC)gsuid.h
$(GLSRC)gxclipm.h:$(GLSRC)gsstruct.h
$(GLSRC)gxclipm.h:$(GLSRC)gxsync.h
+$(GLSRC)gxclipm.h:$(GLSRC)gxbitmap.h
$(GLSRC)gxclipm.h:$(GLSRC)srdline.h
$(GLSRC)gxclipm.h:$(GLSRC)scommon.h
-$(GLSRC)gxclipm.h:$(GLSRC)memento.h
-$(GLSRC)gxclipm.h:$(GLSRC)gscsel.h
$(GLSRC)gxclipm.h:$(GLSRC)gsbitmap.h
-$(GLSRC)gxclipm.h:$(GLSRC)gsstype.h
+$(GLSRC)gxclipm.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxclipm.h:$(GLSRC)gxarith.h
$(GLSRC)gxclipm.h:$(GLSRC)stat_.h
-$(GLSRC)gxclipm.h:$(GLSRC)gxtmap.h
-$(GLSRC)gxclipm.h:$(GLSRC)gsmemory.h
$(GLSRC)gxclipm.h:$(GLSRC)gpsync.h
-$(GLSRC)gxclipm.h:$(GLSRC)memory_.h
+$(GLSRC)gxclipm.h:$(GLSRC)gsstype.h
+$(GLSRC)gxclipm.h:$(GLSRC)gsmemory.h
$(GLSRC)gxclipm.h:$(GLSRC)gpgetenv.h
-$(GLSRC)gxclipm.h:$(GLSRC)gslibctx.h
$(GLSRC)gxclipm.h:$(GLSRC)gscdefs.h
-$(GLSRC)gxclipm.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gxclipm.h:$(GLSRC)stdio_.h
-$(GLSRC)gxclipm.h:$(GLSRC)gscompt.h
+$(GLSRC)gxclipm.h:$(GLSRC)gslibctx.h
$(GLSRC)gxclipm.h:$(GLSRC)gxcindex.h
-$(GLSRC)gxclipm.h:$(GLSRC)gsgstate.h
+$(GLSRC)gxclipm.h:$(GLSRC)stdio_.h
+$(GLSRC)gxclipm.h:$(GLSRC)gsccode.h
$(GLSRC)gxclipm.h:$(GLSRC)stdint_.h
$(GLSRC)gxclipm.h:$(GLSRC)gssprintf.h
-$(GLSRC)gxclipm.h:$(GLSRC)gsccode.h
-$(GLSRC)gxclipm.h:$(GLSRC)std.h
$(GLSRC)gxclipm.h:$(GLSRC)gstypes.h
+$(GLSRC)gxclipm.h:$(GLSRC)std.h
$(GLSRC)gxclipm.h:$(GLSRC)stdpre.h
$(GLSRC)gxclipm.h:$(GLGEN)arch.h
+$(GLSRC)gxclipm.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxctable.h:$(GLSRC)gxfrac.h
$(GLSRC)gxctable.h:$(GLSRC)gxfixed.h
-$(GLSRC)gxctable.h:$(GLSRC)std.h
$(GLSRC)gxctable.h:$(GLSRC)gstypes.h
+$(GLSRC)gxctable.h:$(GLSRC)std.h
$(GLSRC)gxctable.h:$(GLSRC)stdpre.h
$(GLSRC)gxctable.h:$(GLGEN)arch.h
-$(GLSRC)gxfcache.h:$(GLSRC)gsuid.h
$(GLSRC)gxfcache.h:$(GLSRC)gsfont.h
-$(GLSRC)gxfcache.h:$(GLSRC)gxftype.h
$(GLSRC)gxfcache.h:$(GLSRC)gxbcache.h
+$(GLSRC)gxfcache.h:$(GLSRC)gxftype.h
+$(GLSRC)gxfcache.h:$(GLSRC)gsgstate.h
$(GLSRC)gxfcache.h:$(GLSRC)gsxfont.h
-$(GLSRC)gxfcache.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gxfcache.h:$(GLSRC)gsmatrix.h
$(GLSRC)gxfcache.h:$(GLSRC)gxfixed.h
+$(GLSRC)gxfcache.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gxfcache.h:$(GLSRC)gsuid.h
+$(GLSRC)gxfcache.h:$(GLSRC)gxbitmap.h
$(GLSRC)gxfcache.h:$(GLSRC)scommon.h
$(GLSRC)gxfcache.h:$(GLSRC)gsbitmap.h
$(GLSRC)gxfcache.h:$(GLSRC)gsstype.h
$(GLSRC)gxfcache.h:$(GLSRC)gsmemory.h
$(GLSRC)gxfcache.h:$(GLSRC)gslibctx.h
-$(GLSRC)gxfcache.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxfcache.h:$(GLSRC)stdio_.h
-$(GLSRC)gxfcache.h:$(GLSRC)gsgstate.h
+$(GLSRC)gxfcache.h:$(GLSRC)gsccode.h
$(GLSRC)gxfcache.h:$(GLSRC)stdint_.h
$(GLSRC)gxfcache.h:$(GLSRC)gssprintf.h
-$(GLSRC)gxfcache.h:$(GLSRC)gsccode.h
-$(GLSRC)gxfcache.h:$(GLSRC)std.h
$(GLSRC)gxfcache.h:$(GLSRC)gstypes.h
+$(GLSRC)gxfcache.h:$(GLSRC)std.h
$(GLSRC)gxfcache.h:$(GLSRC)stdpre.h
$(GLSRC)gxfcache.h:$(GLGEN)arch.h
+$(GLSRC)gxfcache.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxfont.h:$(GLSRC)gspath.h
-$(GLSRC)gxfont.h:$(GLSRC)gxmatrix.h
$(GLSRC)gxfont.h:$(GLSRC)gsgdata.h
-$(GLSRC)gxfont.h:$(GLSRC)gsgcache.h
+$(GLSRC)gxfont.h:$(GLSRC)gxmatrix.h
$(GLSRC)gxfont.h:$(GLSRC)gxfapi.h
-$(GLSRC)gxfont.h:$(GLSRC)gsnotify.h
$(GLSRC)gxfont.h:$(GLSRC)gsfcmap.h
$(GLSRC)gxfont.h:$(GLSRC)gstext.h
-$(GLSRC)gxfont.h:$(GLSRC)gsuid.h
-$(GLSRC)gxfont.h:$(GLSRC)gsdcolor.h
$(GLSRC)gxfont.h:$(GLSRC)gsfont.h
+$(GLSRC)gxfont.h:$(GLSRC)gsdcolor.h
+$(GLSRC)gxfont.h:$(GLSRC)gxpath.h
$(GLSRC)gxfont.h:$(GLSRC)gxftype.h
$(GLSRC)gxfont.h:$(GLSRC)gscms.h
-$(GLSRC)gxfont.h:$(GLSRC)gscspace.h
-$(GLSRC)gxfont.h:$(GLSRC)gxpath.h
-$(GLSRC)gxfont.h:$(GLSRC)gsdevice.h
-$(GLSRC)gxfont.h:$(GLSRC)gxarith.h
-$(GLSRC)gxfont.h:$(GLSRC)gspenum.h
-$(GLSRC)gxfont.h:$(GLSRC)gxhttile.h
$(GLSRC)gxfont.h:$(GLSRC)gsrect.h
$(GLSRC)gxfont.h:$(GLSRC)gslparam.h
-$(GLSRC)gxfont.h:$(GLSRC)gsiparam.h
-$(GLSRC)gxfont.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gxfont.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gxfont.h:$(GLSRC)gsdevice.h
$(GLSRC)gxfont.h:$(GLSRC)gscpm.h
+$(GLSRC)gxfont.h:$(GLSRC)gsgcache.h
+$(GLSRC)gxfont.h:$(GLSRC)gscspace.h
+$(GLSRC)gxfont.h:$(GLSRC)gsgstate.h
+$(GLSRC)gxfont.h:$(GLSRC)gsnotify.h
+$(GLSRC)gxfont.h:$(GLSRC)gsiparam.h
$(GLSRC)gxfont.h:$(GLSRC)gxfixed.h
-$(GLSRC)gxfont.h:$(GLSRC)gsrefct.h
+$(GLSRC)gxfont.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gxfont.h:$(GLSRC)gspenum.h
+$(GLSRC)gxfont.h:$(GLSRC)gxhttile.h
$(GLSRC)gxfont.h:$(GLSRC)gsparam.h
-$(GLSRC)gxfont.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxfont.h:$(GLSRC)gsrefct.h
+$(GLSRC)gxfont.h:$(GLSRC)memento.h
+$(GLSRC)gxfont.h:$(GLSRC)gsuid.h
$(GLSRC)gxfont.h:$(GLSRC)gxsync.h
+$(GLSRC)gxfont.h:$(GLSRC)gxbitmap.h
$(GLSRC)gxfont.h:$(GLSRC)scommon.h
-$(GLSRC)gxfont.h:$(GLSRC)memento.h
$(GLSRC)gxfont.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gxfont.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxfont.h:$(GLSRC)gxarith.h
+$(GLSRC)gxfont.h:$(GLSRC)gpsync.h
$(GLSRC)gxfont.h:$(GLSRC)gsstype.h
$(GLSRC)gxfont.h:$(GLSRC)gsmemory.h
-$(GLSRC)gxfont.h:$(GLSRC)gpsync.h
$(GLSRC)gxfont.h:$(GLSRC)gslibctx.h
-$(GLSRC)gxfont.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gxfont.h:$(GLSRC)stdio_.h
$(GLSRC)gxfont.h:$(GLSRC)gxcindex.h
-$(GLSRC)gxfont.h:$(GLSRC)gsgstate.h
+$(GLSRC)gxfont.h:$(GLSRC)stdio_.h
+$(GLSRC)gxfont.h:$(GLSRC)gsccode.h
$(GLSRC)gxfont.h:$(GLSRC)stdint_.h
$(GLSRC)gxfont.h:$(GLSRC)gssprintf.h
-$(GLSRC)gxfont.h:$(GLSRC)gsccode.h
-$(GLSRC)gxfont.h:$(GLSRC)std.h
$(GLSRC)gxfont.h:$(GLSRC)gstypes.h
+$(GLSRC)gxfont.h:$(GLSRC)std.h
$(GLSRC)gxfont.h:$(GLSRC)stdpre.h
$(GLSRC)gxfont.h:$(GLGEN)arch.h
+$(GLSRC)gxfont.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxiparam.h:$(GLSRC)gxdevcli.h
+$(GLSRC)gxiparam.h:$(GLSRC)gxcmap.h
$(GLSRC)gxiparam.h:$(GLSRC)gxtext.h
$(GLSRC)gxiparam.h:$(GLSRC)gstext.h
$(GLSRC)gxiparam.h:$(GLSRC)gsnamecl.h
$(GLSRC)gxiparam.h:$(GLSRC)gstparam.h
-$(GLSRC)gxiparam.h:$(GLSRC)gxfcache.h
-$(GLSRC)gxiparam.h:$(GLSRC)gxcspace.h
-$(GLSRC)gxiparam.h:$(GLSRC)gsropt.h
+$(GLSRC)gxiparam.h:$(GLSRC)gxfmap.h
$(GLSRC)gxiparam.h:$(GLSRC)gsfunc.h
+$(GLSRC)gxiparam.h:$(GLSRC)gxcspace.h
$(GLSRC)gxiparam.h:$(GLSRC)gxrplane.h
-$(GLSRC)gxiparam.h:$(GLSRC)gsuid.h
-$(GLSRC)gxiparam.h:$(GLSRC)gxcmap.h
+$(GLSRC)gxiparam.h:$(GLSRC)gscsel.h
+$(GLSRC)gxiparam.h:$(GLSRC)gxfcache.h
+$(GLSRC)gxiparam.h:$(GLSRC)gsfont.h
$(GLSRC)gxiparam.h:$(GLSRC)gsimage.h
$(GLSRC)gxiparam.h:$(GLSRC)gsdcolor.h
-$(GLSRC)gxiparam.h:$(GLSRC)gxdda.h
$(GLSRC)gxiparam.h:$(GLSRC)gxcvalue.h
-$(GLSRC)gxiparam.h:$(GLSRC)gsfont.h
-$(GLSRC)gxiparam.h:$(GLSRC)gxfmap.h
-$(GLSRC)gxiparam.h:$(GLSRC)gxftype.h
+$(GLSRC)gxiparam.h:$(GLSRC)gxbcache.h
+$(GLSRC)gxiparam.h:$(GLSRC)gsropt.h
+$(GLSRC)gxiparam.h:$(GLSRC)gxdda.h
+$(GLSRC)gxiparam.h:$(GLSRC)gxpath.h
$(GLSRC)gxiparam.h:$(GLSRC)gxfrac.h
+$(GLSRC)gxiparam.h:$(GLSRC)gxtmap.h
+$(GLSRC)gxiparam.h:$(GLSRC)gxftype.h
$(GLSRC)gxiparam.h:$(GLSRC)gscms.h
-$(GLSRC)gxiparam.h:$(GLSRC)gscspace.h
-$(GLSRC)gxiparam.h:$(GLSRC)gxpath.h
-$(GLSRC)gxiparam.h:$(GLSRC)gxbcache.h
-$(GLSRC)gxiparam.h:$(GLSRC)gsdevice.h
-$(GLSRC)gxiparam.h:$(GLSRC)gxarith.h
-$(GLSRC)gxiparam.h:$(GLSRC)gspenum.h
-$(GLSRC)gxiparam.h:$(GLSRC)gxhttile.h
$(GLSRC)gxiparam.h:$(GLSRC)gsrect.h
$(GLSRC)gxiparam.h:$(GLSRC)gslparam.h
+$(GLSRC)gxiparam.h:$(GLSRC)gsdevice.h
+$(GLSRC)gxiparam.h:$(GLSRC)gscpm.h
+$(GLSRC)gxiparam.h:$(GLSRC)gscspace.h
+$(GLSRC)gxiparam.h:$(GLSRC)gsgstate.h
$(GLSRC)gxiparam.h:$(GLSRC)gsxfont.h
-$(GLSRC)gxiparam.h:$(GLSRC)gsiparam.h
$(GLSRC)gxiparam.h:$(GLSRC)gsdsrc.h
-$(GLSRC)gxiparam.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gxiparam.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gxiparam.h:$(GLSRC)gscpm.h
+$(GLSRC)gxiparam.h:$(GLSRC)gsiparam.h
$(GLSRC)gxiparam.h:$(GLSRC)gxfixed.h
-$(GLSRC)gxiparam.h:$(GLSRC)gsrefct.h
+$(GLSRC)gxiparam.h:$(GLSRC)gscompt.h
+$(GLSRC)gxiparam.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gxiparam.h:$(GLSRC)gspenum.h
+$(GLSRC)gxiparam.h:$(GLSRC)gxhttile.h
$(GLSRC)gxiparam.h:$(GLSRC)gsparam.h
+$(GLSRC)gxiparam.h:$(GLSRC)gsrefct.h
$(GLSRC)gxiparam.h:$(GLSRC)gp.h
-$(GLSRC)gxiparam.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxiparam.h:$(GLSRC)memento.h
+$(GLSRC)gxiparam.h:$(GLSRC)memory_.h
+$(GLSRC)gxiparam.h:$(GLSRC)gsuid.h
$(GLSRC)gxiparam.h:$(GLSRC)gsstruct.h
$(GLSRC)gxiparam.h:$(GLSRC)gxsync.h
+$(GLSRC)gxiparam.h:$(GLSRC)gxbitmap.h
$(GLSRC)gxiparam.h:$(GLSRC)srdline.h
$(GLSRC)gxiparam.h:$(GLSRC)scommon.h
-$(GLSRC)gxiparam.h:$(GLSRC)memento.h
-$(GLSRC)gxiparam.h:$(GLSRC)gscsel.h
$(GLSRC)gxiparam.h:$(GLSRC)gsbitmap.h
-$(GLSRC)gxiparam.h:$(GLSRC)gsstype.h
+$(GLSRC)gxiparam.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxiparam.h:$(GLSRC)gxarith.h
$(GLSRC)gxiparam.h:$(GLSRC)stat_.h
-$(GLSRC)gxiparam.h:$(GLSRC)gxtmap.h
-$(GLSRC)gxiparam.h:$(GLSRC)gsmemory.h
$(GLSRC)gxiparam.h:$(GLSRC)gpsync.h
-$(GLSRC)gxiparam.h:$(GLSRC)memory_.h
+$(GLSRC)gxiparam.h:$(GLSRC)gsstype.h
+$(GLSRC)gxiparam.h:$(GLSRC)gsmemory.h
$(GLSRC)gxiparam.h:$(GLSRC)gpgetenv.h
-$(GLSRC)gxiparam.h:$(GLSRC)gslibctx.h
$(GLSRC)gxiparam.h:$(GLSRC)gscdefs.h
-$(GLSRC)gxiparam.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gxiparam.h:$(GLSRC)stdio_.h
-$(GLSRC)gxiparam.h:$(GLSRC)gscompt.h
+$(GLSRC)gxiparam.h:$(GLSRC)gslibctx.h
$(GLSRC)gxiparam.h:$(GLSRC)gxcindex.h
-$(GLSRC)gxiparam.h:$(GLSRC)gsgstate.h
+$(GLSRC)gxiparam.h:$(GLSRC)stdio_.h
+$(GLSRC)gxiparam.h:$(GLSRC)gsccode.h
$(GLSRC)gxiparam.h:$(GLSRC)stdint_.h
$(GLSRC)gxiparam.h:$(GLSRC)gssprintf.h
-$(GLSRC)gxiparam.h:$(GLSRC)gsccode.h
-$(GLSRC)gxiparam.h:$(GLSRC)std.h
$(GLSRC)gxiparam.h:$(GLSRC)gstypes.h
+$(GLSRC)gxiparam.h:$(GLSRC)std.h
$(GLSRC)gxiparam.h:$(GLSRC)stdpre.h
$(GLSRC)gxiparam.h:$(GLGEN)arch.h
-$(GLSRC)gximask.h:$(GLSRC)gsropt.h
+$(GLSRC)gxiparam.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gximask.h:$(GLSRC)gsdcolor.h
-$(GLSRC)gximask.h:$(GLSRC)gscms.h
-$(GLSRC)gximask.h:$(GLSRC)gscspace.h
+$(GLSRC)gximask.h:$(GLSRC)gsropt.h
$(GLSRC)gximask.h:$(GLSRC)gxpath.h
-$(GLSRC)gximask.h:$(GLSRC)gsdevice.h
-$(GLSRC)gximask.h:$(GLSRC)gxarith.h
-$(GLSRC)gximask.h:$(GLSRC)gspenum.h
-$(GLSRC)gximask.h:$(GLSRC)gxhttile.h
+$(GLSRC)gximask.h:$(GLSRC)gscms.h
$(GLSRC)gximask.h:$(GLSRC)gsrect.h
$(GLSRC)gximask.h:$(GLSRC)gslparam.h
-$(GLSRC)gximask.h:$(GLSRC)gsiparam.h
-$(GLSRC)gximask.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gximask.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gximask.h:$(GLSRC)gsdevice.h
$(GLSRC)gximask.h:$(GLSRC)gscpm.h
+$(GLSRC)gximask.h:$(GLSRC)gscspace.h
+$(GLSRC)gximask.h:$(GLSRC)gsgstate.h
+$(GLSRC)gximask.h:$(GLSRC)gsiparam.h
$(GLSRC)gximask.h:$(GLSRC)gxfixed.h
-$(GLSRC)gximask.h:$(GLSRC)gsrefct.h
+$(GLSRC)gximask.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gximask.h:$(GLSRC)gspenum.h
+$(GLSRC)gximask.h:$(GLSRC)gxhttile.h
$(GLSRC)gximask.h:$(GLSRC)gsparam.h
-$(GLSRC)gximask.h:$(GLSRC)gsccolor.h
+$(GLSRC)gximask.h:$(GLSRC)gsrefct.h
+$(GLSRC)gximask.h:$(GLSRC)memento.h
$(GLSRC)gximask.h:$(GLSRC)gxsync.h
+$(GLSRC)gximask.h:$(GLSRC)gxbitmap.h
$(GLSRC)gximask.h:$(GLSRC)scommon.h
-$(GLSRC)gximask.h:$(GLSRC)memento.h
$(GLSRC)gximask.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gximask.h:$(GLSRC)gsccolor.h
+$(GLSRC)gximask.h:$(GLSRC)gxarith.h
+$(GLSRC)gximask.h:$(GLSRC)gpsync.h
$(GLSRC)gximask.h:$(GLSRC)gsstype.h
$(GLSRC)gximask.h:$(GLSRC)gsmemory.h
-$(GLSRC)gximask.h:$(GLSRC)gpsync.h
$(GLSRC)gximask.h:$(GLSRC)gslibctx.h
-$(GLSRC)gximask.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gximask.h:$(GLSRC)stdio_.h
$(GLSRC)gximask.h:$(GLSRC)gxcindex.h
-$(GLSRC)gximask.h:$(GLSRC)gsgstate.h
+$(GLSRC)gximask.h:$(GLSRC)stdio_.h
$(GLSRC)gximask.h:$(GLSRC)stdint_.h
$(GLSRC)gximask.h:$(GLSRC)gssprintf.h
-$(GLSRC)gximask.h:$(GLSRC)std.h
$(GLSRC)gximask.h:$(GLSRC)gstypes.h
+$(GLSRC)gximask.h:$(GLSRC)std.h
$(GLSRC)gximask.h:$(GLSRC)stdpre.h
$(GLSRC)gximask.h:$(GLGEN)arch.h
+$(GLSRC)gximask.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gscie.h:$(GLSRC)gxctable.h
$(GLSRC)gscie.h:$(GLSRC)gxfrac.h
$(GLSRC)gscie.h:$(GLSRC)gscspace.h
+$(GLSRC)gscie.h:$(GLSRC)gsgstate.h
$(GLSRC)gscie.h:$(GLSRC)gsiparam.h
-$(GLSRC)gscie.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gscie.h:$(GLSRC)gsmatrix.h
$(GLSRC)gscie.h:$(GLSRC)gxfixed.h
+$(GLSRC)gscie.h:$(GLSRC)gsmatrix.h
$(GLSRC)gscie.h:$(GLSRC)gsrefct.h
-$(GLSRC)gscie.h:$(GLSRC)gsccolor.h
-$(GLSRC)gscie.h:$(GLSRC)scommon.h
$(GLSRC)gscie.h:$(GLSRC)memento.h
+$(GLSRC)gscie.h:$(GLSRC)gxbitmap.h
+$(GLSRC)gscie.h:$(GLSRC)scommon.h
$(GLSRC)gscie.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gscie.h:$(GLSRC)gsccolor.h
$(GLSRC)gscie.h:$(GLSRC)gsstype.h
$(GLSRC)gscie.h:$(GLSRC)gsmemory.h
$(GLSRC)gscie.h:$(GLSRC)gslibctx.h
-$(GLSRC)gscie.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gscie.h:$(GLSRC)stdio_.h
-$(GLSRC)gscie.h:$(GLSRC)gsgstate.h
$(GLSRC)gscie.h:$(GLSRC)stdint_.h
$(GLSRC)gscie.h:$(GLSRC)gssprintf.h
-$(GLSRC)gscie.h:$(GLSRC)std.h
$(GLSRC)gscie.h:$(GLSRC)gstypes.h
+$(GLSRC)gscie.h:$(GLSRC)std.h
$(GLSRC)gscie.h:$(GLSRC)stdpre.h
$(GLSRC)gscie.h:$(GLGEN)arch.h
+$(GLSRC)gscie.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gsicc.h:$(GLSRC)gscie.h
$(GLSRC)gsicc.h:$(GLSRC)gxcspace.h
$(GLSRC)gsicc.h:$(GLSRC)gxctable.h
+$(GLSRC)gsicc.h:$(GLSRC)gscsel.h
$(GLSRC)gsicc.h:$(GLSRC)gsdcolor.h
$(GLSRC)gsicc.h:$(GLSRC)gxfrac.h
$(GLSRC)gsicc.h:$(GLSRC)gscms.h
-$(GLSRC)gsicc.h:$(GLSRC)gscspace.h
$(GLSRC)gsicc.h:$(GLSRC)gsdevice.h
-$(GLSRC)gsicc.h:$(GLSRC)gxarith.h
-$(GLSRC)gsicc.h:$(GLSRC)gxhttile.h
+$(GLSRC)gsicc.h:$(GLSRC)gscspace.h
+$(GLSRC)gsicc.h:$(GLSRC)gsgstate.h
$(GLSRC)gsicc.h:$(GLSRC)gsiparam.h
-$(GLSRC)gsicc.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gsicc.h:$(GLSRC)gsmatrix.h
$(GLSRC)gsicc.h:$(GLSRC)gxfixed.h
-$(GLSRC)gsicc.h:$(GLSRC)gsrefct.h
+$(GLSRC)gsicc.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gsicc.h:$(GLSRC)gxhttile.h
$(GLSRC)gsicc.h:$(GLSRC)gsparam.h
-$(GLSRC)gsicc.h:$(GLSRC)gsccolor.h
+$(GLSRC)gsicc.h:$(GLSRC)gsrefct.h
+$(GLSRC)gsicc.h:$(GLSRC)memento.h
$(GLSRC)gsicc.h:$(GLSRC)gxsync.h
+$(GLSRC)gsicc.h:$(GLSRC)gxbitmap.h
$(GLSRC)gsicc.h:$(GLSRC)scommon.h
-$(GLSRC)gsicc.h:$(GLSRC)memento.h
-$(GLSRC)gsicc.h:$(GLSRC)gscsel.h
$(GLSRC)gsicc.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gsicc.h:$(GLSRC)gsccolor.h
+$(GLSRC)gsicc.h:$(GLSRC)gxarith.h
+$(GLSRC)gsicc.h:$(GLSRC)gpsync.h
$(GLSRC)gsicc.h:$(GLSRC)gsstype.h
$(GLSRC)gsicc.h:$(GLSRC)gsmemory.h
-$(GLSRC)gsicc.h:$(GLSRC)gpsync.h
$(GLSRC)gsicc.h:$(GLSRC)gslibctx.h
-$(GLSRC)gsicc.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gsicc.h:$(GLSRC)stdio_.h
$(GLSRC)gsicc.h:$(GLSRC)gxcindex.h
-$(GLSRC)gsicc.h:$(GLSRC)gsgstate.h
+$(GLSRC)gsicc.h:$(GLSRC)stdio_.h
$(GLSRC)gsicc.h:$(GLSRC)stdint_.h
$(GLSRC)gsicc.h:$(GLSRC)gssprintf.h
-$(GLSRC)gsicc.h:$(GLSRC)std.h
$(GLSRC)gsicc.h:$(GLSRC)gstypes.h
+$(GLSRC)gsicc.h:$(GLSRC)std.h
$(GLSRC)gsicc.h:$(GLSRC)stdpre.h
$(GLSRC)gsicc.h:$(GLGEN)arch.h
+$(GLSRC)gsicc.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gscrd.h:$(GLSRC)gscie.h
$(GLSRC)gscrd.h:$(GLSRC)gxctable.h
$(GLSRC)gscrd.h:$(GLSRC)gxfrac.h
$(GLSRC)gscrd.h:$(GLSRC)gscspace.h
+$(GLSRC)gscrd.h:$(GLSRC)gsgstate.h
$(GLSRC)gscrd.h:$(GLSRC)gsiparam.h
-$(GLSRC)gscrd.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gscrd.h:$(GLSRC)gsmatrix.h
$(GLSRC)gscrd.h:$(GLSRC)gxfixed.h
+$(GLSRC)gscrd.h:$(GLSRC)gsmatrix.h
$(GLSRC)gscrd.h:$(GLSRC)gsrefct.h
-$(GLSRC)gscrd.h:$(GLSRC)gsccolor.h
-$(GLSRC)gscrd.h:$(GLSRC)scommon.h
$(GLSRC)gscrd.h:$(GLSRC)memento.h
+$(GLSRC)gscrd.h:$(GLSRC)gxbitmap.h
+$(GLSRC)gscrd.h:$(GLSRC)scommon.h
$(GLSRC)gscrd.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gscrd.h:$(GLSRC)gsccolor.h
$(GLSRC)gscrd.h:$(GLSRC)gsstype.h
$(GLSRC)gscrd.h:$(GLSRC)gsmemory.h
$(GLSRC)gscrd.h:$(GLSRC)gslibctx.h
-$(GLSRC)gscrd.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gscrd.h:$(GLSRC)stdio_.h
-$(GLSRC)gscrd.h:$(GLSRC)gsgstate.h
$(GLSRC)gscrd.h:$(GLSRC)stdint_.h
$(GLSRC)gscrd.h:$(GLSRC)gssprintf.h
-$(GLSRC)gscrd.h:$(GLSRC)std.h
$(GLSRC)gscrd.h:$(GLSRC)gstypes.h
+$(GLSRC)gscrd.h:$(GLSRC)std.h
$(GLSRC)gscrd.h:$(GLSRC)stdpre.h
$(GLSRC)gscrd.h:$(GLGEN)arch.h
+$(GLSRC)gscrd.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gscrdp.h:$(GLSRC)gscie.h
$(GLSRC)gscrdp.h:$(GLSRC)gxctable.h
$(GLSRC)gscrdp.h:$(GLSRC)gxfrac.h
-$(GLSRC)gscrdp.h:$(GLSRC)gscspace.h
$(GLSRC)gscrdp.h:$(GLSRC)gsdevice.h
+$(GLSRC)gscrdp.h:$(GLSRC)gscspace.h
+$(GLSRC)gscrdp.h:$(GLSRC)gsgstate.h
$(GLSRC)gscrdp.h:$(GLSRC)gsiparam.h
-$(GLSRC)gscrdp.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gscrdp.h:$(GLSRC)gsmatrix.h
$(GLSRC)gscrdp.h:$(GLSRC)gxfixed.h
-$(GLSRC)gscrdp.h:$(GLSRC)gsrefct.h
+$(GLSRC)gscrdp.h:$(GLSRC)gsmatrix.h
$(GLSRC)gscrdp.h:$(GLSRC)gsparam.h
-$(GLSRC)gscrdp.h:$(GLSRC)gsccolor.h
-$(GLSRC)gscrdp.h:$(GLSRC)scommon.h
+$(GLSRC)gscrdp.h:$(GLSRC)gsrefct.h
$(GLSRC)gscrdp.h:$(GLSRC)memento.h
+$(GLSRC)gscrdp.h:$(GLSRC)gxbitmap.h
+$(GLSRC)gscrdp.h:$(GLSRC)scommon.h
$(GLSRC)gscrdp.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gscrdp.h:$(GLSRC)gsccolor.h
$(GLSRC)gscrdp.h:$(GLSRC)gsstype.h
$(GLSRC)gscrdp.h:$(GLSRC)gsmemory.h
$(GLSRC)gscrdp.h:$(GLSRC)gslibctx.h
-$(GLSRC)gscrdp.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gscrdp.h:$(GLSRC)stdio_.h
-$(GLSRC)gscrdp.h:$(GLSRC)gsgstate.h
$(GLSRC)gscrdp.h:$(GLSRC)stdint_.h
$(GLSRC)gscrdp.h:$(GLSRC)gssprintf.h
-$(GLSRC)gscrdp.h:$(GLSRC)std.h
$(GLSRC)gscrdp.h:$(GLSRC)gstypes.h
+$(GLSRC)gscrdp.h:$(GLSRC)std.h
$(GLSRC)gscrdp.h:$(GLSRC)stdpre.h
$(GLSRC)gscrdp.h:$(GLGEN)arch.h
+$(GLSRC)gscrdp.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gscdevn.h:$(GLSRC)gsfunc.h
$(GLSRC)gscdevn.h:$(GLSRC)gscspace.h
-$(GLSRC)gscdevn.h:$(GLSRC)gsiparam.h
+$(GLSRC)gscdevn.h:$(GLSRC)gsgstate.h
$(GLSRC)gscdevn.h:$(GLSRC)gsdsrc.h
-$(GLSRC)gscdevn.h:$(GLSRC)gxbitmap.h
+$(GLSRC)gscdevn.h:$(GLSRC)gsiparam.h
$(GLSRC)gscdevn.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gscdevn.h:$(GLSRC)gsrefct.h
$(GLSRC)gscdevn.h:$(GLSRC)gsparam.h
-$(GLSRC)gscdevn.h:$(GLSRC)gsccolor.h
+$(GLSRC)gscdevn.h:$(GLSRC)gsrefct.h
+$(GLSRC)gscdevn.h:$(GLSRC)memento.h
$(GLSRC)gscdevn.h:$(GLSRC)gsstruct.h
+$(GLSRC)gscdevn.h:$(GLSRC)gxbitmap.h
$(GLSRC)gscdevn.h:$(GLSRC)scommon.h
-$(GLSRC)gscdevn.h:$(GLSRC)memento.h
$(GLSRC)gscdevn.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gscdevn.h:$(GLSRC)gsccolor.h
$(GLSRC)gscdevn.h:$(GLSRC)gsstype.h
$(GLSRC)gscdevn.h:$(GLSRC)gsmemory.h
$(GLSRC)gscdevn.h:$(GLSRC)gslibctx.h
-$(GLSRC)gscdevn.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gscdevn.h:$(GLSRC)stdio_.h
-$(GLSRC)gscdevn.h:$(GLSRC)gsgstate.h
$(GLSRC)gscdevn.h:$(GLSRC)stdint_.h
$(GLSRC)gscdevn.h:$(GLSRC)gssprintf.h
-$(GLSRC)gscdevn.h:$(GLSRC)std.h
$(GLSRC)gscdevn.h:$(GLSRC)gstypes.h
+$(GLSRC)gscdevn.h:$(GLSRC)std.h
$(GLSRC)gscdevn.h:$(GLSRC)stdpre.h
$(GLSRC)gscdevn.h:$(GLGEN)arch.h
+$(GLSRC)gscdevn.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gscindex.h:$(GLSRC)gxfrac.h
$(GLSRC)gscindex.h:$(GLSRC)gscspace.h
+$(GLSRC)gscindex.h:$(GLSRC)gsgstate.h
$(GLSRC)gscindex.h:$(GLSRC)gsiparam.h
-$(GLSRC)gscindex.h:$(GLSRC)gxbitmap.h
$(GLSRC)gscindex.h:$(GLSRC)gsmatrix.h
$(GLSRC)gscindex.h:$(GLSRC)gsrefct.h
-$(GLSRC)gscindex.h:$(GLSRC)gsccolor.h
-$(GLSRC)gscindex.h:$(GLSRC)scommon.h
$(GLSRC)gscindex.h:$(GLSRC)memento.h
+$(GLSRC)gscindex.h:$(GLSRC)gxbitmap.h
+$(GLSRC)gscindex.h:$(GLSRC)scommon.h
$(GLSRC)gscindex.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gscindex.h:$(GLSRC)gsccolor.h
$(GLSRC)gscindex.h:$(GLSRC)gsstype.h
$(GLSRC)gscindex.h:$(GLSRC)gsmemory.h
$(GLSRC)gscindex.h:$(GLSRC)gslibctx.h
-$(GLSRC)gscindex.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gscindex.h:$(GLSRC)stdio_.h
-$(GLSRC)gscindex.h:$(GLSRC)gsgstate.h
$(GLSRC)gscindex.h:$(GLSRC)stdint_.h
$(GLSRC)gscindex.h:$(GLSRC)gssprintf.h
-$(GLSRC)gscindex.h:$(GLSRC)std.h
$(GLSRC)gscindex.h:$(GLSRC)gstypes.h
+$(GLSRC)gscindex.h:$(GLSRC)std.h
$(GLSRC)gscindex.h:$(GLSRC)stdpre.h
$(GLSRC)gscindex.h:$(GLGEN)arch.h
+$(GLSRC)gscindex.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gscolor2.h:$(GLSRC)gscindex.h
$(GLSRC)gscolor2.h:$(GLSRC)gsptype1.h
$(GLSRC)gscolor2.h:$(GLSRC)gscie.h
$(GLSRC)gscolor2.h:$(GLSRC)gspcolor.h
$(GLSRC)gscolor2.h:$(GLSRC)gxctable.h
-$(GLSRC)gscolor2.h:$(GLSRC)gsuid.h
$(GLSRC)gscolor2.h:$(GLSRC)gsdcolor.h
$(GLSRC)gscolor2.h:$(GLSRC)gxfrac.h
$(GLSRC)gscolor2.h:$(GLSRC)gscms.h
-$(GLSRC)gscolor2.h:$(GLSRC)gscspace.h
$(GLSRC)gscolor2.h:$(GLSRC)gsdevice.h
-$(GLSRC)gscolor2.h:$(GLSRC)gxarith.h
-$(GLSRC)gscolor2.h:$(GLSRC)gxhttile.h
+$(GLSRC)gscolor2.h:$(GLSRC)gscspace.h
+$(GLSRC)gscolor2.h:$(GLSRC)gsgstate.h
$(GLSRC)gscolor2.h:$(GLSRC)gsiparam.h
-$(GLSRC)gscolor2.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gscolor2.h:$(GLSRC)gsmatrix.h
$(GLSRC)gscolor2.h:$(GLSRC)gxfixed.h
-$(GLSRC)gscolor2.h:$(GLSRC)gsrefct.h
+$(GLSRC)gscolor2.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gscolor2.h:$(GLSRC)gxhttile.h
$(GLSRC)gscolor2.h:$(GLSRC)gsparam.h
-$(GLSRC)gscolor2.h:$(GLSRC)gsccolor.h
+$(GLSRC)gscolor2.h:$(GLSRC)gsrefct.h
+$(GLSRC)gscolor2.h:$(GLSRC)memento.h
+$(GLSRC)gscolor2.h:$(GLSRC)gsuid.h
$(GLSRC)gscolor2.h:$(GLSRC)gxsync.h
+$(GLSRC)gscolor2.h:$(GLSRC)gxbitmap.h
$(GLSRC)gscolor2.h:$(GLSRC)scommon.h
-$(GLSRC)gscolor2.h:$(GLSRC)memento.h
$(GLSRC)gscolor2.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gscolor2.h:$(GLSRC)gsccolor.h
+$(GLSRC)gscolor2.h:$(GLSRC)gxarith.h
+$(GLSRC)gscolor2.h:$(GLSRC)gpsync.h
$(GLSRC)gscolor2.h:$(GLSRC)gsstype.h
$(GLSRC)gscolor2.h:$(GLSRC)gsmemory.h
-$(GLSRC)gscolor2.h:$(GLSRC)gpsync.h
$(GLSRC)gscolor2.h:$(GLSRC)gslibctx.h
-$(GLSRC)gscolor2.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gscolor2.h:$(GLSRC)stdio_.h
$(GLSRC)gscolor2.h:$(GLSRC)gxcindex.h
-$(GLSRC)gscolor2.h:$(GLSRC)gsgstate.h
+$(GLSRC)gscolor2.h:$(GLSRC)stdio_.h
$(GLSRC)gscolor2.h:$(GLSRC)stdint_.h
$(GLSRC)gscolor2.h:$(GLSRC)gssprintf.h
-$(GLSRC)gscolor2.h:$(GLSRC)std.h
$(GLSRC)gscolor2.h:$(GLSRC)gstypes.h
+$(GLSRC)gscolor2.h:$(GLSRC)std.h
$(GLSRC)gscolor2.h:$(GLSRC)stdpre.h
$(GLSRC)gscolor2.h:$(GLGEN)arch.h
+$(GLSRC)gscolor2.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gscsepr.h:$(GLSRC)gsfunc.h
$(GLSRC)gscsepr.h:$(GLSRC)gscspace.h
-$(GLSRC)gscsepr.h:$(GLSRC)gsiparam.h
+$(GLSRC)gscsepr.h:$(GLSRC)gsgstate.h
$(GLSRC)gscsepr.h:$(GLSRC)gsdsrc.h
-$(GLSRC)gscsepr.h:$(GLSRC)gxbitmap.h
+$(GLSRC)gscsepr.h:$(GLSRC)gsiparam.h
$(GLSRC)gscsepr.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gscsepr.h:$(GLSRC)gsrefct.h
$(GLSRC)gscsepr.h:$(GLSRC)gsparam.h
-$(GLSRC)gscsepr.h:$(GLSRC)gsccolor.h
+$(GLSRC)gscsepr.h:$(GLSRC)gsrefct.h
+$(GLSRC)gscsepr.h:$(GLSRC)memento.h
$(GLSRC)gscsepr.h:$(GLSRC)gsstruct.h
+$(GLSRC)gscsepr.h:$(GLSRC)gxbitmap.h
$(GLSRC)gscsepr.h:$(GLSRC)scommon.h
-$(GLSRC)gscsepr.h:$(GLSRC)memento.h
$(GLSRC)gscsepr.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gscsepr.h:$(GLSRC)gsccolor.h
$(GLSRC)gscsepr.h:$(GLSRC)gsstype.h
$(GLSRC)gscsepr.h:$(GLSRC)gsmemory.h
$(GLSRC)gscsepr.h:$(GLSRC)gslibctx.h
-$(GLSRC)gscsepr.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gscsepr.h:$(GLSRC)stdio_.h
-$(GLSRC)gscsepr.h:$(GLSRC)gsgstate.h
$(GLSRC)gscsepr.h:$(GLSRC)stdint_.h
$(GLSRC)gscsepr.h:$(GLSRC)gssprintf.h
-$(GLSRC)gscsepr.h:$(GLSRC)std.h
$(GLSRC)gscsepr.h:$(GLSRC)gstypes.h
+$(GLSRC)gscsepr.h:$(GLSRC)std.h
$(GLSRC)gscsepr.h:$(GLSRC)stdpre.h
$(GLSRC)gscsepr.h:$(GLGEN)arch.h
+$(GLSRC)gscsepr.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxdcconv.h:$(GLSRC)gxfrac.h
$(GLSRC)gxdcconv.h:$(GLSRC)gsgstate.h
$(GLSRC)gxdcconv.h:$(GLSRC)std.h
$(GLSRC)gxdcconv.h:$(GLSRC)stdpre.h
$(GLSRC)gxdcconv.h:$(GLGEN)arch.h
$(GLSRC)gxfmap.h:$(GLSRC)gxfrac.h
+$(GLSRC)gxfmap.h:$(GLSRC)gxtmap.h
$(GLSRC)gxfmap.h:$(GLSRC)gsrefct.h
$(GLSRC)gxfmap.h:$(GLSRC)memento.h
$(GLSRC)gxfmap.h:$(GLSRC)gsstype.h
-$(GLSRC)gxfmap.h:$(GLSRC)gxtmap.h
$(GLSRC)gxfmap.h:$(GLSRC)gsmemory.h
$(GLSRC)gxfmap.h:$(GLSRC)gslibctx.h
-$(GLSRC)gxfmap.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxfmap.h:$(GLSRC)stdio_.h
$(GLSRC)gxfmap.h:$(GLSRC)gssprintf.h
-$(GLSRC)gxfmap.h:$(GLSRC)std.h
$(GLSRC)gxfmap.h:$(GLSRC)gstypes.h
+$(GLSRC)gxfmap.h:$(GLSRC)std.h
$(GLSRC)gxfmap.h:$(GLSRC)stdpre.h
$(GLSRC)gxfmap.h:$(GLGEN)arch.h
+$(GLSRC)gxfmap.h:$(GLSRC)gs_dll_call.h
+$(GLSRC)gxcmap.h:$(GLSRC)gxfmap.h
+$(GLSRC)gxcmap.h:$(GLSRC)gscsel.h
$(GLSRC)gxcmap.h:$(GLSRC)gsdcolor.h
$(GLSRC)gxcmap.h:$(GLSRC)gxcvalue.h
-$(GLSRC)gxcmap.h:$(GLSRC)gxfmap.h
$(GLSRC)gxcmap.h:$(GLSRC)gxfrac.h
+$(GLSRC)gxcmap.h:$(GLSRC)gxtmap.h
$(GLSRC)gxcmap.h:$(GLSRC)gscms.h
-$(GLSRC)gxcmap.h:$(GLSRC)gscspace.h
$(GLSRC)gxcmap.h:$(GLSRC)gsdevice.h
-$(GLSRC)gxcmap.h:$(GLSRC)gxarith.h
-$(GLSRC)gxcmap.h:$(GLSRC)gxhttile.h
+$(GLSRC)gxcmap.h:$(GLSRC)gscspace.h
+$(GLSRC)gxcmap.h:$(GLSRC)gsgstate.h
$(GLSRC)gxcmap.h:$(GLSRC)gsiparam.h
-$(GLSRC)gxcmap.h:$(GLSRC)gxbitmap.h
$(GLSRC)gxcmap.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gxcmap.h:$(GLSRC)gsrefct.h
+$(GLSRC)gxcmap.h:$(GLSRC)gxhttile.h
$(GLSRC)gxcmap.h:$(GLSRC)gsparam.h
-$(GLSRC)gxcmap.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxcmap.h:$(GLSRC)gsrefct.h
+$(GLSRC)gxcmap.h:$(GLSRC)memento.h
$(GLSRC)gxcmap.h:$(GLSRC)gxsync.h
+$(GLSRC)gxcmap.h:$(GLSRC)gxbitmap.h
$(GLSRC)gxcmap.h:$(GLSRC)scommon.h
-$(GLSRC)gxcmap.h:$(GLSRC)memento.h
-$(GLSRC)gxcmap.h:$(GLSRC)gscsel.h
$(GLSRC)gxcmap.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gxcmap.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxcmap.h:$(GLSRC)gxarith.h
+$(GLSRC)gxcmap.h:$(GLSRC)gpsync.h
$(GLSRC)gxcmap.h:$(GLSRC)gsstype.h
-$(GLSRC)gxcmap.h:$(GLSRC)gxtmap.h
$(GLSRC)gxcmap.h:$(GLSRC)gsmemory.h
-$(GLSRC)gxcmap.h:$(GLSRC)gpsync.h
$(GLSRC)gxcmap.h:$(GLSRC)gslibctx.h
-$(GLSRC)gxcmap.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gxcmap.h:$(GLSRC)stdio_.h
$(GLSRC)gxcmap.h:$(GLSRC)gxcindex.h
-$(GLSRC)gxcmap.h:$(GLSRC)gsgstate.h
+$(GLSRC)gxcmap.h:$(GLSRC)stdio_.h
$(GLSRC)gxcmap.h:$(GLSRC)stdint_.h
$(GLSRC)gxcmap.h:$(GLSRC)gssprintf.h
-$(GLSRC)gxcmap.h:$(GLSRC)std.h
$(GLSRC)gxcmap.h:$(GLSRC)gstypes.h
+$(GLSRC)gxcmap.h:$(GLSRC)std.h
$(GLSRC)gxcmap.h:$(GLSRC)stdpre.h
$(GLSRC)gxcmap.h:$(GLGEN)arch.h
-$(GLSRC)gxgstate.h:$(GLSRC)gxline.h
+$(GLSRC)gxcmap.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxgstate.h:$(GLSRC)gstrans.h
+$(GLSRC)gxgstate.h:$(GLSRC)gdevp14.h
+$(GLSRC)gxgstate.h:$(GLSRC)gxline.h
$(GLSRC)gxgstate.h:$(GLSRC)gsht1.h
+$(GLSRC)gxgstate.h:$(GLSRC)gxcomp.h
$(GLSRC)gxgstate.h:$(GLSRC)math_.h
-$(GLSRC)gxgstate.h:$(GLSRC)gdevp14.h
$(GLSRC)gxgstate.h:$(GLSRC)gxcolor2.h
$(GLSRC)gxgstate.h:$(GLSRC)gxpcolor.h
+$(GLSRC)gxgstate.h:$(GLSRC)gxdevmem.h
$(GLSRC)gxgstate.h:$(GLSRC)gdevdevn.h
-$(GLSRC)gxgstate.h:$(GLSRC)gsequivc.h
-$(GLSRC)gxgstate.h:$(GLSRC)gxblend.h
$(GLSRC)gxgstate.h:$(GLSRC)gxclipsr.h
-$(GLSRC)gxgstate.h:$(GLSRC)gxcomp.h
$(GLSRC)gxgstate.h:$(GLSRC)gxdcolor.h
-$(GLSRC)gxgstate.h:$(GLSRC)gxmatrix.h
-$(GLSRC)gxgstate.h:$(GLSRC)gxbitfmt.h
+$(GLSRC)gxgstate.h:$(GLSRC)gxblend.h
$(GLSRC)gxgstate.h:$(GLSRC)gscolor2.h
-$(GLSRC)gxgstate.h:$(GLSRC)gscindex.h
+$(GLSRC)gxgstate.h:$(GLSRC)gxmatrix.h
$(GLSRC)gxgstate.h:$(GLSRC)gxdevice.h
-$(GLSRC)gxgstate.h:$(GLSRC)gsht.h
$(GLSRC)gxgstate.h:$(GLSRC)gxcpath.h
-$(GLSRC)gxgstate.h:$(GLSRC)gxdevmem.h
+$(GLSRC)gxgstate.h:$(GLSRC)gsht.h
+$(GLSRC)gxgstate.h:$(GLSRC)gsequivc.h
$(GLSRC)gxgstate.h:$(GLSRC)gxdevcli.h
$(GLSRC)gxgstate.h:$(GLSRC)gxpcache.h
+$(GLSRC)gxgstate.h:$(GLSRC)gscindex.h
+$(GLSRC)gxgstate.h:$(GLSRC)gxcmap.h
$(GLSRC)gxgstate.h:$(GLSRC)gsptype1.h
-$(GLSRC)gxgstate.h:$(GLSRC)gxtext.h
$(GLSRC)gxgstate.h:$(GLSRC)gscie.h
+$(GLSRC)gxgstate.h:$(GLSRC)gxtext.h
$(GLSRC)gxgstate.h:$(GLSRC)gstext.h
+$(GLSRC)gxgstate.h:$(GLSRC)gxstate.h
$(GLSRC)gxgstate.h:$(GLSRC)gsnamecl.h
$(GLSRC)gxgstate.h:$(GLSRC)gstparam.h
-$(GLSRC)gxgstate.h:$(GLSRC)gxstate.h
$(GLSRC)gxgstate.h:$(GLSRC)gspcolor.h
-$(GLSRC)gxgstate.h:$(GLSRC)gxfcache.h
-$(GLSRC)gxgstate.h:$(GLSRC)gxcspace.h
-$(GLSRC)gxgstate.h:$(GLSRC)gsropt.h
-$(GLSRC)gxgstate.h:$(GLSRC)gsfunc.h
+$(GLSRC)gxgstate.h:$(GLSRC)gxfmap.h
$(GLSRC)gxgstate.h:$(GLSRC)gsmalloc.h
-$(GLSRC)gxgstate.h:$(GLSRC)gxrplane.h
+$(GLSRC)gxgstate.h:$(GLSRC)gsfunc.h
+$(GLSRC)gxgstate.h:$(GLSRC)gxcspace.h
$(GLSRC)gxgstate.h:$(GLSRC)gxctable.h
-$(GLSRC)gxgstate.h:$(GLSRC)gsuid.h
-$(GLSRC)gxgstate.h:$(GLSRC)gxcmap.h
+$(GLSRC)gxgstate.h:$(GLSRC)gxrplane.h
+$(GLSRC)gxgstate.h:$(GLSRC)gscsel.h
+$(GLSRC)gxgstate.h:$(GLSRC)gxfcache.h
+$(GLSRC)gxgstate.h:$(GLSRC)gsfont.h
$(GLSRC)gxgstate.h:$(GLSRC)gsimage.h
$(GLSRC)gxgstate.h:$(GLSRC)gsdcolor.h
-$(GLSRC)gxgstate.h:$(GLSRC)gxdda.h
$(GLSRC)gxgstate.h:$(GLSRC)gxcvalue.h
-$(GLSRC)gxgstate.h:$(GLSRC)gsfont.h
-$(GLSRC)gxgstate.h:$(GLSRC)gxfmap.h
+$(GLSRC)gxgstate.h:$(GLSRC)gxbcache.h
+$(GLSRC)gxgstate.h:$(GLSRC)gsropt.h
+$(GLSRC)gxgstate.h:$(GLSRC)gxdda.h
+$(GLSRC)gxgstate.h:$(GLSRC)gxpath.h
$(GLSRC)gxgstate.h:$(GLSRC)gxiclass.h
-$(GLSRC)gxgstate.h:$(GLSRC)gxftype.h
$(GLSRC)gxgstate.h:$(GLSRC)gxfrac.h
+$(GLSRC)gxgstate.h:$(GLSRC)gxtmap.h
+$(GLSRC)gxgstate.h:$(GLSRC)gxftype.h
$(GLSRC)gxgstate.h:$(GLSRC)gscms.h
-$(GLSRC)gxgstate.h:$(GLSRC)gscspace.h
-$(GLSRC)gxgstate.h:$(GLSRC)gxpath.h
-$(GLSRC)gxgstate.h:$(GLSRC)gxbcache.h
-$(GLSRC)gxgstate.h:$(GLSRC)gsdevice.h
-$(GLSRC)gxgstate.h:$(GLSRC)gxarith.h
-$(GLSRC)gxgstate.h:$(GLSRC)gxstdio.h
-$(GLSRC)gxgstate.h:$(GLSRC)gspenum.h
-$(GLSRC)gxgstate.h:$(GLSRC)gxhttile.h
$(GLSRC)gxgstate.h:$(GLSRC)gsrect.h
$(GLSRC)gxgstate.h:$(GLSRC)gslparam.h
+$(GLSRC)gxgstate.h:$(GLSRC)gsdevice.h
+$(GLSRC)gxgstate.h:$(GLSRC)gxbitfmt.h
+$(GLSRC)gxgstate.h:$(GLSRC)gscpm.h
+$(GLSRC)gxgstate.h:$(GLSRC)gscspace.h
+$(GLSRC)gxgstate.h:$(GLSRC)gsgstate.h
+$(GLSRC)gxgstate.h:$(GLSRC)gxstdio.h
$(GLSRC)gxgstate.h:$(GLSRC)gsxfont.h
-$(GLSRC)gxgstate.h:$(GLSRC)gsiparam.h
$(GLSRC)gxgstate.h:$(GLSRC)gsdsrc.h
$(GLSRC)gxgstate.h:$(GLSRC)gsio.h
-$(GLSRC)gxgstate.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gxgstate.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gxgstate.h:$(GLSRC)gscpm.h
+$(GLSRC)gxgstate.h:$(GLSRC)gsiparam.h
$(GLSRC)gxgstate.h:$(GLSRC)gxfixed.h
-$(GLSRC)gxgstate.h:$(GLSRC)gsrefct.h
+$(GLSRC)gxgstate.h:$(GLSRC)gscompt.h
+$(GLSRC)gxgstate.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gxgstate.h:$(GLSRC)gspenum.h
+$(GLSRC)gxgstate.h:$(GLSRC)gxhttile.h
$(GLSRC)gxgstate.h:$(GLSRC)gsparam.h
+$(GLSRC)gxgstate.h:$(GLSRC)gsrefct.h
$(GLSRC)gxgstate.h:$(GLSRC)gp.h
-$(GLSRC)gxgstate.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxgstate.h:$(GLSRC)memento.h
+$(GLSRC)gxgstate.h:$(GLSRC)memory_.h
+$(GLSRC)gxgstate.h:$(GLSRC)gsuid.h
$(GLSRC)gxgstate.h:$(GLSRC)gsstruct.h
$(GLSRC)gxgstate.h:$(GLSRC)gxsync.h
+$(GLSRC)gxgstate.h:$(GLSRC)gxbitmap.h
+$(GLSRC)gxgstate.h:$(GLSRC)vmsmath.h
$(GLSRC)gxgstate.h:$(GLSRC)srdline.h
$(GLSRC)gxgstate.h:$(GLSRC)scommon.h
-$(GLSRC)gxgstate.h:$(GLSRC)memento.h
-$(GLSRC)gxgstate.h:$(GLSRC)vmsmath.h
-$(GLSRC)gxgstate.h:$(GLSRC)gscsel.h
-$(GLSRC)gxgstate.h:$(GLSRC)gsbitmap.h
$(GLSRC)gxgstate.h:$(GLSRC)gsfname.h
-$(GLSRC)gxgstate.h:$(GLSRC)gsstype.h
+$(GLSRC)gxgstate.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gxgstate.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxgstate.h:$(GLSRC)gxarith.h
$(GLSRC)gxgstate.h:$(GLSRC)stat_.h
-$(GLSRC)gxgstate.h:$(GLSRC)gxtmap.h
-$(GLSRC)gxgstate.h:$(GLSRC)gsmemory.h
$(GLSRC)gxgstate.h:$(GLSRC)gpsync.h
-$(GLSRC)gxgstate.h:$(GLSRC)memory_.h
+$(GLSRC)gxgstate.h:$(GLSRC)gsstype.h
+$(GLSRC)gxgstate.h:$(GLSRC)gsmemory.h
$(GLSRC)gxgstate.h:$(GLSRC)gpgetenv.h
-$(GLSRC)gxgstate.h:$(GLSRC)gslibctx.h
$(GLSRC)gxgstate.h:$(GLSRC)gscdefs.h
-$(GLSRC)gxgstate.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gxgstate.h:$(GLSRC)stdio_.h
-$(GLSRC)gxgstate.h:$(GLSRC)gscompt.h
+$(GLSRC)gxgstate.h:$(GLSRC)gslibctx.h
$(GLSRC)gxgstate.h:$(GLSRC)gxcindex.h
-$(GLSRC)gxgstate.h:$(GLSRC)gsgstate.h
+$(GLSRC)gxgstate.h:$(GLSRC)stdio_.h
+$(GLSRC)gxgstate.h:$(GLSRC)gsccode.h
$(GLSRC)gxgstate.h:$(GLSRC)stdint_.h
$(GLSRC)gxgstate.h:$(GLSRC)gssprintf.h
-$(GLSRC)gxgstate.h:$(GLSRC)gsccode.h
-$(GLSRC)gxgstate.h:$(GLSRC)std.h
$(GLSRC)gxgstate.h:$(GLSRC)gstypes.h
+$(GLSRC)gxgstate.h:$(GLSRC)std.h
$(GLSRC)gxgstate.h:$(GLSRC)stdpre.h
$(GLSRC)gxgstate.h:$(GLGEN)arch.h
+$(GLSRC)gxgstate.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxcolor2.h:$(GLSRC)gscolor2.h
-$(GLSRC)gxcolor2.h:$(GLSRC)gscindex.h
$(GLSRC)gxcolor2.h:$(GLSRC)gxdevcli.h
+$(GLSRC)gxcolor2.h:$(GLSRC)gscindex.h
+$(GLSRC)gxcolor2.h:$(GLSRC)gxcmap.h
$(GLSRC)gxcolor2.h:$(GLSRC)gsptype1.h
-$(GLSRC)gxcolor2.h:$(GLSRC)gxtext.h
$(GLSRC)gxcolor2.h:$(GLSRC)gscie.h
+$(GLSRC)gxcolor2.h:$(GLSRC)gxtext.h
$(GLSRC)gxcolor2.h:$(GLSRC)gstext.h
$(GLSRC)gxcolor2.h:$(GLSRC)gsnamecl.h
$(GLSRC)gxcolor2.h:$(GLSRC)gstparam.h
$(GLSRC)gxcolor2.h:$(GLSRC)gspcolor.h
-$(GLSRC)gxcolor2.h:$(GLSRC)gxfcache.h
-$(GLSRC)gxcolor2.h:$(GLSRC)gxcspace.h
-$(GLSRC)gxcolor2.h:$(GLSRC)gsropt.h
+$(GLSRC)gxcolor2.h:$(GLSRC)gxfmap.h
$(GLSRC)gxcolor2.h:$(GLSRC)gsfunc.h
-$(GLSRC)gxcolor2.h:$(GLSRC)gxrplane.h
+$(GLSRC)gxcolor2.h:$(GLSRC)gxcspace.h
$(GLSRC)gxcolor2.h:$(GLSRC)gxctable.h
-$(GLSRC)gxcolor2.h:$(GLSRC)gsuid.h
-$(GLSRC)gxcolor2.h:$(GLSRC)gxcmap.h
+$(GLSRC)gxcolor2.h:$(GLSRC)gxrplane.h
+$(GLSRC)gxcolor2.h:$(GLSRC)gscsel.h
+$(GLSRC)gxcolor2.h:$(GLSRC)gxfcache.h
+$(GLSRC)gxcolor2.h:$(GLSRC)gsfont.h
$(GLSRC)gxcolor2.h:$(GLSRC)gsimage.h
$(GLSRC)gxcolor2.h:$(GLSRC)gsdcolor.h
-$(GLSRC)gxcolor2.h:$(GLSRC)gxdda.h
$(GLSRC)gxcolor2.h:$(GLSRC)gxcvalue.h
-$(GLSRC)gxcolor2.h:$(GLSRC)gsfont.h
-$(GLSRC)gxcolor2.h:$(GLSRC)gxfmap.h
-$(GLSRC)gxcolor2.h:$(GLSRC)gxftype.h
+$(GLSRC)gxcolor2.h:$(GLSRC)gxbcache.h
+$(GLSRC)gxcolor2.h:$(GLSRC)gsropt.h
+$(GLSRC)gxcolor2.h:$(GLSRC)gxdda.h
+$(GLSRC)gxcolor2.h:$(GLSRC)gxpath.h
$(GLSRC)gxcolor2.h:$(GLSRC)gxfrac.h
+$(GLSRC)gxcolor2.h:$(GLSRC)gxtmap.h
+$(GLSRC)gxcolor2.h:$(GLSRC)gxftype.h
$(GLSRC)gxcolor2.h:$(GLSRC)gscms.h
-$(GLSRC)gxcolor2.h:$(GLSRC)gscspace.h
-$(GLSRC)gxcolor2.h:$(GLSRC)gxpath.h
-$(GLSRC)gxcolor2.h:$(GLSRC)gxbcache.h
-$(GLSRC)gxcolor2.h:$(GLSRC)gsdevice.h
-$(GLSRC)gxcolor2.h:$(GLSRC)gxarith.h
-$(GLSRC)gxcolor2.h:$(GLSRC)gspenum.h
-$(GLSRC)gxcolor2.h:$(GLSRC)gxhttile.h
$(GLSRC)gxcolor2.h:$(GLSRC)gsrect.h
$(GLSRC)gxcolor2.h:$(GLSRC)gslparam.h
+$(GLSRC)gxcolor2.h:$(GLSRC)gsdevice.h
+$(GLSRC)gxcolor2.h:$(GLSRC)gscpm.h
+$(GLSRC)gxcolor2.h:$(GLSRC)gscspace.h
+$(GLSRC)gxcolor2.h:$(GLSRC)gsgstate.h
$(GLSRC)gxcolor2.h:$(GLSRC)gsxfont.h
-$(GLSRC)gxcolor2.h:$(GLSRC)gsiparam.h
$(GLSRC)gxcolor2.h:$(GLSRC)gsdsrc.h
-$(GLSRC)gxcolor2.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gxcolor2.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gxcolor2.h:$(GLSRC)gscpm.h
+$(GLSRC)gxcolor2.h:$(GLSRC)gsiparam.h
$(GLSRC)gxcolor2.h:$(GLSRC)gxfixed.h
-$(GLSRC)gxcolor2.h:$(GLSRC)gsrefct.h
+$(GLSRC)gxcolor2.h:$(GLSRC)gscompt.h
+$(GLSRC)gxcolor2.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gxcolor2.h:$(GLSRC)gspenum.h
+$(GLSRC)gxcolor2.h:$(GLSRC)gxhttile.h
$(GLSRC)gxcolor2.h:$(GLSRC)gsparam.h
+$(GLSRC)gxcolor2.h:$(GLSRC)gsrefct.h
$(GLSRC)gxcolor2.h:$(GLSRC)gp.h
-$(GLSRC)gxcolor2.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxcolor2.h:$(GLSRC)memento.h
+$(GLSRC)gxcolor2.h:$(GLSRC)memory_.h
+$(GLSRC)gxcolor2.h:$(GLSRC)gsuid.h
$(GLSRC)gxcolor2.h:$(GLSRC)gsstruct.h
$(GLSRC)gxcolor2.h:$(GLSRC)gxsync.h
+$(GLSRC)gxcolor2.h:$(GLSRC)gxbitmap.h
$(GLSRC)gxcolor2.h:$(GLSRC)srdline.h
$(GLSRC)gxcolor2.h:$(GLSRC)scommon.h
-$(GLSRC)gxcolor2.h:$(GLSRC)memento.h
-$(GLSRC)gxcolor2.h:$(GLSRC)gscsel.h
$(GLSRC)gxcolor2.h:$(GLSRC)gsbitmap.h
-$(GLSRC)gxcolor2.h:$(GLSRC)gsstype.h
+$(GLSRC)gxcolor2.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxcolor2.h:$(GLSRC)gxarith.h
$(GLSRC)gxcolor2.h:$(GLSRC)stat_.h
-$(GLSRC)gxcolor2.h:$(GLSRC)gxtmap.h
-$(GLSRC)gxcolor2.h:$(GLSRC)gsmemory.h
$(GLSRC)gxcolor2.h:$(GLSRC)gpsync.h
-$(GLSRC)gxcolor2.h:$(GLSRC)memory_.h
+$(GLSRC)gxcolor2.h:$(GLSRC)gsstype.h
+$(GLSRC)gxcolor2.h:$(GLSRC)gsmemory.h
$(GLSRC)gxcolor2.h:$(GLSRC)gpgetenv.h
-$(GLSRC)gxcolor2.h:$(GLSRC)gslibctx.h
$(GLSRC)gxcolor2.h:$(GLSRC)gscdefs.h
-$(GLSRC)gxcolor2.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gxcolor2.h:$(GLSRC)stdio_.h
-$(GLSRC)gxcolor2.h:$(GLSRC)gscompt.h
+$(GLSRC)gxcolor2.h:$(GLSRC)gslibctx.h
$(GLSRC)gxcolor2.h:$(GLSRC)gxcindex.h
-$(GLSRC)gxcolor2.h:$(GLSRC)gsgstate.h
+$(GLSRC)gxcolor2.h:$(GLSRC)stdio_.h
+$(GLSRC)gxcolor2.h:$(GLSRC)gsccode.h
$(GLSRC)gxcolor2.h:$(GLSRC)stdint_.h
$(GLSRC)gxcolor2.h:$(GLSRC)gssprintf.h
-$(GLSRC)gxcolor2.h:$(GLSRC)gsccode.h
-$(GLSRC)gxcolor2.h:$(GLSRC)std.h
$(GLSRC)gxcolor2.h:$(GLSRC)gstypes.h
+$(GLSRC)gxcolor2.h:$(GLSRC)std.h
$(GLSRC)gxcolor2.h:$(GLSRC)stdpre.h
$(GLSRC)gxcolor2.h:$(GLGEN)arch.h
+$(GLSRC)gxcolor2.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxclist.h:$(GLSRC)gxgstate.h
-$(GLSRC)gxclist.h:$(GLSRC)gxline.h
$(GLSRC)gxclist.h:$(GLSRC)gstrans.h
+$(GLSRC)gxclist.h:$(GLSRC)gdevp14.h
+$(GLSRC)gxclist.h:$(GLSRC)gxline.h
$(GLSRC)gxclist.h:$(GLSRC)gsht1.h
+$(GLSRC)gxclist.h:$(GLSRC)gxcomp.h
$(GLSRC)gxclist.h:$(GLSRC)math_.h
-$(GLSRC)gxclist.h:$(GLSRC)gdevp14.h
$(GLSRC)gxclist.h:$(GLSRC)gxcolor2.h
$(GLSRC)gxclist.h:$(GLSRC)gxpcolor.h
+$(GLSRC)gxclist.h:$(GLSRC)gxdevmem.h
$(GLSRC)gxclist.h:$(GLSRC)gdevdevn.h
-$(GLSRC)gxclist.h:$(GLSRC)gsequivc.h
-$(GLSRC)gxclist.h:$(GLSRC)gxblend.h
$(GLSRC)gxclist.h:$(GLSRC)gxclipsr.h
-$(GLSRC)gxclist.h:$(GLSRC)gxcomp.h
-$(GLSRC)gxclist.h:$(GLSRC)gxdcolor.h
-$(GLSRC)gxclist.h:$(GLSRC)gxmatrix.h
-$(GLSRC)gxclist.h:$(GLSRC)gxbitfmt.h
$(GLSRC)gxclist.h:$(GLSRC)gxdevbuf.h
+$(GLSRC)gxclist.h:$(GLSRC)gxdcolor.h
$(GLSRC)gxclist.h:$(GLSRC)gxband.h
+$(GLSRC)gxclist.h:$(GLSRC)gxblend.h
$(GLSRC)gxclist.h:$(GLSRC)gscolor2.h
-$(GLSRC)gxclist.h:$(GLSRC)gscindex.h
+$(GLSRC)gxclist.h:$(GLSRC)gxmatrix.h
$(GLSRC)gxclist.h:$(GLSRC)gxdevice.h
-$(GLSRC)gxclist.h:$(GLSRC)gsht.h
$(GLSRC)gxclist.h:$(GLSRC)gxcpath.h
-$(GLSRC)gxclist.h:$(GLSRC)gxdevmem.h
+$(GLSRC)gxclist.h:$(GLSRC)gsht.h
+$(GLSRC)gxclist.h:$(GLSRC)gsequivc.h
$(GLSRC)gxclist.h:$(GLSRC)gxdevcli.h
$(GLSRC)gxclist.h:$(GLSRC)gxpcache.h
+$(GLSRC)gxclist.h:$(GLSRC)gscindex.h
+$(GLSRC)gxclist.h:$(GLSRC)gxcmap.h
$(GLSRC)gxclist.h:$(GLSRC)gsptype1.h
-$(GLSRC)gxclist.h:$(GLSRC)gxtext.h
$(GLSRC)gxclist.h:$(GLSRC)gscie.h
+$(GLSRC)gxclist.h:$(GLSRC)gxtext.h
$(GLSRC)gxclist.h:$(GLSRC)gstext.h
+$(GLSRC)gxclist.h:$(GLSRC)gxstate.h
$(GLSRC)gxclist.h:$(GLSRC)gsnamecl.h
$(GLSRC)gxclist.h:$(GLSRC)gstparam.h
-$(GLSRC)gxclist.h:$(GLSRC)gxstate.h
$(GLSRC)gxclist.h:$(GLSRC)gspcolor.h
-$(GLSRC)gxclist.h:$(GLSRC)gxfcache.h
-$(GLSRC)gxclist.h:$(GLSRC)gxcspace.h
-$(GLSRC)gxclist.h:$(GLSRC)gsropt.h
-$(GLSRC)gxclist.h:$(GLSRC)gsfunc.h
+$(GLSRC)gxclist.h:$(GLSRC)gxfmap.h
$(GLSRC)gxclist.h:$(GLSRC)gsmalloc.h
-$(GLSRC)gxclist.h:$(GLSRC)gxrplane.h
+$(GLSRC)gxclist.h:$(GLSRC)gsfunc.h
+$(GLSRC)gxclist.h:$(GLSRC)gxcspace.h
$(GLSRC)gxclist.h:$(GLSRC)gxctable.h
-$(GLSRC)gxclist.h:$(GLSRC)gsuid.h
-$(GLSRC)gxclist.h:$(GLSRC)gxcmap.h
+$(GLSRC)gxclist.h:$(GLSRC)gxrplane.h
+$(GLSRC)gxclist.h:$(GLSRC)gscsel.h
+$(GLSRC)gxclist.h:$(GLSRC)gxfcache.h
+$(GLSRC)gxclist.h:$(GLSRC)gsfont.h
$(GLSRC)gxclist.h:$(GLSRC)gsimage.h
$(GLSRC)gxclist.h:$(GLSRC)gsdcolor.h
-$(GLSRC)gxclist.h:$(GLSRC)gxdda.h
$(GLSRC)gxclist.h:$(GLSRC)gxcvalue.h
-$(GLSRC)gxclist.h:$(GLSRC)gsfont.h
-$(GLSRC)gxclist.h:$(GLSRC)gxfmap.h
+$(GLSRC)gxclist.h:$(GLSRC)gxbcache.h
+$(GLSRC)gxclist.h:$(GLSRC)gsropt.h
+$(GLSRC)gxclist.h:$(GLSRC)gxdda.h
+$(GLSRC)gxclist.h:$(GLSRC)gxpath.h
$(GLSRC)gxclist.h:$(GLSRC)gxiclass.h
-$(GLSRC)gxclist.h:$(GLSRC)gxftype.h
$(GLSRC)gxclist.h:$(GLSRC)gxfrac.h
+$(GLSRC)gxclist.h:$(GLSRC)gxtmap.h
+$(GLSRC)gxclist.h:$(GLSRC)gxftype.h
$(GLSRC)gxclist.h:$(GLSRC)gscms.h
-$(GLSRC)gxclist.h:$(GLSRC)gscspace.h
-$(GLSRC)gxclist.h:$(GLSRC)gxpath.h
-$(GLSRC)gxclist.h:$(GLSRC)gxbcache.h
-$(GLSRC)gxclist.h:$(GLSRC)gsdevice.h
-$(GLSRC)gxclist.h:$(GLSRC)gxarith.h
-$(GLSRC)gxclist.h:$(GLSRC)gxstdio.h
-$(GLSRC)gxclist.h:$(GLSRC)gspenum.h
-$(GLSRC)gxclist.h:$(GLSRC)gxhttile.h
$(GLSRC)gxclist.h:$(GLSRC)gsrect.h
$(GLSRC)gxclist.h:$(GLSRC)gslparam.h
+$(GLSRC)gxclist.h:$(GLSRC)gsdevice.h
+$(GLSRC)gxclist.h:$(GLSRC)gxbitfmt.h
+$(GLSRC)gxclist.h:$(GLSRC)gscpm.h
+$(GLSRC)gxclist.h:$(GLSRC)gscspace.h
+$(GLSRC)gxclist.h:$(GLSRC)gsgstate.h
+$(GLSRC)gxclist.h:$(GLSRC)gxstdio.h
$(GLSRC)gxclist.h:$(GLSRC)gsxfont.h
-$(GLSRC)gxclist.h:$(GLSRC)gxclio.h
-$(GLSRC)gxclist.h:$(GLSRC)gsiparam.h
$(GLSRC)gxclist.h:$(GLSRC)gsdsrc.h
$(GLSRC)gxclist.h:$(GLSRC)gsio.h
-$(GLSRC)gxclist.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gxclist.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gxclist.h:$(GLSRC)gscpm.h
+$(GLSRC)gxclist.h:$(GLSRC)gsiparam.h
$(GLSRC)gxclist.h:$(GLSRC)gxfixed.h
-$(GLSRC)gxclist.h:$(GLSRC)gsrefct.h
+$(GLSRC)gxclist.h:$(GLSRC)gxclio.h
+$(GLSRC)gxclist.h:$(GLSRC)gscompt.h
+$(GLSRC)gxclist.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gxclist.h:$(GLSRC)gspenum.h
+$(GLSRC)gxclist.h:$(GLSRC)gxhttile.h
$(GLSRC)gxclist.h:$(GLSRC)gsparam.h
+$(GLSRC)gxclist.h:$(GLSRC)gsrefct.h
$(GLSRC)gxclist.h:$(GLSRC)gp.h
-$(GLSRC)gxclist.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxclist.h:$(GLSRC)memento.h
+$(GLSRC)gxclist.h:$(GLSRC)memory_.h
+$(GLSRC)gxclist.h:$(GLSRC)gsuid.h
$(GLSRC)gxclist.h:$(GLSRC)gsstruct.h
$(GLSRC)gxclist.h:$(GLSRC)gxsync.h
+$(GLSRC)gxclist.h:$(GLSRC)gxbitmap.h
+$(GLSRC)gxclist.h:$(GLSRC)vmsmath.h
$(GLSRC)gxclist.h:$(GLSRC)srdline.h
$(GLSRC)gxclist.h:$(GLSRC)scommon.h
-$(GLSRC)gxclist.h:$(GLSRC)memento.h
-$(GLSRC)gxclist.h:$(GLSRC)vmsmath.h
-$(GLSRC)gxclist.h:$(GLSRC)gscsel.h
-$(GLSRC)gxclist.h:$(GLSRC)gsbitmap.h
$(GLSRC)gxclist.h:$(GLSRC)gsfname.h
-$(GLSRC)gxclist.h:$(GLSRC)gsstype.h
+$(GLSRC)gxclist.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gxclist.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxclist.h:$(GLSRC)gxarith.h
$(GLSRC)gxclist.h:$(GLSRC)stat_.h
-$(GLSRC)gxclist.h:$(GLSRC)gxtmap.h
-$(GLSRC)gxclist.h:$(GLSRC)gsmemory.h
$(GLSRC)gxclist.h:$(GLSRC)gpsync.h
-$(GLSRC)gxclist.h:$(GLSRC)memory_.h
+$(GLSRC)gxclist.h:$(GLSRC)gsstype.h
+$(GLSRC)gxclist.h:$(GLSRC)gsmemory.h
$(GLSRC)gxclist.h:$(GLSRC)gpgetenv.h
-$(GLSRC)gxclist.h:$(GLSRC)gslibctx.h
$(GLSRC)gxclist.h:$(GLSRC)gscdefs.h
-$(GLSRC)gxclist.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gxclist.h:$(GLSRC)stdio_.h
-$(GLSRC)gxclist.h:$(GLSRC)gscompt.h
+$(GLSRC)gxclist.h:$(GLSRC)gslibctx.h
$(GLSRC)gxclist.h:$(GLSRC)gxcindex.h
-$(GLSRC)gxclist.h:$(GLSRC)gsgstate.h
+$(GLSRC)gxclist.h:$(GLSRC)stdio_.h
+$(GLSRC)gxclist.h:$(GLSRC)gsccode.h
$(GLSRC)gxclist.h:$(GLSRC)stdint_.h
$(GLSRC)gxclist.h:$(GLSRC)gssprintf.h
-$(GLSRC)gxclist.h:$(GLSRC)gsccode.h
-$(GLSRC)gxclist.h:$(GLSRC)std.h
$(GLSRC)gxclist.h:$(GLSRC)gstypes.h
+$(GLSRC)gxclist.h:$(GLSRC)std.h
$(GLSRC)gxclist.h:$(GLSRC)stdpre.h
$(GLSRC)gxclist.h:$(GLGEN)arch.h
+$(GLSRC)gxclist.h:$(GLSRC)gs_dll_call.h
+$(GLSRC)gxcspace.h:$(GLSRC)gscsel.h
$(GLSRC)gxcspace.h:$(GLSRC)gsdcolor.h
$(GLSRC)gxcspace.h:$(GLSRC)gxfrac.h
$(GLSRC)gxcspace.h:$(GLSRC)gscms.h
-$(GLSRC)gxcspace.h:$(GLSRC)gscspace.h
$(GLSRC)gxcspace.h:$(GLSRC)gsdevice.h
-$(GLSRC)gxcspace.h:$(GLSRC)gxarith.h
-$(GLSRC)gxcspace.h:$(GLSRC)gxhttile.h
+$(GLSRC)gxcspace.h:$(GLSRC)gscspace.h
+$(GLSRC)gxcspace.h:$(GLSRC)gsgstate.h
$(GLSRC)gxcspace.h:$(GLSRC)gsiparam.h
-$(GLSRC)gxcspace.h:$(GLSRC)gxbitmap.h
$(GLSRC)gxcspace.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gxcspace.h:$(GLSRC)gsrefct.h
+$(GLSRC)gxcspace.h:$(GLSRC)gxhttile.h
$(GLSRC)gxcspace.h:$(GLSRC)gsparam.h
-$(GLSRC)gxcspace.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxcspace.h:$(GLSRC)gsrefct.h
+$(GLSRC)gxcspace.h:$(GLSRC)memento.h
$(GLSRC)gxcspace.h:$(GLSRC)gxsync.h
+$(GLSRC)gxcspace.h:$(GLSRC)gxbitmap.h
$(GLSRC)gxcspace.h:$(GLSRC)scommon.h
-$(GLSRC)gxcspace.h:$(GLSRC)memento.h
-$(GLSRC)gxcspace.h:$(GLSRC)gscsel.h
$(GLSRC)gxcspace.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gxcspace.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxcspace.h:$(GLSRC)gxarith.h
+$(GLSRC)gxcspace.h:$(GLSRC)gpsync.h
$(GLSRC)gxcspace.h:$(GLSRC)gsstype.h
$(GLSRC)gxcspace.h:$(GLSRC)gsmemory.h
-$(GLSRC)gxcspace.h:$(GLSRC)gpsync.h
$(GLSRC)gxcspace.h:$(GLSRC)gslibctx.h
-$(GLSRC)gxcspace.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gxcspace.h:$(GLSRC)stdio_.h
$(GLSRC)gxcspace.h:$(GLSRC)gxcindex.h
-$(GLSRC)gxcspace.h:$(GLSRC)gsgstate.h
+$(GLSRC)gxcspace.h:$(GLSRC)stdio_.h
$(GLSRC)gxcspace.h:$(GLSRC)stdint_.h
$(GLSRC)gxcspace.h:$(GLSRC)gssprintf.h
-$(GLSRC)gxcspace.h:$(GLSRC)std.h
$(GLSRC)gxcspace.h:$(GLSRC)gstypes.h
+$(GLSRC)gxcspace.h:$(GLSRC)std.h
$(GLSRC)gxcspace.h:$(GLSRC)stdpre.h
$(GLSRC)gxcspace.h:$(GLGEN)arch.h
+$(GLSRC)gxcspace.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxht.h:$(GLSRC)gxhttype.h
$(GLSRC)gxht.h:$(GLSRC)gsht1.h
$(GLSRC)gxht.h:$(GLSRC)gsht.h
+$(GLSRC)gxht.h:$(GLSRC)gxtmap.h
$(GLSRC)gxht.h:$(GLSRC)gscspace.h
+$(GLSRC)gxht.h:$(GLSRC)gsgstate.h
$(GLSRC)gxht.h:$(GLSRC)gsiparam.h
-$(GLSRC)gxht.h:$(GLSRC)gxbitmap.h
$(GLSRC)gxht.h:$(GLSRC)gsmatrix.h
$(GLSRC)gxht.h:$(GLSRC)gsrefct.h
-$(GLSRC)gxht.h:$(GLSRC)gsccolor.h
-$(GLSRC)gxht.h:$(GLSRC)scommon.h
$(GLSRC)gxht.h:$(GLSRC)memento.h
+$(GLSRC)gxht.h:$(GLSRC)gxbitmap.h
+$(GLSRC)gxht.h:$(GLSRC)scommon.h
$(GLSRC)gxht.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gxht.h:$(GLSRC)gsccolor.h
$(GLSRC)gxht.h:$(GLSRC)gsstype.h
-$(GLSRC)gxht.h:$(GLSRC)gxtmap.h
$(GLSRC)gxht.h:$(GLSRC)gsmemory.h
$(GLSRC)gxht.h:$(GLSRC)gslibctx.h
-$(GLSRC)gxht.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxht.h:$(GLSRC)stdio_.h
-$(GLSRC)gxht.h:$(GLSRC)gsgstate.h
$(GLSRC)gxht.h:$(GLSRC)stdint_.h
$(GLSRC)gxht.h:$(GLSRC)gssprintf.h
-$(GLSRC)gxht.h:$(GLSRC)std.h
$(GLSRC)gxht.h:$(GLSRC)gstypes.h
+$(GLSRC)gxht.h:$(GLSRC)std.h
$(GLSRC)gxht.h:$(GLSRC)stdpre.h
$(GLSRC)gxht.h:$(GLGEN)arch.h
+$(GLSRC)gxht.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxcie.h:$(GLSRC)gscie.h
$(GLSRC)gxcie.h:$(GLSRC)gsnamecl.h
$(GLSRC)gxcie.h:$(GLSRC)gxcspace.h
$(GLSRC)gxcie.h:$(GLSRC)gxctable.h
+$(GLSRC)gxcie.h:$(GLSRC)gscsel.h
$(GLSRC)gxcie.h:$(GLSRC)gsdcolor.h
$(GLSRC)gxcie.h:$(GLSRC)gxfrac.h
$(GLSRC)gxcie.h:$(GLSRC)gscms.h
-$(GLSRC)gxcie.h:$(GLSRC)gscspace.h
$(GLSRC)gxcie.h:$(GLSRC)gsdevice.h
-$(GLSRC)gxcie.h:$(GLSRC)gxarith.h
-$(GLSRC)gxcie.h:$(GLSRC)gxhttile.h
+$(GLSRC)gxcie.h:$(GLSRC)gscspace.h
+$(GLSRC)gxcie.h:$(GLSRC)gsgstate.h
$(GLSRC)gxcie.h:$(GLSRC)gsiparam.h
-$(GLSRC)gxcie.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gxcie.h:$(GLSRC)gsmatrix.h
$(GLSRC)gxcie.h:$(GLSRC)gxfixed.h
-$(GLSRC)gxcie.h:$(GLSRC)gsrefct.h
+$(GLSRC)gxcie.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gxcie.h:$(GLSRC)gxhttile.h
$(GLSRC)gxcie.h:$(GLSRC)gsparam.h
-$(GLSRC)gxcie.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxcie.h:$(GLSRC)gsrefct.h
+$(GLSRC)gxcie.h:$(GLSRC)memento.h
$(GLSRC)gxcie.h:$(GLSRC)gxsync.h
+$(GLSRC)gxcie.h:$(GLSRC)gxbitmap.h
$(GLSRC)gxcie.h:$(GLSRC)scommon.h
-$(GLSRC)gxcie.h:$(GLSRC)memento.h
-$(GLSRC)gxcie.h:$(GLSRC)gscsel.h
$(GLSRC)gxcie.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gxcie.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxcie.h:$(GLSRC)gxarith.h
+$(GLSRC)gxcie.h:$(GLSRC)gpsync.h
$(GLSRC)gxcie.h:$(GLSRC)gsstype.h
$(GLSRC)gxcie.h:$(GLSRC)gsmemory.h
-$(GLSRC)gxcie.h:$(GLSRC)gpsync.h
$(GLSRC)gxcie.h:$(GLSRC)gslibctx.h
-$(GLSRC)gxcie.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gxcie.h:$(GLSRC)stdio_.h
$(GLSRC)gxcie.h:$(GLSRC)gxcindex.h
-$(GLSRC)gxcie.h:$(GLSRC)gsgstate.h
+$(GLSRC)gxcie.h:$(GLSRC)stdio_.h
$(GLSRC)gxcie.h:$(GLSRC)stdint_.h
$(GLSRC)gxcie.h:$(GLSRC)gssprintf.h
-$(GLSRC)gxcie.h:$(GLSRC)std.h
$(GLSRC)gxcie.h:$(GLSRC)gstypes.h
+$(GLSRC)gxcie.h:$(GLSRC)std.h
$(GLSRC)gxcie.h:$(GLSRC)stdpre.h
$(GLSRC)gxcie.h:$(GLGEN)arch.h
+$(GLSRC)gxcie.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxht_thresh.h:$(GLSRC)gxdda.h
$(GLSRC)gxht_thresh.h:$(GLSRC)gxiclass.h
$(GLSRC)gxht_thresh.h:$(GLSRC)gsdevice.h
+$(GLSRC)gxht_thresh.h:$(GLSRC)gsgstate.h
$(GLSRC)gxht_thresh.h:$(GLSRC)gsiparam.h
-$(GLSRC)gxht_thresh.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gxht_thresh.h:$(GLSRC)gsmatrix.h
$(GLSRC)gxht_thresh.h:$(GLSRC)gxfixed.h
+$(GLSRC)gxht_thresh.h:$(GLSRC)gsmatrix.h
$(GLSRC)gxht_thresh.h:$(GLSRC)gsparam.h
-$(GLSRC)gxht_thresh.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxht_thresh.h:$(GLSRC)gxbitmap.h
$(GLSRC)gxht_thresh.h:$(GLSRC)scommon.h
$(GLSRC)gxht_thresh.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gxht_thresh.h:$(GLSRC)gsccolor.h
$(GLSRC)gxht_thresh.h:$(GLSRC)gsstype.h
$(GLSRC)gxht_thresh.h:$(GLSRC)gsmemory.h
$(GLSRC)gxht_thresh.h:$(GLSRC)gslibctx.h
-$(GLSRC)gxht_thresh.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxht_thresh.h:$(GLSRC)stdio_.h
-$(GLSRC)gxht_thresh.h:$(GLSRC)gsgstate.h
$(GLSRC)gxht_thresh.h:$(GLSRC)stdint_.h
$(GLSRC)gxht_thresh.h:$(GLSRC)gssprintf.h
-$(GLSRC)gxht_thresh.h:$(GLSRC)std.h
$(GLSRC)gxht_thresh.h:$(GLSRC)gstypes.h
+$(GLSRC)gxht_thresh.h:$(GLSRC)std.h
$(GLSRC)gxht_thresh.h:$(GLSRC)stdpre.h
$(GLSRC)gxht_thresh.h:$(GLGEN)arch.h
-$(GLSRC)gxpcolor.h:$(GLSRC)gxblend.h
+$(GLSRC)gxht_thresh.h:$(GLSRC)gs_dll_call.h
+$(GLSRC)gxpcolor.h:$(GLSRC)gxdevmem.h
$(GLSRC)gxpcolor.h:$(GLSRC)gxdcolor.h
+$(GLSRC)gxpcolor.h:$(GLSRC)gxblend.h
$(GLSRC)gxpcolor.h:$(GLSRC)gxdevice.h
$(GLSRC)gxpcolor.h:$(GLSRC)gxcpath.h
-$(GLSRC)gxpcolor.h:$(GLSRC)gxdevmem.h
$(GLSRC)gxpcolor.h:$(GLSRC)gxdevcli.h
$(GLSRC)gxpcolor.h:$(GLSRC)gxpcache.h
+$(GLSRC)gxpcolor.h:$(GLSRC)gxcmap.h
$(GLSRC)gxpcolor.h:$(GLSRC)gxtext.h
$(GLSRC)gxpcolor.h:$(GLSRC)gstext.h
$(GLSRC)gxpcolor.h:$(GLSRC)gsnamecl.h
$(GLSRC)gxpcolor.h:$(GLSRC)gstparam.h
$(GLSRC)gxpcolor.h:$(GLSRC)gspcolor.h
-$(GLSRC)gxpcolor.h:$(GLSRC)gxfcache.h
-$(GLSRC)gxpcolor.h:$(GLSRC)gxcspace.h
-$(GLSRC)gxpcolor.h:$(GLSRC)gsropt.h
-$(GLSRC)gxpcolor.h:$(GLSRC)gsfunc.h
+$(GLSRC)gxpcolor.h:$(GLSRC)gxfmap.h
$(GLSRC)gxpcolor.h:$(GLSRC)gsmalloc.h
+$(GLSRC)gxpcolor.h:$(GLSRC)gsfunc.h
+$(GLSRC)gxpcolor.h:$(GLSRC)gxcspace.h
$(GLSRC)gxpcolor.h:$(GLSRC)gxrplane.h
-$(GLSRC)gxpcolor.h:$(GLSRC)gsuid.h
-$(GLSRC)gxpcolor.h:$(GLSRC)gxcmap.h
+$(GLSRC)gxpcolor.h:$(GLSRC)gscsel.h
+$(GLSRC)gxpcolor.h:$(GLSRC)gxfcache.h
+$(GLSRC)gxpcolor.h:$(GLSRC)gsfont.h
$(GLSRC)gxpcolor.h:$(GLSRC)gsimage.h
$(GLSRC)gxpcolor.h:$(GLSRC)gsdcolor.h
-$(GLSRC)gxpcolor.h:$(GLSRC)gxdda.h
$(GLSRC)gxpcolor.h:$(GLSRC)gxcvalue.h
-$(GLSRC)gxpcolor.h:$(GLSRC)gsfont.h
-$(GLSRC)gxpcolor.h:$(GLSRC)gxfmap.h
+$(GLSRC)gxpcolor.h:$(GLSRC)gxbcache.h
+$(GLSRC)gxpcolor.h:$(GLSRC)gsropt.h
+$(GLSRC)gxpcolor.h:$(GLSRC)gxdda.h
+$(GLSRC)gxpcolor.h:$(GLSRC)gxpath.h
$(GLSRC)gxpcolor.h:$(GLSRC)gxiclass.h
-$(GLSRC)gxpcolor.h:$(GLSRC)gxftype.h
$(GLSRC)gxpcolor.h:$(GLSRC)gxfrac.h
+$(GLSRC)gxpcolor.h:$(GLSRC)gxtmap.h
+$(GLSRC)gxpcolor.h:$(GLSRC)gxftype.h
$(GLSRC)gxpcolor.h:$(GLSRC)gscms.h
-$(GLSRC)gxpcolor.h:$(GLSRC)gscspace.h
-$(GLSRC)gxpcolor.h:$(GLSRC)gxpath.h
-$(GLSRC)gxpcolor.h:$(GLSRC)gxbcache.h
-$(GLSRC)gxpcolor.h:$(GLSRC)gsdevice.h
-$(GLSRC)gxpcolor.h:$(GLSRC)gxarith.h
-$(GLSRC)gxpcolor.h:$(GLSRC)gxstdio.h
-$(GLSRC)gxpcolor.h:$(GLSRC)gspenum.h
-$(GLSRC)gxpcolor.h:$(GLSRC)gxhttile.h
$(GLSRC)gxpcolor.h:$(GLSRC)gsrect.h
$(GLSRC)gxpcolor.h:$(GLSRC)gslparam.h
+$(GLSRC)gxpcolor.h:$(GLSRC)gsdevice.h
+$(GLSRC)gxpcolor.h:$(GLSRC)gscpm.h
+$(GLSRC)gxpcolor.h:$(GLSRC)gscspace.h
+$(GLSRC)gxpcolor.h:$(GLSRC)gsgstate.h
+$(GLSRC)gxpcolor.h:$(GLSRC)gxstdio.h
$(GLSRC)gxpcolor.h:$(GLSRC)gsxfont.h
-$(GLSRC)gxpcolor.h:$(GLSRC)gsiparam.h
$(GLSRC)gxpcolor.h:$(GLSRC)gsdsrc.h
$(GLSRC)gxpcolor.h:$(GLSRC)gsio.h
-$(GLSRC)gxpcolor.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gxpcolor.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gxpcolor.h:$(GLSRC)gscpm.h
+$(GLSRC)gxpcolor.h:$(GLSRC)gsiparam.h
$(GLSRC)gxpcolor.h:$(GLSRC)gxfixed.h
-$(GLSRC)gxpcolor.h:$(GLSRC)gsrefct.h
+$(GLSRC)gxpcolor.h:$(GLSRC)gscompt.h
+$(GLSRC)gxpcolor.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gxpcolor.h:$(GLSRC)gspenum.h
+$(GLSRC)gxpcolor.h:$(GLSRC)gxhttile.h
$(GLSRC)gxpcolor.h:$(GLSRC)gsparam.h
+$(GLSRC)gxpcolor.h:$(GLSRC)gsrefct.h
$(GLSRC)gxpcolor.h:$(GLSRC)gp.h
-$(GLSRC)gxpcolor.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxpcolor.h:$(GLSRC)memento.h
+$(GLSRC)gxpcolor.h:$(GLSRC)memory_.h
+$(GLSRC)gxpcolor.h:$(GLSRC)gsuid.h
$(GLSRC)gxpcolor.h:$(GLSRC)gsstruct.h
$(GLSRC)gxpcolor.h:$(GLSRC)gxsync.h
+$(GLSRC)gxpcolor.h:$(GLSRC)gxbitmap.h
$(GLSRC)gxpcolor.h:$(GLSRC)srdline.h
$(GLSRC)gxpcolor.h:$(GLSRC)scommon.h
-$(GLSRC)gxpcolor.h:$(GLSRC)memento.h
-$(GLSRC)gxpcolor.h:$(GLSRC)gscsel.h
-$(GLSRC)gxpcolor.h:$(GLSRC)gsbitmap.h
$(GLSRC)gxpcolor.h:$(GLSRC)gsfname.h
-$(GLSRC)gxpcolor.h:$(GLSRC)gsstype.h
+$(GLSRC)gxpcolor.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gxpcolor.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxpcolor.h:$(GLSRC)gxarith.h
$(GLSRC)gxpcolor.h:$(GLSRC)stat_.h
-$(GLSRC)gxpcolor.h:$(GLSRC)gxtmap.h
-$(GLSRC)gxpcolor.h:$(GLSRC)gsmemory.h
$(GLSRC)gxpcolor.h:$(GLSRC)gpsync.h
-$(GLSRC)gxpcolor.h:$(GLSRC)memory_.h
+$(GLSRC)gxpcolor.h:$(GLSRC)gsstype.h
+$(GLSRC)gxpcolor.h:$(GLSRC)gsmemory.h
$(GLSRC)gxpcolor.h:$(GLSRC)gpgetenv.h
-$(GLSRC)gxpcolor.h:$(GLSRC)gslibctx.h
$(GLSRC)gxpcolor.h:$(GLSRC)gscdefs.h
-$(GLSRC)gxpcolor.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gxpcolor.h:$(GLSRC)stdio_.h
-$(GLSRC)gxpcolor.h:$(GLSRC)gscompt.h
+$(GLSRC)gxpcolor.h:$(GLSRC)gslibctx.h
$(GLSRC)gxpcolor.h:$(GLSRC)gxcindex.h
-$(GLSRC)gxpcolor.h:$(GLSRC)gsgstate.h
+$(GLSRC)gxpcolor.h:$(GLSRC)stdio_.h
+$(GLSRC)gxpcolor.h:$(GLSRC)gsccode.h
$(GLSRC)gxpcolor.h:$(GLSRC)stdint_.h
$(GLSRC)gxpcolor.h:$(GLSRC)gssprintf.h
-$(GLSRC)gxpcolor.h:$(GLSRC)gsccode.h
-$(GLSRC)gxpcolor.h:$(GLSRC)std.h
$(GLSRC)gxpcolor.h:$(GLSRC)gstypes.h
+$(GLSRC)gxpcolor.h:$(GLSRC)std.h
$(GLSRC)gxpcolor.h:$(GLSRC)stdpre.h
$(GLSRC)gxpcolor.h:$(GLGEN)arch.h
+$(GLSRC)gxpcolor.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gscolor.h:$(GLSRC)gxtmap.h
$(GLSRC)gscolor.h:$(GLSRC)gsgstate.h
$(GLSRC)gscolor.h:$(GLSRC)stdpre.h
$(GLSRC)gsstate.h:$(GLSRC)gsovrc.h
$(GLSRC)gsstate.h:$(GLSRC)gscolor.h
-$(GLSRC)gsstate.h:$(GLSRC)gxcomp.h
$(GLSRC)gsstate.h:$(GLSRC)gsline.h
-$(GLSRC)gsstate.h:$(GLSRC)gxbitfmt.h
+$(GLSRC)gsstate.h:$(GLSRC)gxcomp.h
$(GLSRC)gsstate.h:$(GLSRC)gsht.h
-$(GLSRC)gsstate.h:$(GLSRC)gsdevice.h
+$(GLSRC)gsstate.h:$(GLSRC)gscsel.h
+$(GLSRC)gsstate.h:$(GLSRC)gxtmap.h
$(GLSRC)gsstate.h:$(GLSRC)gslparam.h
-$(GLSRC)gsstate.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gsstate.h:$(GLSRC)gsdevice.h
+$(GLSRC)gsstate.h:$(GLSRC)gxbitfmt.h
$(GLSRC)gsstate.h:$(GLSRC)gscpm.h
-$(GLSRC)gsstate.h:$(GLSRC)gsrefct.h
+$(GLSRC)gsstate.h:$(GLSRC)gsgstate.h
+$(GLSRC)gsstate.h:$(GLSRC)gscompt.h
+$(GLSRC)gsstate.h:$(GLSRC)gsmatrix.h
$(GLSRC)gsstate.h:$(GLSRC)gsparam.h
-$(GLSRC)gsstate.h:$(GLSRC)scommon.h
+$(GLSRC)gsstate.h:$(GLSRC)gsrefct.h
$(GLSRC)gsstate.h:$(GLSRC)memento.h
-$(GLSRC)gsstate.h:$(GLSRC)gscsel.h
+$(GLSRC)gsstate.h:$(GLSRC)scommon.h
$(GLSRC)gsstate.h:$(GLSRC)gsstype.h
-$(GLSRC)gsstate.h:$(GLSRC)gxtmap.h
$(GLSRC)gsstate.h:$(GLSRC)gsmemory.h
$(GLSRC)gsstate.h:$(GLSRC)gslibctx.h
-$(GLSRC)gsstate.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gsstate.h:$(GLSRC)stdio_.h
-$(GLSRC)gsstate.h:$(GLSRC)gscompt.h
$(GLSRC)gsstate.h:$(GLSRC)gxcindex.h
-$(GLSRC)gsstate.h:$(GLSRC)gsgstate.h
+$(GLSRC)gsstate.h:$(GLSRC)stdio_.h
$(GLSRC)gsstate.h:$(GLSRC)stdint_.h
$(GLSRC)gsstate.h:$(GLSRC)gssprintf.h
-$(GLSRC)gsstate.h:$(GLSRC)std.h
$(GLSRC)gsstate.h:$(GLSRC)gstypes.h
+$(GLSRC)gsstate.h:$(GLSRC)std.h
$(GLSRC)gsstate.h:$(GLSRC)stdpre.h
$(GLSRC)gsstate.h:$(GLGEN)arch.h
+$(GLSRC)gsstate.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gsicc_create.h:$(GLSRC)gscie.h
$(GLSRC)gsicc_create.h:$(GLSRC)gxctable.h
$(GLSRC)gsicc_create.h:$(GLSRC)gxfrac.h
$(GLSRC)gsicc_create.h:$(GLSRC)gscspace.h
+$(GLSRC)gsicc_create.h:$(GLSRC)gsgstate.h
$(GLSRC)gsicc_create.h:$(GLSRC)gsiparam.h
-$(GLSRC)gsicc_create.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gsicc_create.h:$(GLSRC)gsmatrix.h
$(GLSRC)gsicc_create.h:$(GLSRC)gxfixed.h
+$(GLSRC)gsicc_create.h:$(GLSRC)gsmatrix.h
$(GLSRC)gsicc_create.h:$(GLSRC)gsrefct.h
-$(GLSRC)gsicc_create.h:$(GLSRC)gsccolor.h
-$(GLSRC)gsicc_create.h:$(GLSRC)scommon.h
$(GLSRC)gsicc_create.h:$(GLSRC)memento.h
+$(GLSRC)gsicc_create.h:$(GLSRC)gxbitmap.h
+$(GLSRC)gsicc_create.h:$(GLSRC)scommon.h
$(GLSRC)gsicc_create.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gsicc_create.h:$(GLSRC)gsccolor.h
$(GLSRC)gsicc_create.h:$(GLSRC)gsstype.h
$(GLSRC)gsicc_create.h:$(GLSRC)gsmemory.h
$(GLSRC)gsicc_create.h:$(GLSRC)gslibctx.h
-$(GLSRC)gsicc_create.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gsicc_create.h:$(GLSRC)stdio_.h
-$(GLSRC)gsicc_create.h:$(GLSRC)gsgstate.h
$(GLSRC)gsicc_create.h:$(GLSRC)stdint_.h
$(GLSRC)gsicc_create.h:$(GLSRC)gssprintf.h
-$(GLSRC)gsicc_create.h:$(GLSRC)std.h
$(GLSRC)gsicc_create.h:$(GLSRC)gstypes.h
+$(GLSRC)gsicc_create.h:$(GLSRC)std.h
$(GLSRC)gsicc_create.h:$(GLSRC)stdpre.h
$(GLSRC)gsicc_create.h:$(GLGEN)arch.h
+$(GLSRC)gsicc_create.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gximdecode.h:$(GLSRC)gximage.h
$(GLSRC)gximdecode.h:$(GLSRC)gxsample.h
$(GLSRC)gximdecode.h:$(GLSRC)sisparam.h
@@ -8175,1247 +8188,1247 @@ $(GLSRC)gximdecode.h:$(GLSRC)gdebug.h
$(GLSRC)gximdecode.h:$(GLSRC)gxcpath.h
$(GLSRC)gximdecode.h:$(GLSRC)gxiparam.h
$(GLSRC)gximdecode.h:$(GLSRC)gxdevcli.h
+$(GLSRC)gximdecode.h:$(GLSRC)gxcmap.h
$(GLSRC)gximdecode.h:$(GLSRC)gxtext.h
$(GLSRC)gximdecode.h:$(GLSRC)gstext.h
$(GLSRC)gximdecode.h:$(GLSRC)gsnamecl.h
$(GLSRC)gximdecode.h:$(GLSRC)gstparam.h
-$(GLSRC)gximdecode.h:$(GLSRC)gxfcache.h
-$(GLSRC)gximdecode.h:$(GLSRC)gxcspace.h
-$(GLSRC)gximdecode.h:$(GLSRC)gsropt.h
+$(GLSRC)gximdecode.h:$(GLSRC)gxfmap.h
$(GLSRC)gximdecode.h:$(GLSRC)gsfunc.h
-$(GLSRC)gximdecode.h:$(GLSRC)gxrplane.h
-$(GLSRC)gximdecode.h:$(GLSRC)gsuid.h
-$(GLSRC)gximdecode.h:$(GLSRC)gxcmap.h
+$(GLSRC)gximdecode.h:$(GLSRC)gxcspace.h
$(GLSRC)gximdecode.h:$(GLSRC)strimpl.h
+$(GLSRC)gximdecode.h:$(GLSRC)gxrplane.h
+$(GLSRC)gximdecode.h:$(GLSRC)gscsel.h
+$(GLSRC)gximdecode.h:$(GLSRC)gxfcache.h
+$(GLSRC)gximdecode.h:$(GLSRC)gsfont.h
$(GLSRC)gximdecode.h:$(GLSRC)gsimage.h
$(GLSRC)gximdecode.h:$(GLSRC)gsdcolor.h
-$(GLSRC)gximdecode.h:$(GLSRC)gxdda.h
$(GLSRC)gximdecode.h:$(GLSRC)gxcvalue.h
-$(GLSRC)gximdecode.h:$(GLSRC)gsfont.h
-$(GLSRC)gximdecode.h:$(GLSRC)gxfmap.h
+$(GLSRC)gximdecode.h:$(GLSRC)gxbcache.h
+$(GLSRC)gximdecode.h:$(GLSRC)gsropt.h
+$(GLSRC)gximdecode.h:$(GLSRC)gxdda.h
+$(GLSRC)gximdecode.h:$(GLSRC)gxpath.h
$(GLSRC)gximdecode.h:$(GLSRC)gxiclass.h
-$(GLSRC)gximdecode.h:$(GLSRC)gxftype.h
$(GLSRC)gximdecode.h:$(GLSRC)gxfrac.h
+$(GLSRC)gximdecode.h:$(GLSRC)gxtmap.h
+$(GLSRC)gximdecode.h:$(GLSRC)gxftype.h
$(GLSRC)gximdecode.h:$(GLSRC)gscms.h
-$(GLSRC)gximdecode.h:$(GLSRC)gscspace.h
-$(GLSRC)gximdecode.h:$(GLSRC)gxpath.h
-$(GLSRC)gximdecode.h:$(GLSRC)gxbcache.h
-$(GLSRC)gximdecode.h:$(GLSRC)gsdevice.h
-$(GLSRC)gximdecode.h:$(GLSRC)gxarith.h
-$(GLSRC)gximdecode.h:$(GLSRC)gspenum.h
-$(GLSRC)gximdecode.h:$(GLSRC)gxhttile.h
$(GLSRC)gximdecode.h:$(GLSRC)gsrect.h
$(GLSRC)gximdecode.h:$(GLSRC)gslparam.h
+$(GLSRC)gximdecode.h:$(GLSRC)gsdevice.h
+$(GLSRC)gximdecode.h:$(GLSRC)gscpm.h
+$(GLSRC)gximdecode.h:$(GLSRC)gscspace.h
+$(GLSRC)gximdecode.h:$(GLSRC)gsgstate.h
$(GLSRC)gximdecode.h:$(GLSRC)gsxfont.h
-$(GLSRC)gximdecode.h:$(GLSRC)gsiparam.h
$(GLSRC)gximdecode.h:$(GLSRC)gsdsrc.h
$(GLSRC)gximdecode.h:$(GLSRC)gsio.h
-$(GLSRC)gximdecode.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gximdecode.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gximdecode.h:$(GLSRC)gscpm.h
+$(GLSRC)gximdecode.h:$(GLSRC)gsiparam.h
$(GLSRC)gximdecode.h:$(GLSRC)gxfixed.h
-$(GLSRC)gximdecode.h:$(GLSRC)gsrefct.h
+$(GLSRC)gximdecode.h:$(GLSRC)gscompt.h
+$(GLSRC)gximdecode.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gximdecode.h:$(GLSRC)gspenum.h
+$(GLSRC)gximdecode.h:$(GLSRC)gxhttile.h
$(GLSRC)gximdecode.h:$(GLSRC)gsparam.h
+$(GLSRC)gximdecode.h:$(GLSRC)gsrefct.h
$(GLSRC)gximdecode.h:$(GLSRC)gp.h
-$(GLSRC)gximdecode.h:$(GLSRC)gsccolor.h
+$(GLSRC)gximdecode.h:$(GLSRC)memento.h
+$(GLSRC)gximdecode.h:$(GLSRC)memory_.h
+$(GLSRC)gximdecode.h:$(GLSRC)gsuid.h
$(GLSRC)gximdecode.h:$(GLSRC)gsstruct.h
-$(GLSRC)gximdecode.h:$(GLSRC)gxsync.h
$(GLSRC)gximdecode.h:$(GLSRC)gdbflags.h
-$(GLSRC)gximdecode.h:$(GLSRC)srdline.h
+$(GLSRC)gximdecode.h:$(GLSRC)gxsync.h
$(GLSRC)gximdecode.h:$(GLSRC)gserrors.h
+$(GLSRC)gximdecode.h:$(GLSRC)gxbitmap.h
+$(GLSRC)gximdecode.h:$(GLSRC)srdline.h
$(GLSRC)gximdecode.h:$(GLSRC)scommon.h
-$(GLSRC)gximdecode.h:$(GLSRC)memento.h
-$(GLSRC)gximdecode.h:$(GLSRC)gscsel.h
$(GLSRC)gximdecode.h:$(GLSRC)gsbitmap.h
-$(GLSRC)gximdecode.h:$(GLSRC)gsstype.h
+$(GLSRC)gximdecode.h:$(GLSRC)gsccolor.h
+$(GLSRC)gximdecode.h:$(GLSRC)gxarith.h
$(GLSRC)gximdecode.h:$(GLSRC)stat_.h
-$(GLSRC)gximdecode.h:$(GLSRC)gxtmap.h
-$(GLSRC)gximdecode.h:$(GLSRC)gsmemory.h
$(GLSRC)gximdecode.h:$(GLSRC)gpsync.h
-$(GLSRC)gximdecode.h:$(GLSRC)memory_.h
+$(GLSRC)gximdecode.h:$(GLSRC)gsstype.h
+$(GLSRC)gximdecode.h:$(GLSRC)gsmemory.h
$(GLSRC)gximdecode.h:$(GLSRC)gpgetenv.h
-$(GLSRC)gximdecode.h:$(GLSRC)gslibctx.h
$(GLSRC)gximdecode.h:$(GLSRC)gscdefs.h
-$(GLSRC)gximdecode.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gximdecode.h:$(GLSRC)stdio_.h
-$(GLSRC)gximdecode.h:$(GLSRC)gscompt.h
+$(GLSRC)gximdecode.h:$(GLSRC)gslibctx.h
$(GLSRC)gximdecode.h:$(GLSRC)gxcindex.h
-$(GLSRC)gximdecode.h:$(GLSRC)gsgstate.h
+$(GLSRC)gximdecode.h:$(GLSRC)stdio_.h
+$(GLSRC)gximdecode.h:$(GLSRC)gsccode.h
$(GLSRC)gximdecode.h:$(GLSRC)stdint_.h
$(GLSRC)gximdecode.h:$(GLSRC)gssprintf.h
-$(GLSRC)gximdecode.h:$(GLSRC)gsccode.h
-$(GLSRC)gximdecode.h:$(GLSRC)std.h
$(GLSRC)gximdecode.h:$(GLSRC)gstypes.h
+$(GLSRC)gximdecode.h:$(GLSRC)std.h
$(GLSRC)gximdecode.h:$(GLSRC)stdpre.h
$(GLSRC)gximdecode.h:$(GLGEN)arch.h
+$(GLSRC)gximdecode.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gzacpath.h:$(GLSRC)gxcpath.h
$(GLSRC)gzacpath.h:$(GLSRC)gxdevcli.h
+$(GLSRC)gzacpath.h:$(GLSRC)gxcmap.h
$(GLSRC)gzacpath.h:$(GLSRC)gxtext.h
$(GLSRC)gzacpath.h:$(GLSRC)gstext.h
$(GLSRC)gzacpath.h:$(GLSRC)gsnamecl.h
$(GLSRC)gzacpath.h:$(GLSRC)gstparam.h
-$(GLSRC)gzacpath.h:$(GLSRC)gxfcache.h
-$(GLSRC)gzacpath.h:$(GLSRC)gxcspace.h
-$(GLSRC)gzacpath.h:$(GLSRC)gsropt.h
+$(GLSRC)gzacpath.h:$(GLSRC)gxfmap.h
$(GLSRC)gzacpath.h:$(GLSRC)gsfunc.h
+$(GLSRC)gzacpath.h:$(GLSRC)gxcspace.h
$(GLSRC)gzacpath.h:$(GLSRC)gxrplane.h
-$(GLSRC)gzacpath.h:$(GLSRC)gsuid.h
-$(GLSRC)gzacpath.h:$(GLSRC)gxcmap.h
+$(GLSRC)gzacpath.h:$(GLSRC)gscsel.h
+$(GLSRC)gzacpath.h:$(GLSRC)gxfcache.h
+$(GLSRC)gzacpath.h:$(GLSRC)gsfont.h
$(GLSRC)gzacpath.h:$(GLSRC)gsimage.h
$(GLSRC)gzacpath.h:$(GLSRC)gsdcolor.h
-$(GLSRC)gzacpath.h:$(GLSRC)gxdda.h
$(GLSRC)gzacpath.h:$(GLSRC)gxcvalue.h
-$(GLSRC)gzacpath.h:$(GLSRC)gsfont.h
-$(GLSRC)gzacpath.h:$(GLSRC)gxfmap.h
-$(GLSRC)gzacpath.h:$(GLSRC)gxftype.h
+$(GLSRC)gzacpath.h:$(GLSRC)gxbcache.h
+$(GLSRC)gzacpath.h:$(GLSRC)gsropt.h
+$(GLSRC)gzacpath.h:$(GLSRC)gxdda.h
+$(GLSRC)gzacpath.h:$(GLSRC)gxpath.h
$(GLSRC)gzacpath.h:$(GLSRC)gxfrac.h
+$(GLSRC)gzacpath.h:$(GLSRC)gxtmap.h
+$(GLSRC)gzacpath.h:$(GLSRC)gxftype.h
$(GLSRC)gzacpath.h:$(GLSRC)gscms.h
-$(GLSRC)gzacpath.h:$(GLSRC)gscspace.h
-$(GLSRC)gzacpath.h:$(GLSRC)gxpath.h
-$(GLSRC)gzacpath.h:$(GLSRC)gxbcache.h
-$(GLSRC)gzacpath.h:$(GLSRC)gsdevice.h
-$(GLSRC)gzacpath.h:$(GLSRC)gxarith.h
-$(GLSRC)gzacpath.h:$(GLSRC)gspenum.h
-$(GLSRC)gzacpath.h:$(GLSRC)gxhttile.h
$(GLSRC)gzacpath.h:$(GLSRC)gsrect.h
$(GLSRC)gzacpath.h:$(GLSRC)gslparam.h
+$(GLSRC)gzacpath.h:$(GLSRC)gsdevice.h
+$(GLSRC)gzacpath.h:$(GLSRC)gscpm.h
+$(GLSRC)gzacpath.h:$(GLSRC)gscspace.h
+$(GLSRC)gzacpath.h:$(GLSRC)gsgstate.h
$(GLSRC)gzacpath.h:$(GLSRC)gsxfont.h
-$(GLSRC)gzacpath.h:$(GLSRC)gsiparam.h
$(GLSRC)gzacpath.h:$(GLSRC)gsdsrc.h
-$(GLSRC)gzacpath.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gzacpath.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gzacpath.h:$(GLSRC)gscpm.h
+$(GLSRC)gzacpath.h:$(GLSRC)gsiparam.h
$(GLSRC)gzacpath.h:$(GLSRC)gxfixed.h
-$(GLSRC)gzacpath.h:$(GLSRC)gsrefct.h
+$(GLSRC)gzacpath.h:$(GLSRC)gscompt.h
+$(GLSRC)gzacpath.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gzacpath.h:$(GLSRC)gspenum.h
+$(GLSRC)gzacpath.h:$(GLSRC)gxhttile.h
$(GLSRC)gzacpath.h:$(GLSRC)gsparam.h
+$(GLSRC)gzacpath.h:$(GLSRC)gsrefct.h
$(GLSRC)gzacpath.h:$(GLSRC)gp.h
-$(GLSRC)gzacpath.h:$(GLSRC)gsccolor.h
+$(GLSRC)gzacpath.h:$(GLSRC)memento.h
+$(GLSRC)gzacpath.h:$(GLSRC)memory_.h
+$(GLSRC)gzacpath.h:$(GLSRC)gsuid.h
$(GLSRC)gzacpath.h:$(GLSRC)gsstruct.h
$(GLSRC)gzacpath.h:$(GLSRC)gxsync.h
+$(GLSRC)gzacpath.h:$(GLSRC)gxbitmap.h
$(GLSRC)gzacpath.h:$(GLSRC)srdline.h
$(GLSRC)gzacpath.h:$(GLSRC)scommon.h
-$(GLSRC)gzacpath.h:$(GLSRC)memento.h
-$(GLSRC)gzacpath.h:$(GLSRC)gscsel.h
$(GLSRC)gzacpath.h:$(GLSRC)gsbitmap.h
-$(GLSRC)gzacpath.h:$(GLSRC)gsstype.h
+$(GLSRC)gzacpath.h:$(GLSRC)gsccolor.h
+$(GLSRC)gzacpath.h:$(GLSRC)gxarith.h
$(GLSRC)gzacpath.h:$(GLSRC)stat_.h
-$(GLSRC)gzacpath.h:$(GLSRC)gxtmap.h
-$(GLSRC)gzacpath.h:$(GLSRC)gsmemory.h
$(GLSRC)gzacpath.h:$(GLSRC)gpsync.h
-$(GLSRC)gzacpath.h:$(GLSRC)memory_.h
+$(GLSRC)gzacpath.h:$(GLSRC)gsstype.h
+$(GLSRC)gzacpath.h:$(GLSRC)gsmemory.h
$(GLSRC)gzacpath.h:$(GLSRC)gpgetenv.h
-$(GLSRC)gzacpath.h:$(GLSRC)gslibctx.h
$(GLSRC)gzacpath.h:$(GLSRC)gscdefs.h
-$(GLSRC)gzacpath.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gzacpath.h:$(GLSRC)stdio_.h
-$(GLSRC)gzacpath.h:$(GLSRC)gscompt.h
+$(GLSRC)gzacpath.h:$(GLSRC)gslibctx.h
$(GLSRC)gzacpath.h:$(GLSRC)gxcindex.h
-$(GLSRC)gzacpath.h:$(GLSRC)gsgstate.h
+$(GLSRC)gzacpath.h:$(GLSRC)stdio_.h
+$(GLSRC)gzacpath.h:$(GLSRC)gsccode.h
$(GLSRC)gzacpath.h:$(GLSRC)stdint_.h
$(GLSRC)gzacpath.h:$(GLSRC)gssprintf.h
-$(GLSRC)gzacpath.h:$(GLSRC)gsccode.h
-$(GLSRC)gzacpath.h:$(GLSRC)std.h
$(GLSRC)gzacpath.h:$(GLSRC)gstypes.h
+$(GLSRC)gzacpath.h:$(GLSRC)std.h
$(GLSRC)gzacpath.h:$(GLSRC)stdpre.h
$(GLSRC)gzacpath.h:$(GLGEN)arch.h
+$(GLSRC)gzacpath.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gzcpath.h:$(GLSRC)gzpath.h
$(GLSRC)gzcpath.h:$(GLSRC)gxcpath.h
$(GLSRC)gzcpath.h:$(GLSRC)gxdevcli.h
+$(GLSRC)gzcpath.h:$(GLSRC)gxcmap.h
$(GLSRC)gzcpath.h:$(GLSRC)gxtext.h
$(GLSRC)gzcpath.h:$(GLSRC)gstext.h
$(GLSRC)gzcpath.h:$(GLSRC)gsnamecl.h
$(GLSRC)gzcpath.h:$(GLSRC)gstparam.h
-$(GLSRC)gzcpath.h:$(GLSRC)gxfcache.h
-$(GLSRC)gzcpath.h:$(GLSRC)gxcspace.h
-$(GLSRC)gzcpath.h:$(GLSRC)gsropt.h
+$(GLSRC)gzcpath.h:$(GLSRC)gxfmap.h
$(GLSRC)gzcpath.h:$(GLSRC)gsfunc.h
+$(GLSRC)gzcpath.h:$(GLSRC)gxcspace.h
$(GLSRC)gzcpath.h:$(GLSRC)gxrplane.h
-$(GLSRC)gzcpath.h:$(GLSRC)gsuid.h
-$(GLSRC)gzcpath.h:$(GLSRC)gxcmap.h
+$(GLSRC)gzcpath.h:$(GLSRC)gscsel.h
+$(GLSRC)gzcpath.h:$(GLSRC)gxfcache.h
+$(GLSRC)gzcpath.h:$(GLSRC)gsfont.h
$(GLSRC)gzcpath.h:$(GLSRC)gsimage.h
$(GLSRC)gzcpath.h:$(GLSRC)gsdcolor.h
-$(GLSRC)gzcpath.h:$(GLSRC)gxdda.h
$(GLSRC)gzcpath.h:$(GLSRC)gxcvalue.h
-$(GLSRC)gzcpath.h:$(GLSRC)gsfont.h
-$(GLSRC)gzcpath.h:$(GLSRC)gxfmap.h
-$(GLSRC)gzcpath.h:$(GLSRC)gxftype.h
+$(GLSRC)gzcpath.h:$(GLSRC)gxbcache.h
+$(GLSRC)gzcpath.h:$(GLSRC)gsropt.h
+$(GLSRC)gzcpath.h:$(GLSRC)gxdda.h
+$(GLSRC)gzcpath.h:$(GLSRC)gxpath.h
$(GLSRC)gzcpath.h:$(GLSRC)gxfrac.h
+$(GLSRC)gzcpath.h:$(GLSRC)gxtmap.h
+$(GLSRC)gzcpath.h:$(GLSRC)gxftype.h
$(GLSRC)gzcpath.h:$(GLSRC)gscms.h
-$(GLSRC)gzcpath.h:$(GLSRC)gscspace.h
-$(GLSRC)gzcpath.h:$(GLSRC)gxpath.h
-$(GLSRC)gzcpath.h:$(GLSRC)gxbcache.h
-$(GLSRC)gzcpath.h:$(GLSRC)gsdevice.h
-$(GLSRC)gzcpath.h:$(GLSRC)gxarith.h
-$(GLSRC)gzcpath.h:$(GLSRC)gspenum.h
-$(GLSRC)gzcpath.h:$(GLSRC)gxhttile.h
$(GLSRC)gzcpath.h:$(GLSRC)gsrect.h
$(GLSRC)gzcpath.h:$(GLSRC)gslparam.h
+$(GLSRC)gzcpath.h:$(GLSRC)gsdevice.h
+$(GLSRC)gzcpath.h:$(GLSRC)gscpm.h
+$(GLSRC)gzcpath.h:$(GLSRC)gscspace.h
+$(GLSRC)gzcpath.h:$(GLSRC)gsgstate.h
$(GLSRC)gzcpath.h:$(GLSRC)gsxfont.h
-$(GLSRC)gzcpath.h:$(GLSRC)gsiparam.h
$(GLSRC)gzcpath.h:$(GLSRC)gsdsrc.h
-$(GLSRC)gzcpath.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gzcpath.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gzcpath.h:$(GLSRC)gscpm.h
+$(GLSRC)gzcpath.h:$(GLSRC)gsiparam.h
$(GLSRC)gzcpath.h:$(GLSRC)gxfixed.h
-$(GLSRC)gzcpath.h:$(GLSRC)gsrefct.h
+$(GLSRC)gzcpath.h:$(GLSRC)gscompt.h
+$(GLSRC)gzcpath.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gzcpath.h:$(GLSRC)gspenum.h
+$(GLSRC)gzcpath.h:$(GLSRC)gxhttile.h
$(GLSRC)gzcpath.h:$(GLSRC)gsparam.h
+$(GLSRC)gzcpath.h:$(GLSRC)gsrefct.h
$(GLSRC)gzcpath.h:$(GLSRC)gp.h
-$(GLSRC)gzcpath.h:$(GLSRC)gsccolor.h
+$(GLSRC)gzcpath.h:$(GLSRC)memento.h
+$(GLSRC)gzcpath.h:$(GLSRC)memory_.h
+$(GLSRC)gzcpath.h:$(GLSRC)gsuid.h
$(GLSRC)gzcpath.h:$(GLSRC)gsstruct.h
$(GLSRC)gzcpath.h:$(GLSRC)gxsync.h
+$(GLSRC)gzcpath.h:$(GLSRC)gxbitmap.h
$(GLSRC)gzcpath.h:$(GLSRC)srdline.h
$(GLSRC)gzcpath.h:$(GLSRC)scommon.h
-$(GLSRC)gzcpath.h:$(GLSRC)memento.h
-$(GLSRC)gzcpath.h:$(GLSRC)gscsel.h
$(GLSRC)gzcpath.h:$(GLSRC)gsbitmap.h
-$(GLSRC)gzcpath.h:$(GLSRC)gsstype.h
+$(GLSRC)gzcpath.h:$(GLSRC)gsccolor.h
+$(GLSRC)gzcpath.h:$(GLSRC)gxarith.h
$(GLSRC)gzcpath.h:$(GLSRC)stat_.h
-$(GLSRC)gzcpath.h:$(GLSRC)gxtmap.h
-$(GLSRC)gzcpath.h:$(GLSRC)gsmemory.h
$(GLSRC)gzcpath.h:$(GLSRC)gpsync.h
-$(GLSRC)gzcpath.h:$(GLSRC)memory_.h
+$(GLSRC)gzcpath.h:$(GLSRC)gsstype.h
+$(GLSRC)gzcpath.h:$(GLSRC)gsmemory.h
$(GLSRC)gzcpath.h:$(GLSRC)gpgetenv.h
-$(GLSRC)gzcpath.h:$(GLSRC)gslibctx.h
$(GLSRC)gzcpath.h:$(GLSRC)gscdefs.h
-$(GLSRC)gzcpath.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gzcpath.h:$(GLSRC)stdio_.h
-$(GLSRC)gzcpath.h:$(GLSRC)gscompt.h
+$(GLSRC)gzcpath.h:$(GLSRC)gslibctx.h
$(GLSRC)gzcpath.h:$(GLSRC)gxcindex.h
-$(GLSRC)gzcpath.h:$(GLSRC)gsgstate.h
+$(GLSRC)gzcpath.h:$(GLSRC)stdio_.h
+$(GLSRC)gzcpath.h:$(GLSRC)gsccode.h
$(GLSRC)gzcpath.h:$(GLSRC)stdint_.h
$(GLSRC)gzcpath.h:$(GLSRC)gssprintf.h
-$(GLSRC)gzcpath.h:$(GLSRC)gsccode.h
-$(GLSRC)gzcpath.h:$(GLSRC)std.h
$(GLSRC)gzcpath.h:$(GLSRC)gstypes.h
+$(GLSRC)gzcpath.h:$(GLSRC)std.h
$(GLSRC)gzcpath.h:$(GLSRC)stdpre.h
$(GLSRC)gzcpath.h:$(GLGEN)arch.h
+$(GLSRC)gzcpath.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gzht.h:$(GLSRC)gxdht.h
$(GLSRC)gzht.h:$(GLSRC)gxht.h
$(GLSRC)gzht.h:$(GLSRC)gxhttype.h
$(GLSRC)gzht.h:$(GLSRC)gsht1.h
$(GLSRC)gzht.h:$(GLSRC)gsht.h
$(GLSRC)gzht.h:$(GLSRC)gxdevcli.h
+$(GLSRC)gzht.h:$(GLSRC)gxcmap.h
$(GLSRC)gzht.h:$(GLSRC)gxtext.h
$(GLSRC)gzht.h:$(GLSRC)gstext.h
$(GLSRC)gzht.h:$(GLSRC)gsnamecl.h
$(GLSRC)gzht.h:$(GLSRC)gstparam.h
-$(GLSRC)gzht.h:$(GLSRC)gxfcache.h
-$(GLSRC)gzht.h:$(GLSRC)gxcspace.h
-$(GLSRC)gzht.h:$(GLSRC)gsropt.h
+$(GLSRC)gzht.h:$(GLSRC)gxfmap.h
$(GLSRC)gzht.h:$(GLSRC)gsfunc.h
+$(GLSRC)gzht.h:$(GLSRC)gxcspace.h
$(GLSRC)gzht.h:$(GLSRC)gxrplane.h
-$(GLSRC)gzht.h:$(GLSRC)gsuid.h
-$(GLSRC)gzht.h:$(GLSRC)gxcmap.h
+$(GLSRC)gzht.h:$(GLSRC)gscsel.h
+$(GLSRC)gzht.h:$(GLSRC)gxfcache.h
+$(GLSRC)gzht.h:$(GLSRC)gsfont.h
$(GLSRC)gzht.h:$(GLSRC)gsimage.h
$(GLSRC)gzht.h:$(GLSRC)gsdcolor.h
-$(GLSRC)gzht.h:$(GLSRC)gxdda.h
$(GLSRC)gzht.h:$(GLSRC)gxcvalue.h
-$(GLSRC)gzht.h:$(GLSRC)gsfont.h
-$(GLSRC)gzht.h:$(GLSRC)gxfmap.h
-$(GLSRC)gzht.h:$(GLSRC)gxftype.h
+$(GLSRC)gzht.h:$(GLSRC)gxbcache.h
+$(GLSRC)gzht.h:$(GLSRC)gsropt.h
+$(GLSRC)gzht.h:$(GLSRC)gxdda.h
+$(GLSRC)gzht.h:$(GLSRC)gxpath.h
$(GLSRC)gzht.h:$(GLSRC)gxfrac.h
+$(GLSRC)gzht.h:$(GLSRC)gxtmap.h
+$(GLSRC)gzht.h:$(GLSRC)gxftype.h
$(GLSRC)gzht.h:$(GLSRC)gscms.h
-$(GLSRC)gzht.h:$(GLSRC)gscspace.h
-$(GLSRC)gzht.h:$(GLSRC)gxpath.h
-$(GLSRC)gzht.h:$(GLSRC)gxbcache.h
-$(GLSRC)gzht.h:$(GLSRC)gsdevice.h
-$(GLSRC)gzht.h:$(GLSRC)gxarith.h
-$(GLSRC)gzht.h:$(GLSRC)gspenum.h
-$(GLSRC)gzht.h:$(GLSRC)gxhttile.h
$(GLSRC)gzht.h:$(GLSRC)gsrect.h
$(GLSRC)gzht.h:$(GLSRC)gslparam.h
+$(GLSRC)gzht.h:$(GLSRC)gsdevice.h
+$(GLSRC)gzht.h:$(GLSRC)gscpm.h
+$(GLSRC)gzht.h:$(GLSRC)gscspace.h
+$(GLSRC)gzht.h:$(GLSRC)gsgstate.h
$(GLSRC)gzht.h:$(GLSRC)gsxfont.h
-$(GLSRC)gzht.h:$(GLSRC)gsiparam.h
$(GLSRC)gzht.h:$(GLSRC)gsdsrc.h
-$(GLSRC)gzht.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gzht.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gzht.h:$(GLSRC)gscpm.h
+$(GLSRC)gzht.h:$(GLSRC)gsiparam.h
$(GLSRC)gzht.h:$(GLSRC)gxfixed.h
-$(GLSRC)gzht.h:$(GLSRC)gsrefct.h
+$(GLSRC)gzht.h:$(GLSRC)gscompt.h
+$(GLSRC)gzht.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gzht.h:$(GLSRC)gspenum.h
+$(GLSRC)gzht.h:$(GLSRC)gxhttile.h
$(GLSRC)gzht.h:$(GLSRC)gsparam.h
+$(GLSRC)gzht.h:$(GLSRC)gsrefct.h
$(GLSRC)gzht.h:$(GLSRC)gp.h
-$(GLSRC)gzht.h:$(GLSRC)gsccolor.h
+$(GLSRC)gzht.h:$(GLSRC)memento.h
+$(GLSRC)gzht.h:$(GLSRC)memory_.h
+$(GLSRC)gzht.h:$(GLSRC)gsuid.h
$(GLSRC)gzht.h:$(GLSRC)gsstruct.h
$(GLSRC)gzht.h:$(GLSRC)gxsync.h
+$(GLSRC)gzht.h:$(GLSRC)gxbitmap.h
$(GLSRC)gzht.h:$(GLSRC)srdline.h
$(GLSRC)gzht.h:$(GLSRC)scommon.h
-$(GLSRC)gzht.h:$(GLSRC)memento.h
-$(GLSRC)gzht.h:$(GLSRC)gscsel.h
$(GLSRC)gzht.h:$(GLSRC)gsbitmap.h
-$(GLSRC)gzht.h:$(GLSRC)gsstype.h
+$(GLSRC)gzht.h:$(GLSRC)gsccolor.h
+$(GLSRC)gzht.h:$(GLSRC)gxarith.h
$(GLSRC)gzht.h:$(GLSRC)stat_.h
-$(GLSRC)gzht.h:$(GLSRC)gxtmap.h
-$(GLSRC)gzht.h:$(GLSRC)gsmemory.h
$(GLSRC)gzht.h:$(GLSRC)gpsync.h
-$(GLSRC)gzht.h:$(GLSRC)memory_.h
+$(GLSRC)gzht.h:$(GLSRC)gsstype.h
+$(GLSRC)gzht.h:$(GLSRC)gsmemory.h
$(GLSRC)gzht.h:$(GLSRC)gpgetenv.h
-$(GLSRC)gzht.h:$(GLSRC)gslibctx.h
$(GLSRC)gzht.h:$(GLSRC)gscdefs.h
-$(GLSRC)gzht.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gzht.h:$(GLSRC)stdio_.h
-$(GLSRC)gzht.h:$(GLSRC)gscompt.h
+$(GLSRC)gzht.h:$(GLSRC)gslibctx.h
$(GLSRC)gzht.h:$(GLSRC)gxcindex.h
-$(GLSRC)gzht.h:$(GLSRC)gsgstate.h
+$(GLSRC)gzht.h:$(GLSRC)stdio_.h
+$(GLSRC)gzht.h:$(GLSRC)gsccode.h
$(GLSRC)gzht.h:$(GLSRC)stdint_.h
$(GLSRC)gzht.h:$(GLSRC)gssprintf.h
-$(GLSRC)gzht.h:$(GLSRC)gsccode.h
-$(GLSRC)gzht.h:$(GLSRC)std.h
$(GLSRC)gzht.h:$(GLSRC)gstypes.h
+$(GLSRC)gzht.h:$(GLSRC)std.h
$(GLSRC)gzht.h:$(GLSRC)stdpre.h
$(GLSRC)gzht.h:$(GLGEN)arch.h
+$(GLSRC)gzht.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gzline.h:$(GLSRC)gxline.h
$(GLSRC)gzline.h:$(GLSRC)math_.h
$(GLSRC)gzline.h:$(GLSRC)gslparam.h
+$(GLSRC)gzline.h:$(GLSRC)gsgstate.h
$(GLSRC)gzline.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gzline.h:$(GLSRC)scommon.h
$(GLSRC)gzline.h:$(GLSRC)vmsmath.h
+$(GLSRC)gzline.h:$(GLSRC)scommon.h
$(GLSRC)gzline.h:$(GLSRC)gsstype.h
$(GLSRC)gzline.h:$(GLSRC)gsmemory.h
$(GLSRC)gzline.h:$(GLSRC)gslibctx.h
-$(GLSRC)gzline.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gzline.h:$(GLSRC)stdio_.h
-$(GLSRC)gzline.h:$(GLSRC)gsgstate.h
$(GLSRC)gzline.h:$(GLSRC)stdint_.h
$(GLSRC)gzline.h:$(GLSRC)gssprintf.h
-$(GLSRC)gzline.h:$(GLSRC)std.h
$(GLSRC)gzline.h:$(GLSRC)gstypes.h
+$(GLSRC)gzline.h:$(GLSRC)std.h
$(GLSRC)gzline.h:$(GLSRC)stdpre.h
$(GLSRC)gzline.h:$(GLGEN)arch.h
+$(GLSRC)gzline.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gzpath.h:$(GLSRC)gxpath.h
-$(GLSRC)gzpath.h:$(GLSRC)gspenum.h
$(GLSRC)gzpath.h:$(GLSRC)gsrect.h
$(GLSRC)gzpath.h:$(GLSRC)gslparam.h
-$(GLSRC)gzpath.h:$(GLSRC)gsmatrix.h
$(GLSRC)gzpath.h:$(GLSRC)gscpm.h
+$(GLSRC)gzpath.h:$(GLSRC)gsgstate.h
$(GLSRC)gzpath.h:$(GLSRC)gxfixed.h
+$(GLSRC)gzpath.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gzpath.h:$(GLSRC)gspenum.h
$(GLSRC)gzpath.h:$(GLSRC)gsrefct.h
-$(GLSRC)gzpath.h:$(GLSRC)scommon.h
$(GLSRC)gzpath.h:$(GLSRC)memento.h
+$(GLSRC)gzpath.h:$(GLSRC)scommon.h
$(GLSRC)gzpath.h:$(GLSRC)gsstype.h
$(GLSRC)gzpath.h:$(GLSRC)gsmemory.h
$(GLSRC)gzpath.h:$(GLSRC)gslibctx.h
-$(GLSRC)gzpath.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gzpath.h:$(GLSRC)stdio_.h
-$(GLSRC)gzpath.h:$(GLSRC)gsgstate.h
$(GLSRC)gzpath.h:$(GLSRC)stdint_.h
$(GLSRC)gzpath.h:$(GLSRC)gssprintf.h
-$(GLSRC)gzpath.h:$(GLSRC)std.h
$(GLSRC)gzpath.h:$(GLSRC)gstypes.h
+$(GLSRC)gzpath.h:$(GLSRC)std.h
$(GLSRC)gzpath.h:$(GLSRC)stdpre.h
$(GLSRC)gzpath.h:$(GLGEN)arch.h
+$(GLSRC)gzpath.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gzstate.h:$(GLSRC)gsstate.h
$(GLSRC)gzstate.h:$(GLSRC)gsovrc.h
$(GLSRC)gzstate.h:$(GLSRC)gxgstate.h
-$(GLSRC)gzstate.h:$(GLSRC)gxline.h
$(GLSRC)gzstate.h:$(GLSRC)gstrans.h
+$(GLSRC)gzstate.h:$(GLSRC)gdevp14.h
+$(GLSRC)gzstate.h:$(GLSRC)gxline.h
$(GLSRC)gzstate.h:$(GLSRC)gscolor.h
$(GLSRC)gzstate.h:$(GLSRC)gsht1.h
+$(GLSRC)gzstate.h:$(GLSRC)gsline.h
+$(GLSRC)gzstate.h:$(GLSRC)gxcomp.h
$(GLSRC)gzstate.h:$(GLSRC)math_.h
-$(GLSRC)gzstate.h:$(GLSRC)gdevp14.h
$(GLSRC)gzstate.h:$(GLSRC)gxcolor2.h
$(GLSRC)gzstate.h:$(GLSRC)gxpcolor.h
+$(GLSRC)gzstate.h:$(GLSRC)gxdevmem.h
$(GLSRC)gzstate.h:$(GLSRC)gdevdevn.h
-$(GLSRC)gzstate.h:$(GLSRC)gsequivc.h
-$(GLSRC)gzstate.h:$(GLSRC)gxblend.h
$(GLSRC)gzstate.h:$(GLSRC)gxclipsr.h
-$(GLSRC)gzstate.h:$(GLSRC)gxcomp.h
-$(GLSRC)gzstate.h:$(GLSRC)gsline.h
$(GLSRC)gzstate.h:$(GLSRC)gxdcolor.h
-$(GLSRC)gzstate.h:$(GLSRC)gxmatrix.h
-$(GLSRC)gzstate.h:$(GLSRC)gxbitfmt.h
+$(GLSRC)gzstate.h:$(GLSRC)gxblend.h
$(GLSRC)gzstate.h:$(GLSRC)gscolor2.h
-$(GLSRC)gzstate.h:$(GLSRC)gscindex.h
+$(GLSRC)gzstate.h:$(GLSRC)gxmatrix.h
$(GLSRC)gzstate.h:$(GLSRC)gxdevice.h
-$(GLSRC)gzstate.h:$(GLSRC)gsht.h
$(GLSRC)gzstate.h:$(GLSRC)gxcpath.h
-$(GLSRC)gzstate.h:$(GLSRC)gxdevmem.h
+$(GLSRC)gzstate.h:$(GLSRC)gsht.h
+$(GLSRC)gzstate.h:$(GLSRC)gsequivc.h
$(GLSRC)gzstate.h:$(GLSRC)gxdevcli.h
$(GLSRC)gzstate.h:$(GLSRC)gxpcache.h
+$(GLSRC)gzstate.h:$(GLSRC)gscindex.h
+$(GLSRC)gzstate.h:$(GLSRC)gxcmap.h
$(GLSRC)gzstate.h:$(GLSRC)gsptype1.h
-$(GLSRC)gzstate.h:$(GLSRC)gxtext.h
$(GLSRC)gzstate.h:$(GLSRC)gscie.h
+$(GLSRC)gzstate.h:$(GLSRC)gxtext.h
$(GLSRC)gzstate.h:$(GLSRC)gstext.h
+$(GLSRC)gzstate.h:$(GLSRC)gxstate.h
$(GLSRC)gzstate.h:$(GLSRC)gsnamecl.h
$(GLSRC)gzstate.h:$(GLSRC)gstparam.h
-$(GLSRC)gzstate.h:$(GLSRC)gxstate.h
$(GLSRC)gzstate.h:$(GLSRC)gspcolor.h
-$(GLSRC)gzstate.h:$(GLSRC)gxfcache.h
-$(GLSRC)gzstate.h:$(GLSRC)gxcspace.h
-$(GLSRC)gzstate.h:$(GLSRC)gsropt.h
-$(GLSRC)gzstate.h:$(GLSRC)gsfunc.h
+$(GLSRC)gzstate.h:$(GLSRC)gxfmap.h
$(GLSRC)gzstate.h:$(GLSRC)gsmalloc.h
-$(GLSRC)gzstate.h:$(GLSRC)gxrplane.h
+$(GLSRC)gzstate.h:$(GLSRC)gsfunc.h
+$(GLSRC)gzstate.h:$(GLSRC)gxcspace.h
$(GLSRC)gzstate.h:$(GLSRC)gxctable.h
-$(GLSRC)gzstate.h:$(GLSRC)gsuid.h
-$(GLSRC)gzstate.h:$(GLSRC)gxcmap.h
+$(GLSRC)gzstate.h:$(GLSRC)gxrplane.h
+$(GLSRC)gzstate.h:$(GLSRC)gscsel.h
+$(GLSRC)gzstate.h:$(GLSRC)gxfcache.h
+$(GLSRC)gzstate.h:$(GLSRC)gsfont.h
$(GLSRC)gzstate.h:$(GLSRC)gsimage.h
$(GLSRC)gzstate.h:$(GLSRC)gsdcolor.h
-$(GLSRC)gzstate.h:$(GLSRC)gxdda.h
$(GLSRC)gzstate.h:$(GLSRC)gxcvalue.h
-$(GLSRC)gzstate.h:$(GLSRC)gsfont.h
-$(GLSRC)gzstate.h:$(GLSRC)gxfmap.h
+$(GLSRC)gzstate.h:$(GLSRC)gxbcache.h
+$(GLSRC)gzstate.h:$(GLSRC)gsropt.h
+$(GLSRC)gzstate.h:$(GLSRC)gxdda.h
+$(GLSRC)gzstate.h:$(GLSRC)gxpath.h
$(GLSRC)gzstate.h:$(GLSRC)gxiclass.h
-$(GLSRC)gzstate.h:$(GLSRC)gxftype.h
$(GLSRC)gzstate.h:$(GLSRC)gxfrac.h
+$(GLSRC)gzstate.h:$(GLSRC)gxtmap.h
+$(GLSRC)gzstate.h:$(GLSRC)gxftype.h
$(GLSRC)gzstate.h:$(GLSRC)gscms.h
-$(GLSRC)gzstate.h:$(GLSRC)gscspace.h
-$(GLSRC)gzstate.h:$(GLSRC)gxpath.h
-$(GLSRC)gzstate.h:$(GLSRC)gxbcache.h
-$(GLSRC)gzstate.h:$(GLSRC)gsdevice.h
-$(GLSRC)gzstate.h:$(GLSRC)gxarith.h
-$(GLSRC)gzstate.h:$(GLSRC)gxstdio.h
-$(GLSRC)gzstate.h:$(GLSRC)gspenum.h
-$(GLSRC)gzstate.h:$(GLSRC)gxhttile.h
$(GLSRC)gzstate.h:$(GLSRC)gsrect.h
$(GLSRC)gzstate.h:$(GLSRC)gslparam.h
+$(GLSRC)gzstate.h:$(GLSRC)gsdevice.h
+$(GLSRC)gzstate.h:$(GLSRC)gxbitfmt.h
+$(GLSRC)gzstate.h:$(GLSRC)gscpm.h
+$(GLSRC)gzstate.h:$(GLSRC)gscspace.h
+$(GLSRC)gzstate.h:$(GLSRC)gsgstate.h
+$(GLSRC)gzstate.h:$(GLSRC)gxstdio.h
$(GLSRC)gzstate.h:$(GLSRC)gsxfont.h
-$(GLSRC)gzstate.h:$(GLSRC)gsiparam.h
$(GLSRC)gzstate.h:$(GLSRC)gsdsrc.h
$(GLSRC)gzstate.h:$(GLSRC)gsio.h
-$(GLSRC)gzstate.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gzstate.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gzstate.h:$(GLSRC)gscpm.h
+$(GLSRC)gzstate.h:$(GLSRC)gsiparam.h
$(GLSRC)gzstate.h:$(GLSRC)gxfixed.h
-$(GLSRC)gzstate.h:$(GLSRC)gsrefct.h
+$(GLSRC)gzstate.h:$(GLSRC)gscompt.h
+$(GLSRC)gzstate.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gzstate.h:$(GLSRC)gspenum.h
+$(GLSRC)gzstate.h:$(GLSRC)gxhttile.h
$(GLSRC)gzstate.h:$(GLSRC)gsparam.h
+$(GLSRC)gzstate.h:$(GLSRC)gsrefct.h
$(GLSRC)gzstate.h:$(GLSRC)gp.h
-$(GLSRC)gzstate.h:$(GLSRC)gsccolor.h
+$(GLSRC)gzstate.h:$(GLSRC)memento.h
+$(GLSRC)gzstate.h:$(GLSRC)memory_.h
+$(GLSRC)gzstate.h:$(GLSRC)gsuid.h
$(GLSRC)gzstate.h:$(GLSRC)gsstruct.h
$(GLSRC)gzstate.h:$(GLSRC)gxsync.h
+$(GLSRC)gzstate.h:$(GLSRC)gxbitmap.h
+$(GLSRC)gzstate.h:$(GLSRC)vmsmath.h
$(GLSRC)gzstate.h:$(GLSRC)srdline.h
$(GLSRC)gzstate.h:$(GLSRC)scommon.h
-$(GLSRC)gzstate.h:$(GLSRC)memento.h
-$(GLSRC)gzstate.h:$(GLSRC)vmsmath.h
-$(GLSRC)gzstate.h:$(GLSRC)gscsel.h
-$(GLSRC)gzstate.h:$(GLSRC)gsbitmap.h
$(GLSRC)gzstate.h:$(GLSRC)gsfname.h
-$(GLSRC)gzstate.h:$(GLSRC)gsstype.h
+$(GLSRC)gzstate.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gzstate.h:$(GLSRC)gsccolor.h
+$(GLSRC)gzstate.h:$(GLSRC)gxarith.h
$(GLSRC)gzstate.h:$(GLSRC)stat_.h
-$(GLSRC)gzstate.h:$(GLSRC)gxtmap.h
-$(GLSRC)gzstate.h:$(GLSRC)gsmemory.h
$(GLSRC)gzstate.h:$(GLSRC)gpsync.h
-$(GLSRC)gzstate.h:$(GLSRC)memory_.h
+$(GLSRC)gzstate.h:$(GLSRC)gsstype.h
+$(GLSRC)gzstate.h:$(GLSRC)gsmemory.h
$(GLSRC)gzstate.h:$(GLSRC)gpgetenv.h
-$(GLSRC)gzstate.h:$(GLSRC)gslibctx.h
$(GLSRC)gzstate.h:$(GLSRC)gscdefs.h
-$(GLSRC)gzstate.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gzstate.h:$(GLSRC)stdio_.h
-$(GLSRC)gzstate.h:$(GLSRC)gscompt.h
+$(GLSRC)gzstate.h:$(GLSRC)gslibctx.h
$(GLSRC)gzstate.h:$(GLSRC)gxcindex.h
-$(GLSRC)gzstate.h:$(GLSRC)gsgstate.h
+$(GLSRC)gzstate.h:$(GLSRC)stdio_.h
+$(GLSRC)gzstate.h:$(GLSRC)gsccode.h
$(GLSRC)gzstate.h:$(GLSRC)stdint_.h
$(GLSRC)gzstate.h:$(GLSRC)gssprintf.h
-$(GLSRC)gzstate.h:$(GLSRC)gsccode.h
-$(GLSRC)gzstate.h:$(GLSRC)std.h
$(GLSRC)gzstate.h:$(GLSRC)gstypes.h
+$(GLSRC)gzstate.h:$(GLSRC)std.h
$(GLSRC)gzstate.h:$(GLSRC)stdpre.h
$(GLSRC)gzstate.h:$(GLGEN)arch.h
+$(GLSRC)gzstate.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gdevbbox.h:$(GLSRC)gxdevcli.h
+$(GLSRC)gdevbbox.h:$(GLSRC)gxcmap.h
$(GLSRC)gdevbbox.h:$(GLSRC)gxtext.h
$(GLSRC)gdevbbox.h:$(GLSRC)gstext.h
$(GLSRC)gdevbbox.h:$(GLSRC)gsnamecl.h
$(GLSRC)gdevbbox.h:$(GLSRC)gstparam.h
-$(GLSRC)gdevbbox.h:$(GLSRC)gxfcache.h
-$(GLSRC)gdevbbox.h:$(GLSRC)gxcspace.h
-$(GLSRC)gdevbbox.h:$(GLSRC)gsropt.h
+$(GLSRC)gdevbbox.h:$(GLSRC)gxfmap.h
$(GLSRC)gdevbbox.h:$(GLSRC)gsfunc.h
+$(GLSRC)gdevbbox.h:$(GLSRC)gxcspace.h
$(GLSRC)gdevbbox.h:$(GLSRC)gxrplane.h
-$(GLSRC)gdevbbox.h:$(GLSRC)gsuid.h
-$(GLSRC)gdevbbox.h:$(GLSRC)gxcmap.h
+$(GLSRC)gdevbbox.h:$(GLSRC)gscsel.h
+$(GLSRC)gdevbbox.h:$(GLSRC)gxfcache.h
+$(GLSRC)gdevbbox.h:$(GLSRC)gsfont.h
$(GLSRC)gdevbbox.h:$(GLSRC)gsimage.h
$(GLSRC)gdevbbox.h:$(GLSRC)gsdcolor.h
-$(GLSRC)gdevbbox.h:$(GLSRC)gxdda.h
$(GLSRC)gdevbbox.h:$(GLSRC)gxcvalue.h
-$(GLSRC)gdevbbox.h:$(GLSRC)gsfont.h
-$(GLSRC)gdevbbox.h:$(GLSRC)gxfmap.h
-$(GLSRC)gdevbbox.h:$(GLSRC)gxftype.h
+$(GLSRC)gdevbbox.h:$(GLSRC)gxbcache.h
+$(GLSRC)gdevbbox.h:$(GLSRC)gsropt.h
+$(GLSRC)gdevbbox.h:$(GLSRC)gxdda.h
+$(GLSRC)gdevbbox.h:$(GLSRC)gxpath.h
$(GLSRC)gdevbbox.h:$(GLSRC)gxfrac.h
+$(GLSRC)gdevbbox.h:$(GLSRC)gxtmap.h
+$(GLSRC)gdevbbox.h:$(GLSRC)gxftype.h
$(GLSRC)gdevbbox.h:$(GLSRC)gscms.h
-$(GLSRC)gdevbbox.h:$(GLSRC)gscspace.h
-$(GLSRC)gdevbbox.h:$(GLSRC)gxpath.h
-$(GLSRC)gdevbbox.h:$(GLSRC)gxbcache.h
-$(GLSRC)gdevbbox.h:$(GLSRC)gsdevice.h
-$(GLSRC)gdevbbox.h:$(GLSRC)gxarith.h
-$(GLSRC)gdevbbox.h:$(GLSRC)gspenum.h
-$(GLSRC)gdevbbox.h:$(GLSRC)gxhttile.h
$(GLSRC)gdevbbox.h:$(GLSRC)gsrect.h
$(GLSRC)gdevbbox.h:$(GLSRC)gslparam.h
+$(GLSRC)gdevbbox.h:$(GLSRC)gsdevice.h
+$(GLSRC)gdevbbox.h:$(GLSRC)gscpm.h
+$(GLSRC)gdevbbox.h:$(GLSRC)gscspace.h
+$(GLSRC)gdevbbox.h:$(GLSRC)gsgstate.h
$(GLSRC)gdevbbox.h:$(GLSRC)gsxfont.h
-$(GLSRC)gdevbbox.h:$(GLSRC)gsiparam.h
$(GLSRC)gdevbbox.h:$(GLSRC)gsdsrc.h
-$(GLSRC)gdevbbox.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gdevbbox.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gdevbbox.h:$(GLSRC)gscpm.h
+$(GLSRC)gdevbbox.h:$(GLSRC)gsiparam.h
$(GLSRC)gdevbbox.h:$(GLSRC)gxfixed.h
-$(GLSRC)gdevbbox.h:$(GLSRC)gsrefct.h
+$(GLSRC)gdevbbox.h:$(GLSRC)gscompt.h
+$(GLSRC)gdevbbox.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gdevbbox.h:$(GLSRC)gspenum.h
+$(GLSRC)gdevbbox.h:$(GLSRC)gxhttile.h
$(GLSRC)gdevbbox.h:$(GLSRC)gsparam.h
+$(GLSRC)gdevbbox.h:$(GLSRC)gsrefct.h
$(GLSRC)gdevbbox.h:$(GLSRC)gp.h
-$(GLSRC)gdevbbox.h:$(GLSRC)gsccolor.h
+$(GLSRC)gdevbbox.h:$(GLSRC)memento.h
+$(GLSRC)gdevbbox.h:$(GLSRC)memory_.h
+$(GLSRC)gdevbbox.h:$(GLSRC)gsuid.h
$(GLSRC)gdevbbox.h:$(GLSRC)gsstruct.h
$(GLSRC)gdevbbox.h:$(GLSRC)gxsync.h
+$(GLSRC)gdevbbox.h:$(GLSRC)gxbitmap.h
$(GLSRC)gdevbbox.h:$(GLSRC)srdline.h
$(GLSRC)gdevbbox.h:$(GLSRC)scommon.h
-$(GLSRC)gdevbbox.h:$(GLSRC)memento.h
-$(GLSRC)gdevbbox.h:$(GLSRC)gscsel.h
$(GLSRC)gdevbbox.h:$(GLSRC)gsbitmap.h
-$(GLSRC)gdevbbox.h:$(GLSRC)gsstype.h
+$(GLSRC)gdevbbox.h:$(GLSRC)gsccolor.h
+$(GLSRC)gdevbbox.h:$(GLSRC)gxarith.h
$(GLSRC)gdevbbox.h:$(GLSRC)stat_.h
-$(GLSRC)gdevbbox.h:$(GLSRC)gxtmap.h
-$(GLSRC)gdevbbox.h:$(GLSRC)gsmemory.h
$(GLSRC)gdevbbox.h:$(GLSRC)gpsync.h
-$(GLSRC)gdevbbox.h:$(GLSRC)memory_.h
+$(GLSRC)gdevbbox.h:$(GLSRC)gsstype.h
+$(GLSRC)gdevbbox.h:$(GLSRC)gsmemory.h
$(GLSRC)gdevbbox.h:$(GLSRC)gpgetenv.h
-$(GLSRC)gdevbbox.h:$(GLSRC)gslibctx.h
$(GLSRC)gdevbbox.h:$(GLSRC)gscdefs.h
-$(GLSRC)gdevbbox.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gdevbbox.h:$(GLSRC)stdio_.h
-$(GLSRC)gdevbbox.h:$(GLSRC)gscompt.h
+$(GLSRC)gdevbbox.h:$(GLSRC)gslibctx.h
$(GLSRC)gdevbbox.h:$(GLSRC)gxcindex.h
-$(GLSRC)gdevbbox.h:$(GLSRC)gsgstate.h
+$(GLSRC)gdevbbox.h:$(GLSRC)stdio_.h
+$(GLSRC)gdevbbox.h:$(GLSRC)gsccode.h
$(GLSRC)gdevbbox.h:$(GLSRC)stdint_.h
$(GLSRC)gdevbbox.h:$(GLSRC)gssprintf.h
-$(GLSRC)gdevbbox.h:$(GLSRC)gsccode.h
-$(GLSRC)gdevbbox.h:$(GLSRC)std.h
$(GLSRC)gdevbbox.h:$(GLSRC)gstypes.h
+$(GLSRC)gdevbbox.h:$(GLSRC)std.h
$(GLSRC)gdevbbox.h:$(GLSRC)stdpre.h
$(GLSRC)gdevbbox.h:$(GLGEN)arch.h
+$(GLSRC)gdevbbox.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gdevmem.h:$(GLSRC)gxbitops.h
$(GLSRC)gdevmem.h:$(GLSRC)gxdevcli.h
+$(GLSRC)gdevmem.h:$(GLSRC)gxcmap.h
$(GLSRC)gdevmem.h:$(GLSRC)gxtext.h
$(GLSRC)gdevmem.h:$(GLSRC)gstext.h
$(GLSRC)gdevmem.h:$(GLSRC)gsnamecl.h
$(GLSRC)gdevmem.h:$(GLSRC)gstparam.h
-$(GLSRC)gdevmem.h:$(GLSRC)gxfcache.h
-$(GLSRC)gdevmem.h:$(GLSRC)gxcspace.h
-$(GLSRC)gdevmem.h:$(GLSRC)gsropt.h
+$(GLSRC)gdevmem.h:$(GLSRC)gxfmap.h
$(GLSRC)gdevmem.h:$(GLSRC)gsfunc.h
+$(GLSRC)gdevmem.h:$(GLSRC)gxcspace.h
$(GLSRC)gdevmem.h:$(GLSRC)gxrplane.h
-$(GLSRC)gdevmem.h:$(GLSRC)gsuid.h
-$(GLSRC)gdevmem.h:$(GLSRC)gxcmap.h
+$(GLSRC)gdevmem.h:$(GLSRC)gscsel.h
+$(GLSRC)gdevmem.h:$(GLSRC)gxfcache.h
+$(GLSRC)gdevmem.h:$(GLSRC)gsfont.h
$(GLSRC)gdevmem.h:$(GLSRC)gsimage.h
$(GLSRC)gdevmem.h:$(GLSRC)gsdcolor.h
-$(GLSRC)gdevmem.h:$(GLSRC)gxdda.h
$(GLSRC)gdevmem.h:$(GLSRC)gxcvalue.h
-$(GLSRC)gdevmem.h:$(GLSRC)gsfont.h
-$(GLSRC)gdevmem.h:$(GLSRC)gxfmap.h
-$(GLSRC)gdevmem.h:$(GLSRC)gxftype.h
+$(GLSRC)gdevmem.h:$(GLSRC)gxbcache.h
+$(GLSRC)gdevmem.h:$(GLSRC)gsropt.h
+$(GLSRC)gdevmem.h:$(GLSRC)gxdda.h
+$(GLSRC)gdevmem.h:$(GLSRC)gxpath.h
$(GLSRC)gdevmem.h:$(GLSRC)gxfrac.h
+$(GLSRC)gdevmem.h:$(GLSRC)gxtmap.h
+$(GLSRC)gdevmem.h:$(GLSRC)gxftype.h
$(GLSRC)gdevmem.h:$(GLSRC)gscms.h
-$(GLSRC)gdevmem.h:$(GLSRC)gscspace.h
-$(GLSRC)gdevmem.h:$(GLSRC)gxpath.h
-$(GLSRC)gdevmem.h:$(GLSRC)gxbcache.h
-$(GLSRC)gdevmem.h:$(GLSRC)gsdevice.h
-$(GLSRC)gdevmem.h:$(GLSRC)gxarith.h
-$(GLSRC)gdevmem.h:$(GLSRC)gspenum.h
-$(GLSRC)gdevmem.h:$(GLSRC)gxhttile.h
$(GLSRC)gdevmem.h:$(GLSRC)gsrect.h
$(GLSRC)gdevmem.h:$(GLSRC)gslparam.h
+$(GLSRC)gdevmem.h:$(GLSRC)gsdevice.h
+$(GLSRC)gdevmem.h:$(GLSRC)gscpm.h
+$(GLSRC)gdevmem.h:$(GLSRC)gscspace.h
+$(GLSRC)gdevmem.h:$(GLSRC)gsgstate.h
$(GLSRC)gdevmem.h:$(GLSRC)gsxfont.h
-$(GLSRC)gdevmem.h:$(GLSRC)gsiparam.h
$(GLSRC)gdevmem.h:$(GLSRC)gsdsrc.h
-$(GLSRC)gdevmem.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gdevmem.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gdevmem.h:$(GLSRC)gscpm.h
+$(GLSRC)gdevmem.h:$(GLSRC)gsiparam.h
$(GLSRC)gdevmem.h:$(GLSRC)gxfixed.h
-$(GLSRC)gdevmem.h:$(GLSRC)gsrefct.h
+$(GLSRC)gdevmem.h:$(GLSRC)gscompt.h
+$(GLSRC)gdevmem.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gdevmem.h:$(GLSRC)gspenum.h
+$(GLSRC)gdevmem.h:$(GLSRC)gxhttile.h
$(GLSRC)gdevmem.h:$(GLSRC)gsparam.h
+$(GLSRC)gdevmem.h:$(GLSRC)gsrefct.h
$(GLSRC)gdevmem.h:$(GLSRC)gp.h
-$(GLSRC)gdevmem.h:$(GLSRC)gsccolor.h
+$(GLSRC)gdevmem.h:$(GLSRC)memento.h
+$(GLSRC)gdevmem.h:$(GLSRC)memory_.h
+$(GLSRC)gdevmem.h:$(GLSRC)gsuid.h
$(GLSRC)gdevmem.h:$(GLSRC)gsstruct.h
$(GLSRC)gdevmem.h:$(GLSRC)gxsync.h
+$(GLSRC)gdevmem.h:$(GLSRC)gxbitmap.h
$(GLSRC)gdevmem.h:$(GLSRC)srdline.h
$(GLSRC)gdevmem.h:$(GLSRC)scommon.h
-$(GLSRC)gdevmem.h:$(GLSRC)memento.h
-$(GLSRC)gdevmem.h:$(GLSRC)gscsel.h
$(GLSRC)gdevmem.h:$(GLSRC)gsbitmap.h
-$(GLSRC)gdevmem.h:$(GLSRC)gsstype.h
+$(GLSRC)gdevmem.h:$(GLSRC)gsccolor.h
+$(GLSRC)gdevmem.h:$(GLSRC)gxarith.h
$(GLSRC)gdevmem.h:$(GLSRC)stat_.h
-$(GLSRC)gdevmem.h:$(GLSRC)gxtmap.h
-$(GLSRC)gdevmem.h:$(GLSRC)gsmemory.h
$(GLSRC)gdevmem.h:$(GLSRC)gpsync.h
-$(GLSRC)gdevmem.h:$(GLSRC)memory_.h
+$(GLSRC)gdevmem.h:$(GLSRC)gsstype.h
+$(GLSRC)gdevmem.h:$(GLSRC)gsmemory.h
$(GLSRC)gdevmem.h:$(GLSRC)gpgetenv.h
-$(GLSRC)gdevmem.h:$(GLSRC)gslibctx.h
-$(GLSRC)gdevmem.h:$(GLSRC)gscdefs.h
-$(GLSRC)gdevmem.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gdevmem.h:$(GLSRC)gsbitops.h
-$(GLSRC)gdevmem.h:$(GLSRC)stdio_.h
-$(GLSRC)gdevmem.h:$(GLSRC)gscompt.h
+$(GLSRC)gdevmem.h:$(GLSRC)gscdefs.h
+$(GLSRC)gdevmem.h:$(GLSRC)gslibctx.h
$(GLSRC)gdevmem.h:$(GLSRC)gxcindex.h
-$(GLSRC)gdevmem.h:$(GLSRC)gsgstate.h
+$(GLSRC)gdevmem.h:$(GLSRC)stdio_.h
+$(GLSRC)gdevmem.h:$(GLSRC)gsccode.h
$(GLSRC)gdevmem.h:$(GLSRC)stdint_.h
$(GLSRC)gdevmem.h:$(GLSRC)gssprintf.h
-$(GLSRC)gdevmem.h:$(GLSRC)gsccode.h
-$(GLSRC)gdevmem.h:$(GLSRC)std.h
$(GLSRC)gdevmem.h:$(GLSRC)gstypes.h
+$(GLSRC)gdevmem.h:$(GLSRC)std.h
$(GLSRC)gdevmem.h:$(GLSRC)stdpre.h
$(GLSRC)gdevmem.h:$(GLGEN)arch.h
+$(GLSRC)gdevmem.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gdevmpla.h:$(GLSRC)gxrplane.h
$(GLSRC)gdevmpla.h:$(GLSRC)gsdevice.h
+$(GLSRC)gdevmpla.h:$(GLSRC)gsgstate.h
$(GLSRC)gdevmpla.h:$(GLSRC)gsmatrix.h
$(GLSRC)gdevmpla.h:$(GLSRC)gsparam.h
$(GLSRC)gdevmpla.h:$(GLSRC)scommon.h
$(GLSRC)gdevmpla.h:$(GLSRC)gsstype.h
$(GLSRC)gdevmpla.h:$(GLSRC)gsmemory.h
$(GLSRC)gdevmpla.h:$(GLSRC)gslibctx.h
-$(GLSRC)gdevmpla.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gdevmpla.h:$(GLSRC)stdio_.h
-$(GLSRC)gdevmpla.h:$(GLSRC)gsgstate.h
$(GLSRC)gdevmpla.h:$(GLSRC)stdint_.h
$(GLSRC)gdevmpla.h:$(GLSRC)gssprintf.h
-$(GLSRC)gdevmpla.h:$(GLSRC)std.h
$(GLSRC)gdevmpla.h:$(GLSRC)gstypes.h
+$(GLSRC)gdevmpla.h:$(GLSRC)std.h
$(GLSRC)gdevmpla.h:$(GLSRC)stdpre.h
$(GLSRC)gdevmpla.h:$(GLGEN)arch.h
+$(GLSRC)gdevmpla.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gdevmrop.h:$(GLSRC)gximage.h
$(GLSRC)gdevmrop.h:$(GLSRC)gxsample.h
$(GLSRC)gdevmrop.h:$(GLSRC)sisparam.h
$(GLSRC)gdevmrop.h:$(GLSRC)gxcpath.h
$(GLSRC)gdevmrop.h:$(GLSRC)gxiparam.h
$(GLSRC)gdevmrop.h:$(GLSRC)gxdevcli.h
+$(GLSRC)gdevmrop.h:$(GLSRC)gxcmap.h
$(GLSRC)gdevmrop.h:$(GLSRC)gxtext.h
$(GLSRC)gdevmrop.h:$(GLSRC)gstext.h
$(GLSRC)gdevmrop.h:$(GLSRC)gsnamecl.h
$(GLSRC)gdevmrop.h:$(GLSRC)gstparam.h
-$(GLSRC)gdevmrop.h:$(GLSRC)gxfcache.h
-$(GLSRC)gdevmrop.h:$(GLSRC)gxcspace.h
-$(GLSRC)gdevmrop.h:$(GLSRC)gsropt.h
+$(GLSRC)gdevmrop.h:$(GLSRC)gxfmap.h
$(GLSRC)gdevmrop.h:$(GLSRC)gsfunc.h
-$(GLSRC)gdevmrop.h:$(GLSRC)gxrplane.h
-$(GLSRC)gdevmrop.h:$(GLSRC)gsuid.h
-$(GLSRC)gdevmrop.h:$(GLSRC)gxcmap.h
+$(GLSRC)gdevmrop.h:$(GLSRC)gxcspace.h
$(GLSRC)gdevmrop.h:$(GLSRC)strimpl.h
+$(GLSRC)gdevmrop.h:$(GLSRC)gxrplane.h
+$(GLSRC)gdevmrop.h:$(GLSRC)gscsel.h
+$(GLSRC)gdevmrop.h:$(GLSRC)gxfcache.h
+$(GLSRC)gdevmrop.h:$(GLSRC)gsfont.h
$(GLSRC)gdevmrop.h:$(GLSRC)gsimage.h
$(GLSRC)gdevmrop.h:$(GLSRC)gsdcolor.h
-$(GLSRC)gdevmrop.h:$(GLSRC)gxdda.h
$(GLSRC)gdevmrop.h:$(GLSRC)gxcvalue.h
-$(GLSRC)gdevmrop.h:$(GLSRC)gsfont.h
-$(GLSRC)gdevmrop.h:$(GLSRC)gxfmap.h
+$(GLSRC)gdevmrop.h:$(GLSRC)gxbcache.h
+$(GLSRC)gdevmrop.h:$(GLSRC)gsropt.h
+$(GLSRC)gdevmrop.h:$(GLSRC)gxdda.h
+$(GLSRC)gdevmrop.h:$(GLSRC)gxpath.h
$(GLSRC)gdevmrop.h:$(GLSRC)gxiclass.h
-$(GLSRC)gdevmrop.h:$(GLSRC)gxftype.h
$(GLSRC)gdevmrop.h:$(GLSRC)gxfrac.h
+$(GLSRC)gdevmrop.h:$(GLSRC)gxtmap.h
+$(GLSRC)gdevmrop.h:$(GLSRC)gxftype.h
$(GLSRC)gdevmrop.h:$(GLSRC)gscms.h
-$(GLSRC)gdevmrop.h:$(GLSRC)gscspace.h
-$(GLSRC)gdevmrop.h:$(GLSRC)gxpath.h
-$(GLSRC)gdevmrop.h:$(GLSRC)gxbcache.h
-$(GLSRC)gdevmrop.h:$(GLSRC)gsdevice.h
-$(GLSRC)gdevmrop.h:$(GLSRC)gxarith.h
-$(GLSRC)gdevmrop.h:$(GLSRC)gspenum.h
-$(GLSRC)gdevmrop.h:$(GLSRC)gxhttile.h
$(GLSRC)gdevmrop.h:$(GLSRC)gsrect.h
$(GLSRC)gdevmrop.h:$(GLSRC)gslparam.h
+$(GLSRC)gdevmrop.h:$(GLSRC)gsdevice.h
+$(GLSRC)gdevmrop.h:$(GLSRC)gscpm.h
+$(GLSRC)gdevmrop.h:$(GLSRC)gscspace.h
+$(GLSRC)gdevmrop.h:$(GLSRC)gsgstate.h
$(GLSRC)gdevmrop.h:$(GLSRC)gsxfont.h
-$(GLSRC)gdevmrop.h:$(GLSRC)gsiparam.h
$(GLSRC)gdevmrop.h:$(GLSRC)gsdsrc.h
-$(GLSRC)gdevmrop.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gdevmrop.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gdevmrop.h:$(GLSRC)gscpm.h
+$(GLSRC)gdevmrop.h:$(GLSRC)gsiparam.h
$(GLSRC)gdevmrop.h:$(GLSRC)gxfixed.h
-$(GLSRC)gdevmrop.h:$(GLSRC)gsrefct.h
+$(GLSRC)gdevmrop.h:$(GLSRC)gscompt.h
+$(GLSRC)gdevmrop.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gdevmrop.h:$(GLSRC)gspenum.h
+$(GLSRC)gdevmrop.h:$(GLSRC)gxhttile.h
$(GLSRC)gdevmrop.h:$(GLSRC)gsparam.h
+$(GLSRC)gdevmrop.h:$(GLSRC)gsrefct.h
$(GLSRC)gdevmrop.h:$(GLSRC)gp.h
-$(GLSRC)gdevmrop.h:$(GLSRC)gsccolor.h
+$(GLSRC)gdevmrop.h:$(GLSRC)memento.h
+$(GLSRC)gdevmrop.h:$(GLSRC)memory_.h
+$(GLSRC)gdevmrop.h:$(GLSRC)gsuid.h
$(GLSRC)gdevmrop.h:$(GLSRC)gsstruct.h
$(GLSRC)gdevmrop.h:$(GLSRC)gxsync.h
+$(GLSRC)gdevmrop.h:$(GLSRC)gxbitmap.h
$(GLSRC)gdevmrop.h:$(GLSRC)srdline.h
$(GLSRC)gdevmrop.h:$(GLSRC)scommon.h
-$(GLSRC)gdevmrop.h:$(GLSRC)memento.h
-$(GLSRC)gdevmrop.h:$(GLSRC)gscsel.h
$(GLSRC)gdevmrop.h:$(GLSRC)gsbitmap.h
-$(GLSRC)gdevmrop.h:$(GLSRC)gsstype.h
+$(GLSRC)gdevmrop.h:$(GLSRC)gsccolor.h
+$(GLSRC)gdevmrop.h:$(GLSRC)gxarith.h
$(GLSRC)gdevmrop.h:$(GLSRC)stat_.h
-$(GLSRC)gdevmrop.h:$(GLSRC)gxtmap.h
-$(GLSRC)gdevmrop.h:$(GLSRC)gsmemory.h
$(GLSRC)gdevmrop.h:$(GLSRC)gpsync.h
-$(GLSRC)gdevmrop.h:$(GLSRC)memory_.h
+$(GLSRC)gdevmrop.h:$(GLSRC)gsstype.h
+$(GLSRC)gdevmrop.h:$(GLSRC)gsmemory.h
$(GLSRC)gdevmrop.h:$(GLSRC)gpgetenv.h
-$(GLSRC)gdevmrop.h:$(GLSRC)gslibctx.h
$(GLSRC)gdevmrop.h:$(GLSRC)gscdefs.h
-$(GLSRC)gdevmrop.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gdevmrop.h:$(GLSRC)stdio_.h
-$(GLSRC)gdevmrop.h:$(GLSRC)gscompt.h
+$(GLSRC)gdevmrop.h:$(GLSRC)gslibctx.h
$(GLSRC)gdevmrop.h:$(GLSRC)gxcindex.h
-$(GLSRC)gdevmrop.h:$(GLSRC)gsgstate.h
+$(GLSRC)gdevmrop.h:$(GLSRC)stdio_.h
+$(GLSRC)gdevmrop.h:$(GLSRC)gsccode.h
$(GLSRC)gdevmrop.h:$(GLSRC)stdint_.h
$(GLSRC)gdevmrop.h:$(GLSRC)gssprintf.h
-$(GLSRC)gdevmrop.h:$(GLSRC)gsccode.h
-$(GLSRC)gdevmrop.h:$(GLSRC)std.h
$(GLSRC)gdevmrop.h:$(GLSRC)gstypes.h
+$(GLSRC)gdevmrop.h:$(GLSRC)std.h
$(GLSRC)gdevmrop.h:$(GLSRC)stdpre.h
$(GLSRC)gdevmrop.h:$(GLGEN)arch.h
+$(GLSRC)gdevmrop.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gdevmrun.h:$(GLSRC)gxdevmem.h
$(GLSRC)gdevmrun.h:$(GLSRC)gxdevcli.h
+$(GLSRC)gdevmrun.h:$(GLSRC)gxcmap.h
$(GLSRC)gdevmrun.h:$(GLSRC)gxtext.h
$(GLSRC)gdevmrun.h:$(GLSRC)gstext.h
$(GLSRC)gdevmrun.h:$(GLSRC)gsnamecl.h
$(GLSRC)gdevmrun.h:$(GLSRC)gstparam.h
-$(GLSRC)gdevmrun.h:$(GLSRC)gxfcache.h
-$(GLSRC)gdevmrun.h:$(GLSRC)gxcspace.h
-$(GLSRC)gdevmrun.h:$(GLSRC)gsropt.h
+$(GLSRC)gdevmrun.h:$(GLSRC)gxfmap.h
$(GLSRC)gdevmrun.h:$(GLSRC)gsfunc.h
+$(GLSRC)gdevmrun.h:$(GLSRC)gxcspace.h
$(GLSRC)gdevmrun.h:$(GLSRC)gxrplane.h
-$(GLSRC)gdevmrun.h:$(GLSRC)gsuid.h
-$(GLSRC)gdevmrun.h:$(GLSRC)gxcmap.h
+$(GLSRC)gdevmrun.h:$(GLSRC)gscsel.h
+$(GLSRC)gdevmrun.h:$(GLSRC)gxfcache.h
+$(GLSRC)gdevmrun.h:$(GLSRC)gsfont.h
$(GLSRC)gdevmrun.h:$(GLSRC)gsimage.h
$(GLSRC)gdevmrun.h:$(GLSRC)gsdcolor.h
-$(GLSRC)gdevmrun.h:$(GLSRC)gxdda.h
$(GLSRC)gdevmrun.h:$(GLSRC)gxcvalue.h
-$(GLSRC)gdevmrun.h:$(GLSRC)gsfont.h
-$(GLSRC)gdevmrun.h:$(GLSRC)gxfmap.h
-$(GLSRC)gdevmrun.h:$(GLSRC)gxftype.h
+$(GLSRC)gdevmrun.h:$(GLSRC)gxbcache.h
+$(GLSRC)gdevmrun.h:$(GLSRC)gsropt.h
+$(GLSRC)gdevmrun.h:$(GLSRC)gxdda.h
+$(GLSRC)gdevmrun.h:$(GLSRC)gxpath.h
$(GLSRC)gdevmrun.h:$(GLSRC)gxfrac.h
+$(GLSRC)gdevmrun.h:$(GLSRC)gxtmap.h
+$(GLSRC)gdevmrun.h:$(GLSRC)gxftype.h
$(GLSRC)gdevmrun.h:$(GLSRC)gscms.h
-$(GLSRC)gdevmrun.h:$(GLSRC)gscspace.h
-$(GLSRC)gdevmrun.h:$(GLSRC)gxpath.h
-$(GLSRC)gdevmrun.h:$(GLSRC)gxbcache.h
-$(GLSRC)gdevmrun.h:$(GLSRC)gsdevice.h
-$(GLSRC)gdevmrun.h:$(GLSRC)gxarith.h
-$(GLSRC)gdevmrun.h:$(GLSRC)gspenum.h
-$(GLSRC)gdevmrun.h:$(GLSRC)gxhttile.h
$(GLSRC)gdevmrun.h:$(GLSRC)gsrect.h
$(GLSRC)gdevmrun.h:$(GLSRC)gslparam.h
+$(GLSRC)gdevmrun.h:$(GLSRC)gsdevice.h
+$(GLSRC)gdevmrun.h:$(GLSRC)gscpm.h
+$(GLSRC)gdevmrun.h:$(GLSRC)gscspace.h
+$(GLSRC)gdevmrun.h:$(GLSRC)gsgstate.h
$(GLSRC)gdevmrun.h:$(GLSRC)gsxfont.h
-$(GLSRC)gdevmrun.h:$(GLSRC)gsiparam.h
$(GLSRC)gdevmrun.h:$(GLSRC)gsdsrc.h
-$(GLSRC)gdevmrun.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gdevmrun.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gdevmrun.h:$(GLSRC)gscpm.h
+$(GLSRC)gdevmrun.h:$(GLSRC)gsiparam.h
$(GLSRC)gdevmrun.h:$(GLSRC)gxfixed.h
-$(GLSRC)gdevmrun.h:$(GLSRC)gsrefct.h
+$(GLSRC)gdevmrun.h:$(GLSRC)gscompt.h
+$(GLSRC)gdevmrun.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gdevmrun.h:$(GLSRC)gspenum.h
+$(GLSRC)gdevmrun.h:$(GLSRC)gxhttile.h
$(GLSRC)gdevmrun.h:$(GLSRC)gsparam.h
+$(GLSRC)gdevmrun.h:$(GLSRC)gsrefct.h
$(GLSRC)gdevmrun.h:$(GLSRC)gp.h
-$(GLSRC)gdevmrun.h:$(GLSRC)gsccolor.h
+$(GLSRC)gdevmrun.h:$(GLSRC)memento.h
+$(GLSRC)gdevmrun.h:$(GLSRC)memory_.h
+$(GLSRC)gdevmrun.h:$(GLSRC)gsuid.h
$(GLSRC)gdevmrun.h:$(GLSRC)gsstruct.h
$(GLSRC)gdevmrun.h:$(GLSRC)gxsync.h
+$(GLSRC)gdevmrun.h:$(GLSRC)gxbitmap.h
$(GLSRC)gdevmrun.h:$(GLSRC)srdline.h
$(GLSRC)gdevmrun.h:$(GLSRC)scommon.h
-$(GLSRC)gdevmrun.h:$(GLSRC)memento.h
-$(GLSRC)gdevmrun.h:$(GLSRC)gscsel.h
$(GLSRC)gdevmrun.h:$(GLSRC)gsbitmap.h
-$(GLSRC)gdevmrun.h:$(GLSRC)gsstype.h
+$(GLSRC)gdevmrun.h:$(GLSRC)gsccolor.h
+$(GLSRC)gdevmrun.h:$(GLSRC)gxarith.h
$(GLSRC)gdevmrun.h:$(GLSRC)stat_.h
-$(GLSRC)gdevmrun.h:$(GLSRC)gxtmap.h
-$(GLSRC)gdevmrun.h:$(GLSRC)gsmemory.h
$(GLSRC)gdevmrun.h:$(GLSRC)gpsync.h
-$(GLSRC)gdevmrun.h:$(GLSRC)memory_.h
+$(GLSRC)gdevmrun.h:$(GLSRC)gsstype.h
+$(GLSRC)gdevmrun.h:$(GLSRC)gsmemory.h
$(GLSRC)gdevmrun.h:$(GLSRC)gpgetenv.h
-$(GLSRC)gdevmrun.h:$(GLSRC)gslibctx.h
$(GLSRC)gdevmrun.h:$(GLSRC)gscdefs.h
-$(GLSRC)gdevmrun.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gdevmrun.h:$(GLSRC)stdio_.h
-$(GLSRC)gdevmrun.h:$(GLSRC)gscompt.h
+$(GLSRC)gdevmrun.h:$(GLSRC)gslibctx.h
$(GLSRC)gdevmrun.h:$(GLSRC)gxcindex.h
-$(GLSRC)gdevmrun.h:$(GLSRC)gsgstate.h
+$(GLSRC)gdevmrun.h:$(GLSRC)stdio_.h
+$(GLSRC)gdevmrun.h:$(GLSRC)gsccode.h
$(GLSRC)gdevmrun.h:$(GLSRC)stdint_.h
$(GLSRC)gdevmrun.h:$(GLSRC)gssprintf.h
-$(GLSRC)gdevmrun.h:$(GLSRC)gsccode.h
-$(GLSRC)gdevmrun.h:$(GLSRC)std.h
$(GLSRC)gdevmrun.h:$(GLSRC)gstypes.h
+$(GLSRC)gdevmrun.h:$(GLSRC)std.h
$(GLSRC)gdevmrun.h:$(GLSRC)stdpre.h
$(GLSRC)gdevmrun.h:$(GLGEN)arch.h
+$(GLSRC)gdevmrun.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gdevplnx.h:$(GLSRC)gxdevcli.h
+$(GLSRC)gdevplnx.h:$(GLSRC)gxcmap.h
$(GLSRC)gdevplnx.h:$(GLSRC)gxtext.h
$(GLSRC)gdevplnx.h:$(GLSRC)gstext.h
$(GLSRC)gdevplnx.h:$(GLSRC)gsnamecl.h
$(GLSRC)gdevplnx.h:$(GLSRC)gstparam.h
-$(GLSRC)gdevplnx.h:$(GLSRC)gxfcache.h
-$(GLSRC)gdevplnx.h:$(GLSRC)gxcspace.h
-$(GLSRC)gdevplnx.h:$(GLSRC)gsropt.h
+$(GLSRC)gdevplnx.h:$(GLSRC)gxfmap.h
$(GLSRC)gdevplnx.h:$(GLSRC)gsfunc.h
+$(GLSRC)gdevplnx.h:$(GLSRC)gxcspace.h
$(GLSRC)gdevplnx.h:$(GLSRC)gxrplane.h
-$(GLSRC)gdevplnx.h:$(GLSRC)gsuid.h
-$(GLSRC)gdevplnx.h:$(GLSRC)gxcmap.h
+$(GLSRC)gdevplnx.h:$(GLSRC)gscsel.h
+$(GLSRC)gdevplnx.h:$(GLSRC)gxfcache.h
+$(GLSRC)gdevplnx.h:$(GLSRC)gsfont.h
$(GLSRC)gdevplnx.h:$(GLSRC)gsimage.h
$(GLSRC)gdevplnx.h:$(GLSRC)gsdcolor.h
-$(GLSRC)gdevplnx.h:$(GLSRC)gxdda.h
$(GLSRC)gdevplnx.h:$(GLSRC)gxcvalue.h
-$(GLSRC)gdevplnx.h:$(GLSRC)gsfont.h
-$(GLSRC)gdevplnx.h:$(GLSRC)gxfmap.h
-$(GLSRC)gdevplnx.h:$(GLSRC)gxftype.h
+$(GLSRC)gdevplnx.h:$(GLSRC)gxbcache.h
+$(GLSRC)gdevplnx.h:$(GLSRC)gsropt.h
+$(GLSRC)gdevplnx.h:$(GLSRC)gxdda.h
+$(GLSRC)gdevplnx.h:$(GLSRC)gxpath.h
$(GLSRC)gdevplnx.h:$(GLSRC)gxfrac.h
+$(GLSRC)gdevplnx.h:$(GLSRC)gxtmap.h
+$(GLSRC)gdevplnx.h:$(GLSRC)gxftype.h
$(GLSRC)gdevplnx.h:$(GLSRC)gscms.h
-$(GLSRC)gdevplnx.h:$(GLSRC)gscspace.h
-$(GLSRC)gdevplnx.h:$(GLSRC)gxpath.h
-$(GLSRC)gdevplnx.h:$(GLSRC)gxbcache.h
-$(GLSRC)gdevplnx.h:$(GLSRC)gsdevice.h
-$(GLSRC)gdevplnx.h:$(GLSRC)gxarith.h
-$(GLSRC)gdevplnx.h:$(GLSRC)gspenum.h
-$(GLSRC)gdevplnx.h:$(GLSRC)gxhttile.h
$(GLSRC)gdevplnx.h:$(GLSRC)gsrect.h
$(GLSRC)gdevplnx.h:$(GLSRC)gslparam.h
+$(GLSRC)gdevplnx.h:$(GLSRC)gsdevice.h
+$(GLSRC)gdevplnx.h:$(GLSRC)gscpm.h
+$(GLSRC)gdevplnx.h:$(GLSRC)gscspace.h
+$(GLSRC)gdevplnx.h:$(GLSRC)gsgstate.h
$(GLSRC)gdevplnx.h:$(GLSRC)gsxfont.h
-$(GLSRC)gdevplnx.h:$(GLSRC)gsiparam.h
$(GLSRC)gdevplnx.h:$(GLSRC)gsdsrc.h
-$(GLSRC)gdevplnx.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gdevplnx.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gdevplnx.h:$(GLSRC)gscpm.h
+$(GLSRC)gdevplnx.h:$(GLSRC)gsiparam.h
$(GLSRC)gdevplnx.h:$(GLSRC)gxfixed.h
-$(GLSRC)gdevplnx.h:$(GLSRC)gsrefct.h
+$(GLSRC)gdevplnx.h:$(GLSRC)gscompt.h
+$(GLSRC)gdevplnx.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gdevplnx.h:$(GLSRC)gspenum.h
+$(GLSRC)gdevplnx.h:$(GLSRC)gxhttile.h
$(GLSRC)gdevplnx.h:$(GLSRC)gsparam.h
+$(GLSRC)gdevplnx.h:$(GLSRC)gsrefct.h
$(GLSRC)gdevplnx.h:$(GLSRC)gp.h
-$(GLSRC)gdevplnx.h:$(GLSRC)gsccolor.h
+$(GLSRC)gdevplnx.h:$(GLSRC)memento.h
+$(GLSRC)gdevplnx.h:$(GLSRC)memory_.h
+$(GLSRC)gdevplnx.h:$(GLSRC)gsuid.h
$(GLSRC)gdevplnx.h:$(GLSRC)gsstruct.h
$(GLSRC)gdevplnx.h:$(GLSRC)gxsync.h
+$(GLSRC)gdevplnx.h:$(GLSRC)gxbitmap.h
$(GLSRC)gdevplnx.h:$(GLSRC)srdline.h
$(GLSRC)gdevplnx.h:$(GLSRC)scommon.h
-$(GLSRC)gdevplnx.h:$(GLSRC)memento.h
-$(GLSRC)gdevplnx.h:$(GLSRC)gscsel.h
$(GLSRC)gdevplnx.h:$(GLSRC)gsbitmap.h
-$(GLSRC)gdevplnx.h:$(GLSRC)gsstype.h
+$(GLSRC)gdevplnx.h:$(GLSRC)gsccolor.h
+$(GLSRC)gdevplnx.h:$(GLSRC)gxarith.h
$(GLSRC)gdevplnx.h:$(GLSRC)stat_.h
-$(GLSRC)gdevplnx.h:$(GLSRC)gxtmap.h
-$(GLSRC)gdevplnx.h:$(GLSRC)gsmemory.h
$(GLSRC)gdevplnx.h:$(GLSRC)gpsync.h
-$(GLSRC)gdevplnx.h:$(GLSRC)memory_.h
+$(GLSRC)gdevplnx.h:$(GLSRC)gsstype.h
+$(GLSRC)gdevplnx.h:$(GLSRC)gsmemory.h
$(GLSRC)gdevplnx.h:$(GLSRC)gpgetenv.h
-$(GLSRC)gdevplnx.h:$(GLSRC)gslibctx.h
$(GLSRC)gdevplnx.h:$(GLSRC)gscdefs.h
-$(GLSRC)gdevplnx.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gdevplnx.h:$(GLSRC)stdio_.h
-$(GLSRC)gdevplnx.h:$(GLSRC)gscompt.h
+$(GLSRC)gdevplnx.h:$(GLSRC)gslibctx.h
$(GLSRC)gdevplnx.h:$(GLSRC)gxcindex.h
-$(GLSRC)gdevplnx.h:$(GLSRC)gsgstate.h
+$(GLSRC)gdevplnx.h:$(GLSRC)stdio_.h
+$(GLSRC)gdevplnx.h:$(GLSRC)gsccode.h
$(GLSRC)gdevplnx.h:$(GLSRC)stdint_.h
$(GLSRC)gdevplnx.h:$(GLSRC)gssprintf.h
-$(GLSRC)gdevplnx.h:$(GLSRC)gsccode.h
-$(GLSRC)gdevplnx.h:$(GLSRC)std.h
$(GLSRC)gdevplnx.h:$(GLSRC)gstypes.h
+$(GLSRC)gdevplnx.h:$(GLSRC)std.h
$(GLSRC)gdevplnx.h:$(GLSRC)stdpre.h
$(GLSRC)gdevplnx.h:$(GLGEN)arch.h
+$(GLSRC)gdevplnx.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gdevepo.h:$(GLSRC)gxdevice.h
$(GLSRC)gdevepo.h:$(GLSRC)gxdevcli.h
+$(GLSRC)gdevepo.h:$(GLSRC)gxcmap.h
$(GLSRC)gdevepo.h:$(GLSRC)gxtext.h
$(GLSRC)gdevepo.h:$(GLSRC)gstext.h
$(GLSRC)gdevepo.h:$(GLSRC)gsnamecl.h
$(GLSRC)gdevepo.h:$(GLSRC)gstparam.h
-$(GLSRC)gdevepo.h:$(GLSRC)gxfcache.h
-$(GLSRC)gdevepo.h:$(GLSRC)gxcspace.h
-$(GLSRC)gdevepo.h:$(GLSRC)gsropt.h
-$(GLSRC)gdevepo.h:$(GLSRC)gsfunc.h
+$(GLSRC)gdevepo.h:$(GLSRC)gxfmap.h
$(GLSRC)gdevepo.h:$(GLSRC)gsmalloc.h
+$(GLSRC)gdevepo.h:$(GLSRC)gsfunc.h
+$(GLSRC)gdevepo.h:$(GLSRC)gxcspace.h
$(GLSRC)gdevepo.h:$(GLSRC)gxrplane.h
-$(GLSRC)gdevepo.h:$(GLSRC)gsuid.h
-$(GLSRC)gdevepo.h:$(GLSRC)gxcmap.h
+$(GLSRC)gdevepo.h:$(GLSRC)gscsel.h
+$(GLSRC)gdevepo.h:$(GLSRC)gxfcache.h
+$(GLSRC)gdevepo.h:$(GLSRC)gsfont.h
$(GLSRC)gdevepo.h:$(GLSRC)gsimage.h
$(GLSRC)gdevepo.h:$(GLSRC)gsdcolor.h
-$(GLSRC)gdevepo.h:$(GLSRC)gxdda.h
$(GLSRC)gdevepo.h:$(GLSRC)gxcvalue.h
-$(GLSRC)gdevepo.h:$(GLSRC)gsfont.h
-$(GLSRC)gdevepo.h:$(GLSRC)gxfmap.h
-$(GLSRC)gdevepo.h:$(GLSRC)gxftype.h
+$(GLSRC)gdevepo.h:$(GLSRC)gxbcache.h
+$(GLSRC)gdevepo.h:$(GLSRC)gsropt.h
+$(GLSRC)gdevepo.h:$(GLSRC)gxdda.h
+$(GLSRC)gdevepo.h:$(GLSRC)gxpath.h
$(GLSRC)gdevepo.h:$(GLSRC)gxfrac.h
+$(GLSRC)gdevepo.h:$(GLSRC)gxtmap.h
+$(GLSRC)gdevepo.h:$(GLSRC)gxftype.h
$(GLSRC)gdevepo.h:$(GLSRC)gscms.h
-$(GLSRC)gdevepo.h:$(GLSRC)gscspace.h
-$(GLSRC)gdevepo.h:$(GLSRC)gxpath.h
-$(GLSRC)gdevepo.h:$(GLSRC)gxbcache.h
-$(GLSRC)gdevepo.h:$(GLSRC)gsdevice.h
-$(GLSRC)gdevepo.h:$(GLSRC)gxarith.h
-$(GLSRC)gdevepo.h:$(GLSRC)gxstdio.h
-$(GLSRC)gdevepo.h:$(GLSRC)gspenum.h
-$(GLSRC)gdevepo.h:$(GLSRC)gxhttile.h
$(GLSRC)gdevepo.h:$(GLSRC)gsrect.h
$(GLSRC)gdevepo.h:$(GLSRC)gslparam.h
+$(GLSRC)gdevepo.h:$(GLSRC)gsdevice.h
+$(GLSRC)gdevepo.h:$(GLSRC)gscpm.h
+$(GLSRC)gdevepo.h:$(GLSRC)gscspace.h
+$(GLSRC)gdevepo.h:$(GLSRC)gsgstate.h
+$(GLSRC)gdevepo.h:$(GLSRC)gxstdio.h
$(GLSRC)gdevepo.h:$(GLSRC)gsxfont.h
-$(GLSRC)gdevepo.h:$(GLSRC)gsiparam.h
$(GLSRC)gdevepo.h:$(GLSRC)gsdsrc.h
$(GLSRC)gdevepo.h:$(GLSRC)gsio.h
-$(GLSRC)gdevepo.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gdevepo.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gdevepo.h:$(GLSRC)gscpm.h
+$(GLSRC)gdevepo.h:$(GLSRC)gsiparam.h
$(GLSRC)gdevepo.h:$(GLSRC)gxfixed.h
-$(GLSRC)gdevepo.h:$(GLSRC)gsrefct.h
+$(GLSRC)gdevepo.h:$(GLSRC)gscompt.h
+$(GLSRC)gdevepo.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gdevepo.h:$(GLSRC)gspenum.h
+$(GLSRC)gdevepo.h:$(GLSRC)gxhttile.h
$(GLSRC)gdevepo.h:$(GLSRC)gsparam.h
+$(GLSRC)gdevepo.h:$(GLSRC)gsrefct.h
$(GLSRC)gdevepo.h:$(GLSRC)gp.h
-$(GLSRC)gdevepo.h:$(GLSRC)gsccolor.h
+$(GLSRC)gdevepo.h:$(GLSRC)memento.h
+$(GLSRC)gdevepo.h:$(GLSRC)memory_.h
+$(GLSRC)gdevepo.h:$(GLSRC)gsuid.h
$(GLSRC)gdevepo.h:$(GLSRC)gsstruct.h
$(GLSRC)gdevepo.h:$(GLSRC)gxsync.h
+$(GLSRC)gdevepo.h:$(GLSRC)gxbitmap.h
$(GLSRC)gdevepo.h:$(GLSRC)srdline.h
$(GLSRC)gdevepo.h:$(GLSRC)scommon.h
-$(GLSRC)gdevepo.h:$(GLSRC)memento.h
-$(GLSRC)gdevepo.h:$(GLSRC)gscsel.h
-$(GLSRC)gdevepo.h:$(GLSRC)gsbitmap.h
$(GLSRC)gdevepo.h:$(GLSRC)gsfname.h
-$(GLSRC)gdevepo.h:$(GLSRC)gsstype.h
+$(GLSRC)gdevepo.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gdevepo.h:$(GLSRC)gsccolor.h
+$(GLSRC)gdevepo.h:$(GLSRC)gxarith.h
$(GLSRC)gdevepo.h:$(GLSRC)stat_.h
-$(GLSRC)gdevepo.h:$(GLSRC)gxtmap.h
-$(GLSRC)gdevepo.h:$(GLSRC)gsmemory.h
$(GLSRC)gdevepo.h:$(GLSRC)gpsync.h
-$(GLSRC)gdevepo.h:$(GLSRC)memory_.h
+$(GLSRC)gdevepo.h:$(GLSRC)gsstype.h
+$(GLSRC)gdevepo.h:$(GLSRC)gsmemory.h
$(GLSRC)gdevepo.h:$(GLSRC)gpgetenv.h
-$(GLSRC)gdevepo.h:$(GLSRC)gslibctx.h
$(GLSRC)gdevepo.h:$(GLSRC)gscdefs.h
-$(GLSRC)gdevepo.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gdevepo.h:$(GLSRC)stdio_.h
-$(GLSRC)gdevepo.h:$(GLSRC)gscompt.h
+$(GLSRC)gdevepo.h:$(GLSRC)gslibctx.h
$(GLSRC)gdevepo.h:$(GLSRC)gxcindex.h
-$(GLSRC)gdevepo.h:$(GLSRC)gsgstate.h
+$(GLSRC)gdevepo.h:$(GLSRC)stdio_.h
+$(GLSRC)gdevepo.h:$(GLSRC)gsccode.h
$(GLSRC)gdevepo.h:$(GLSRC)stdint_.h
$(GLSRC)gdevepo.h:$(GLSRC)gssprintf.h
-$(GLSRC)gdevepo.h:$(GLSRC)gsccode.h
-$(GLSRC)gdevepo.h:$(GLSRC)std.h
$(GLSRC)gdevepo.h:$(GLSRC)gstypes.h
+$(GLSRC)gdevepo.h:$(GLSRC)std.h
$(GLSRC)gdevepo.h:$(GLSRC)stdpre.h
$(GLSRC)gdevepo.h:$(GLGEN)arch.h
+$(GLSRC)gdevepo.h:$(GLSRC)gs_dll_call.h
$(GLSRC)sa85d.h:$(GLSRC)scommon.h
$(GLSRC)sa85d.h:$(GLSRC)gsstype.h
$(GLSRC)sa85d.h:$(GLSRC)gsmemory.h
$(GLSRC)sa85d.h:$(GLSRC)gslibctx.h
-$(GLSRC)sa85d.h:$(GLSRC)gs_dll_call.h
$(GLSRC)sa85d.h:$(GLSRC)stdio_.h
$(GLSRC)sa85d.h:$(GLSRC)stdint_.h
$(GLSRC)sa85d.h:$(GLSRC)gssprintf.h
-$(GLSRC)sa85d.h:$(GLSRC)std.h
$(GLSRC)sa85d.h:$(GLSRC)gstypes.h
+$(GLSRC)sa85d.h:$(GLSRC)std.h
$(GLSRC)sa85d.h:$(GLSRC)stdpre.h
$(GLSRC)sa85d.h:$(GLGEN)arch.h
+$(GLSRC)sa85d.h:$(GLSRC)gs_dll_call.h
$(GLSRC)sa85x.h:$(GLSRC)sa85d.h
$(GLSRC)sa85x.h:$(GLSRC)scommon.h
$(GLSRC)sa85x.h:$(GLSRC)gsstype.h
$(GLSRC)sa85x.h:$(GLSRC)gsmemory.h
$(GLSRC)sa85x.h:$(GLSRC)gslibctx.h
-$(GLSRC)sa85x.h:$(GLSRC)gs_dll_call.h
$(GLSRC)sa85x.h:$(GLSRC)stdio_.h
$(GLSRC)sa85x.h:$(GLSRC)stdint_.h
$(GLSRC)sa85x.h:$(GLSRC)gssprintf.h
-$(GLSRC)sa85x.h:$(GLSRC)std.h
$(GLSRC)sa85x.h:$(GLSRC)gstypes.h
+$(GLSRC)sa85x.h:$(GLSRC)std.h
$(GLSRC)sa85x.h:$(GLSRC)stdpre.h
$(GLSRC)sa85x.h:$(GLGEN)arch.h
+$(GLSRC)sa85x.h:$(GLSRC)gs_dll_call.h
$(GLSRC)sbcp.h:$(GLSRC)scommon.h
$(GLSRC)sbcp.h:$(GLSRC)gsstype.h
$(GLSRC)sbcp.h:$(GLSRC)gsmemory.h
$(GLSRC)sbcp.h:$(GLSRC)gslibctx.h
-$(GLSRC)sbcp.h:$(GLSRC)gs_dll_call.h
$(GLSRC)sbcp.h:$(GLSRC)stdio_.h
$(GLSRC)sbcp.h:$(GLSRC)stdint_.h
$(GLSRC)sbcp.h:$(GLSRC)gssprintf.h
-$(GLSRC)sbcp.h:$(GLSRC)std.h
$(GLSRC)sbcp.h:$(GLSRC)gstypes.h
+$(GLSRC)sbcp.h:$(GLSRC)std.h
$(GLSRC)sbcp.h:$(GLSRC)stdpre.h
$(GLSRC)sbcp.h:$(GLGEN)arch.h
+$(GLSRC)sbcp.h:$(GLSRC)gs_dll_call.h
$(GLSRC)sbtx.h:$(GLSRC)scommon.h
$(GLSRC)sbtx.h:$(GLSRC)gsstype.h
$(GLSRC)sbtx.h:$(GLSRC)gsmemory.h
$(GLSRC)sbtx.h:$(GLSRC)gslibctx.h
-$(GLSRC)sbtx.h:$(GLSRC)gs_dll_call.h
$(GLSRC)sbtx.h:$(GLSRC)stdio_.h
$(GLSRC)sbtx.h:$(GLSRC)stdint_.h
$(GLSRC)sbtx.h:$(GLSRC)gssprintf.h
-$(GLSRC)sbtx.h:$(GLSRC)std.h
$(GLSRC)sbtx.h:$(GLSRC)gstypes.h
+$(GLSRC)sbtx.h:$(GLSRC)std.h
$(GLSRC)sbtx.h:$(GLSRC)stdpre.h
$(GLSRC)sbtx.h:$(GLGEN)arch.h
+$(GLSRC)sbtx.h:$(GLSRC)gs_dll_call.h
$(GLSRC)scanchar.h:$(GLSRC)scommon.h
$(GLSRC)scanchar.h:$(GLSRC)gsstype.h
$(GLSRC)scanchar.h:$(GLSRC)gsmemory.h
$(GLSRC)scanchar.h:$(GLSRC)gslibctx.h
-$(GLSRC)scanchar.h:$(GLSRC)gs_dll_call.h
$(GLSRC)scanchar.h:$(GLSRC)stdio_.h
$(GLSRC)scanchar.h:$(GLSRC)stdint_.h
$(GLSRC)scanchar.h:$(GLSRC)gssprintf.h
-$(GLSRC)scanchar.h:$(GLSRC)std.h
$(GLSRC)scanchar.h:$(GLSRC)gstypes.h
+$(GLSRC)scanchar.h:$(GLSRC)std.h
$(GLSRC)scanchar.h:$(GLSRC)stdpre.h
$(GLSRC)scanchar.h:$(GLGEN)arch.h
+$(GLSRC)scanchar.h:$(GLSRC)gs_dll_call.h
$(GLSRC)sfilter.h:$(GLSRC)scommon.h
$(GLSRC)sfilter.h:$(GLSRC)gsstype.h
$(GLSRC)sfilter.h:$(GLSRC)gsmemory.h
$(GLSRC)sfilter.h:$(GLSRC)gslibctx.h
-$(GLSRC)sfilter.h:$(GLSRC)gs_dll_call.h
$(GLSRC)sfilter.h:$(GLSRC)stdio_.h
$(GLSRC)sfilter.h:$(GLSRC)stdint_.h
$(GLSRC)sfilter.h:$(GLSRC)gssprintf.h
-$(GLSRC)sfilter.h:$(GLSRC)std.h
$(GLSRC)sfilter.h:$(GLSRC)gstypes.h
+$(GLSRC)sfilter.h:$(GLSRC)std.h
$(GLSRC)sfilter.h:$(GLSRC)stdpre.h
$(GLSRC)sfilter.h:$(GLGEN)arch.h
+$(GLSRC)sfilter.h:$(GLSRC)gs_dll_call.h
$(GLSRC)sdct.h:$(GLSRC)setjmp_.h
$(GLSRC)sdct.h:$(GLSRC)strimpl.h
$(GLSRC)sdct.h:$(GLSRC)gscms.h
-$(GLSRC)sdct.h:$(GLSRC)gscspace.h
$(GLSRC)sdct.h:$(GLSRC)gsdevice.h
+$(GLSRC)sdct.h:$(GLSRC)gscspace.h
+$(GLSRC)sdct.h:$(GLSRC)gsgstate.h
$(GLSRC)sdct.h:$(GLSRC)gsiparam.h
-$(GLSRC)sdct.h:$(GLSRC)gxbitmap.h
$(GLSRC)sdct.h:$(GLSRC)gsmatrix.h
-$(GLSRC)sdct.h:$(GLSRC)gsrefct.h
$(GLSRC)sdct.h:$(GLSRC)gsparam.h
-$(GLSRC)sdct.h:$(GLSRC)gsccolor.h
+$(GLSRC)sdct.h:$(GLSRC)gsrefct.h
+$(GLSRC)sdct.h:$(GLSRC)memento.h
$(GLSRC)sdct.h:$(GLSRC)gsstruct.h
$(GLSRC)sdct.h:$(GLSRC)gxsync.h
+$(GLSRC)sdct.h:$(GLSRC)gxbitmap.h
$(GLSRC)sdct.h:$(GLSRC)scommon.h
-$(GLSRC)sdct.h:$(GLSRC)memento.h
$(GLSRC)sdct.h:$(GLSRC)gsbitmap.h
+$(GLSRC)sdct.h:$(GLSRC)gsccolor.h
+$(GLSRC)sdct.h:$(GLSRC)gpsync.h
$(GLSRC)sdct.h:$(GLSRC)gsstype.h
$(GLSRC)sdct.h:$(GLSRC)gsmemory.h
-$(GLSRC)sdct.h:$(GLSRC)gpsync.h
$(GLSRC)sdct.h:$(GLSRC)gslibctx.h
-$(GLSRC)sdct.h:$(GLSRC)gs_dll_call.h
$(GLSRC)sdct.h:$(GLSRC)stdio_.h
-$(GLSRC)sdct.h:$(GLSRC)gsgstate.h
$(GLSRC)sdct.h:$(GLSRC)stdint_.h
$(GLSRC)sdct.h:$(GLSRC)gssprintf.h
-$(GLSRC)sdct.h:$(GLSRC)std.h
$(GLSRC)sdct.h:$(GLSRC)gstypes.h
+$(GLSRC)sdct.h:$(GLSRC)std.h
$(GLSRC)sdct.h:$(GLSRC)stdpre.h
$(GLSRC)sdct.h:$(GLGEN)arch.h
+$(GLSRC)sdct.h:$(GLSRC)gs_dll_call.h
$(GLSRC)shc.h:$(GLSRC)scommon.h
$(GLSRC)shc.h:$(GLSRC)gsstype.h
$(GLSRC)shc.h:$(GLSRC)gsmemory.h
$(GLSRC)shc.h:$(GLSRC)gslibctx.h
-$(GLSRC)shc.h:$(GLSRC)gs_dll_call.h
$(GLSRC)shc.h:$(GLSRC)stdio_.h
-$(GLSRC)shc.h:$(GLSRC)gsbittab.h
$(GLSRC)shc.h:$(GLSRC)stdint_.h
$(GLSRC)shc.h:$(GLSRC)gssprintf.h
-$(GLSRC)shc.h:$(GLSRC)std.h
+$(GLSRC)shc.h:$(GLSRC)gsbittab.h
$(GLSRC)shc.h:$(GLSRC)gstypes.h
+$(GLSRC)shc.h:$(GLSRC)std.h
$(GLSRC)shc.h:$(GLSRC)stdpre.h
$(GLSRC)shc.h:$(GLGEN)arch.h
+$(GLSRC)shc.h:$(GLSRC)gs_dll_call.h
$(GLSRC)sisparam.h:$(GLSRC)gxdda.h
$(GLSRC)sisparam.h:$(GLSRC)gxfixed.h
$(GLSRC)sisparam.h:$(GLSRC)scommon.h
$(GLSRC)sisparam.h:$(GLSRC)gsstype.h
$(GLSRC)sisparam.h:$(GLSRC)gsmemory.h
$(GLSRC)sisparam.h:$(GLSRC)gslibctx.h
-$(GLSRC)sisparam.h:$(GLSRC)gs_dll_call.h
$(GLSRC)sisparam.h:$(GLSRC)stdio_.h
$(GLSRC)sisparam.h:$(GLSRC)stdint_.h
$(GLSRC)sisparam.h:$(GLSRC)gssprintf.h
-$(GLSRC)sisparam.h:$(GLSRC)std.h
$(GLSRC)sisparam.h:$(GLSRC)gstypes.h
+$(GLSRC)sisparam.h:$(GLSRC)std.h
$(GLSRC)sisparam.h:$(GLSRC)stdpre.h
$(GLSRC)sisparam.h:$(GLGEN)arch.h
+$(GLSRC)sisparam.h:$(GLSRC)gs_dll_call.h
$(GLSRC)sjpeg.h:$(GLSRC)sdct.h
$(GLSRC)sjpeg.h:$(GLSRC)setjmp_.h
$(GLSRC)sjpeg.h:$(GLSRC)strimpl.h
$(GLSRC)sjpeg.h:$(GLSRC)gscms.h
-$(GLSRC)sjpeg.h:$(GLSRC)gscspace.h
$(GLSRC)sjpeg.h:$(GLSRC)gsdevice.h
+$(GLSRC)sjpeg.h:$(GLSRC)gscspace.h
+$(GLSRC)sjpeg.h:$(GLSRC)gsgstate.h
$(GLSRC)sjpeg.h:$(GLSRC)gsiparam.h
-$(GLSRC)sjpeg.h:$(GLSRC)gxbitmap.h
$(GLSRC)sjpeg.h:$(GLSRC)gsmatrix.h
-$(GLSRC)sjpeg.h:$(GLSRC)gsrefct.h
$(GLSRC)sjpeg.h:$(GLSRC)gsparam.h
-$(GLSRC)sjpeg.h:$(GLSRC)gsccolor.h
+$(GLSRC)sjpeg.h:$(GLSRC)gsrefct.h
+$(GLSRC)sjpeg.h:$(GLSRC)memento.h
$(GLSRC)sjpeg.h:$(GLSRC)gsstruct.h
$(GLSRC)sjpeg.h:$(GLSRC)gxsync.h
+$(GLSRC)sjpeg.h:$(GLSRC)gxbitmap.h
$(GLSRC)sjpeg.h:$(GLSRC)scommon.h
-$(GLSRC)sjpeg.h:$(GLSRC)memento.h
$(GLSRC)sjpeg.h:$(GLSRC)gsbitmap.h
+$(GLSRC)sjpeg.h:$(GLSRC)gsccolor.h
+$(GLSRC)sjpeg.h:$(GLSRC)gpsync.h
$(GLSRC)sjpeg.h:$(GLSRC)gsstype.h
$(GLSRC)sjpeg.h:$(GLSRC)gsmemory.h
-$(GLSRC)sjpeg.h:$(GLSRC)gpsync.h
$(GLSRC)sjpeg.h:$(GLSRC)gslibctx.h
-$(GLSRC)sjpeg.h:$(GLSRC)gs_dll_call.h
$(GLSRC)sjpeg.h:$(GLSRC)stdio_.h
-$(GLSRC)sjpeg.h:$(GLSRC)gsgstate.h
$(GLSRC)sjpeg.h:$(GLSRC)stdint_.h
$(GLSRC)sjpeg.h:$(GLSRC)gssprintf.h
-$(GLSRC)sjpeg.h:$(GLSRC)std.h
$(GLSRC)sjpeg.h:$(GLSRC)gstypes.h
+$(GLSRC)sjpeg.h:$(GLSRC)std.h
$(GLSRC)sjpeg.h:$(GLSRC)stdpre.h
$(GLSRC)sjpeg.h:$(GLGEN)arch.h
+$(GLSRC)sjpeg.h:$(GLSRC)gs_dll_call.h
$(GLSRC)slzwx.h:$(GLSRC)scommon.h
$(GLSRC)slzwx.h:$(GLSRC)gsstype.h
$(GLSRC)slzwx.h:$(GLSRC)gsmemory.h
$(GLSRC)slzwx.h:$(GLSRC)gslibctx.h
-$(GLSRC)slzwx.h:$(GLSRC)gs_dll_call.h
$(GLSRC)slzwx.h:$(GLSRC)stdio_.h
$(GLSRC)slzwx.h:$(GLSRC)stdint_.h
$(GLSRC)slzwx.h:$(GLSRC)gssprintf.h
-$(GLSRC)slzwx.h:$(GLSRC)std.h
$(GLSRC)slzwx.h:$(GLSRC)gstypes.h
+$(GLSRC)slzwx.h:$(GLSRC)std.h
$(GLSRC)slzwx.h:$(GLSRC)stdpre.h
$(GLSRC)slzwx.h:$(GLGEN)arch.h
+$(GLSRC)slzwx.h:$(GLSRC)gs_dll_call.h
$(GLSRC)smd5.h:$(GLSRC)gsmd5.h
+$(GLSRC)smd5.h:$(GLSRC)memory_.h
$(GLSRC)smd5.h:$(GLSRC)scommon.h
$(GLSRC)smd5.h:$(GLSRC)gsstype.h
$(GLSRC)smd5.h:$(GLSRC)gsmemory.h
-$(GLSRC)smd5.h:$(GLSRC)memory_.h
$(GLSRC)smd5.h:$(GLSRC)gslibctx.h
-$(GLSRC)smd5.h:$(GLSRC)gs_dll_call.h
$(GLSRC)smd5.h:$(GLSRC)stdio_.h
$(GLSRC)smd5.h:$(GLSRC)stdint_.h
$(GLSRC)smd5.h:$(GLSRC)gssprintf.h
-$(GLSRC)smd5.h:$(GLSRC)std.h
$(GLSRC)smd5.h:$(GLSRC)gstypes.h
+$(GLSRC)smd5.h:$(GLSRC)std.h
$(GLSRC)smd5.h:$(GLSRC)stdpre.h
$(GLSRC)smd5.h:$(GLGEN)arch.h
+$(GLSRC)smd5.h:$(GLSRC)gs_dll_call.h
$(GLSRC)sarc4.h:$(GLSRC)scommon.h
$(GLSRC)sarc4.h:$(GLSRC)gsstype.h
$(GLSRC)sarc4.h:$(GLSRC)gsmemory.h
$(GLSRC)sarc4.h:$(GLSRC)gslibctx.h
-$(GLSRC)sarc4.h:$(GLSRC)gs_dll_call.h
$(GLSRC)sarc4.h:$(GLSRC)stdio_.h
$(GLSRC)sarc4.h:$(GLSRC)stdint_.h
$(GLSRC)sarc4.h:$(GLSRC)gssprintf.h
-$(GLSRC)sarc4.h:$(GLSRC)std.h
$(GLSRC)sarc4.h:$(GLSRC)gstypes.h
+$(GLSRC)sarc4.h:$(GLSRC)std.h
$(GLSRC)sarc4.h:$(GLSRC)stdpre.h
$(GLSRC)sarc4.h:$(GLGEN)arch.h
+$(GLSRC)sarc4.h:$(GLSRC)gs_dll_call.h
$(GLSRC)saes.h:$(GLSRC)aes.h
$(GLSRC)saes.h:$(GLSRC)scommon.h
$(GLSRC)saes.h:$(GLSRC)gsstype.h
$(GLSRC)saes.h:$(GLSRC)gsmemory.h
$(GLSRC)saes.h:$(GLSRC)gslibctx.h
-$(GLSRC)saes.h:$(GLSRC)gs_dll_call.h
$(GLSRC)saes.h:$(GLSRC)stdio_.h
$(GLSRC)saes.h:$(GLSRC)stdint_.h
$(GLSRC)saes.h:$(GLSRC)gssprintf.h
-$(GLSRC)saes.h:$(GLSRC)std.h
$(GLSRC)saes.h:$(GLSRC)gstypes.h
+$(GLSRC)saes.h:$(GLSRC)std.h
$(GLSRC)saes.h:$(GLSRC)stdpre.h
$(GLSRC)saes.h:$(GLGEN)arch.h
+$(GLSRC)saes.h:$(GLSRC)gs_dll_call.h
$(GLSRC)sjbig2.h:$(GLSRC)scommon.h
$(GLSRC)sjbig2.h:$(GLSRC)gsstype.h
$(GLSRC)sjbig2.h:$(GLSRC)gsmemory.h
$(GLSRC)sjbig2.h:$(GLSRC)gslibctx.h
-$(GLSRC)sjbig2.h:$(GLSRC)gs_dll_call.h
$(GLSRC)sjbig2.h:$(GLSRC)stdio_.h
$(GLSRC)sjbig2.h:$(GLSRC)stdint_.h
$(GLSRC)sjbig2.h:$(GLSRC)gssprintf.h
-$(GLSRC)sjbig2.h:$(GLSRC)std.h
$(GLSRC)sjbig2.h:$(GLSRC)gstypes.h
+$(GLSRC)sjbig2.h:$(GLSRC)std.h
$(GLSRC)sjbig2.h:$(GLSRC)stdpre.h
$(GLSRC)sjbig2.h:$(GLGEN)arch.h
+$(GLSRC)sjbig2.h:$(GLSRC)gs_dll_call.h
$(GLSRC)spdiffx.h:$(GLSRC)scommon.h
$(GLSRC)spdiffx.h:$(GLSRC)gsstype.h
$(GLSRC)spdiffx.h:$(GLSRC)gsmemory.h
$(GLSRC)spdiffx.h:$(GLSRC)gslibctx.h
-$(GLSRC)spdiffx.h:$(GLSRC)gs_dll_call.h
$(GLSRC)spdiffx.h:$(GLSRC)stdio_.h
$(GLSRC)spdiffx.h:$(GLSRC)stdint_.h
$(GLSRC)spdiffx.h:$(GLSRC)gssprintf.h
-$(GLSRC)spdiffx.h:$(GLSRC)std.h
$(GLSRC)spdiffx.h:$(GLSRC)gstypes.h
+$(GLSRC)spdiffx.h:$(GLSRC)std.h
$(GLSRC)spdiffx.h:$(GLSRC)stdpre.h
$(GLSRC)spdiffx.h:$(GLGEN)arch.h
+$(GLSRC)spdiffx.h:$(GLSRC)gs_dll_call.h
$(GLSRC)spngpx.h:$(GLSRC)scommon.h
$(GLSRC)spngpx.h:$(GLSRC)gsstype.h
$(GLSRC)spngpx.h:$(GLSRC)gsmemory.h
$(GLSRC)spngpx.h:$(GLSRC)gslibctx.h
-$(GLSRC)spngpx.h:$(GLSRC)gs_dll_call.h
$(GLSRC)spngpx.h:$(GLSRC)stdio_.h
$(GLSRC)spngpx.h:$(GLSRC)stdint_.h
$(GLSRC)spngpx.h:$(GLSRC)gssprintf.h
-$(GLSRC)spngpx.h:$(GLSRC)std.h
$(GLSRC)spngpx.h:$(GLSRC)gstypes.h
+$(GLSRC)spngpx.h:$(GLSRC)std.h
$(GLSRC)spngpx.h:$(GLSRC)stdpre.h
$(GLSRC)spngpx.h:$(GLGEN)arch.h
+$(GLSRC)spngpx.h:$(GLSRC)gs_dll_call.h
$(GLSRC)spprint.h:$(GLSRC)scommon.h
$(GLSRC)spprint.h:$(GLSRC)gsstype.h
$(GLSRC)spprint.h:$(GLSRC)gsmemory.h
$(GLSRC)spprint.h:$(GLSRC)gslibctx.h
-$(GLSRC)spprint.h:$(GLSRC)gs_dll_call.h
$(GLSRC)spprint.h:$(GLSRC)stdio_.h
$(GLSRC)spprint.h:$(GLSRC)stdint_.h
$(GLSRC)spprint.h:$(GLSRC)gssprintf.h
-$(GLSRC)spprint.h:$(GLSRC)std.h
$(GLSRC)spprint.h:$(GLSRC)gstypes.h
+$(GLSRC)spprint.h:$(GLSRC)std.h
$(GLSRC)spprint.h:$(GLSRC)stdpre.h
$(GLSRC)spprint.h:$(GLGEN)arch.h
+$(GLSRC)spprint.h:$(GLSRC)gs_dll_call.h
$(GLSRC)spsdf.h:$(GLSRC)gsparam.h
$(GLSRC)spsdf.h:$(GLSRC)scommon.h
$(GLSRC)spsdf.h:$(GLSRC)gsstype.h
$(GLSRC)spsdf.h:$(GLSRC)gsmemory.h
$(GLSRC)spsdf.h:$(GLSRC)gslibctx.h
-$(GLSRC)spsdf.h:$(GLSRC)gs_dll_call.h
$(GLSRC)spsdf.h:$(GLSRC)stdio_.h
$(GLSRC)spsdf.h:$(GLSRC)stdint_.h
$(GLSRC)spsdf.h:$(GLSRC)gssprintf.h
-$(GLSRC)spsdf.h:$(GLSRC)std.h
$(GLSRC)spsdf.h:$(GLSRC)gstypes.h
+$(GLSRC)spsdf.h:$(GLSRC)std.h
$(GLSRC)spsdf.h:$(GLSRC)stdpre.h
$(GLSRC)spsdf.h:$(GLGEN)arch.h
+$(GLSRC)spsdf.h:$(GLSRC)gs_dll_call.h
$(GLSRC)srlx.h:$(GLSRC)scommon.h
$(GLSRC)srlx.h:$(GLSRC)gsstype.h
$(GLSRC)srlx.h:$(GLSRC)gsmemory.h
$(GLSRC)srlx.h:$(GLSRC)gslibctx.h
-$(GLSRC)srlx.h:$(GLSRC)gs_dll_call.h
$(GLSRC)srlx.h:$(GLSRC)stdio_.h
$(GLSRC)srlx.h:$(GLSRC)stdint_.h
$(GLSRC)srlx.h:$(GLSRC)gssprintf.h
-$(GLSRC)srlx.h:$(GLSRC)std.h
$(GLSRC)srlx.h:$(GLSRC)gstypes.h
+$(GLSRC)srlx.h:$(GLSRC)std.h
$(GLSRC)srlx.h:$(GLSRC)stdpre.h
$(GLSRC)srlx.h:$(GLGEN)arch.h
+$(GLSRC)srlx.h:$(GLSRC)gs_dll_call.h
$(GLSRC)spwgx.h:$(GLSRC)scommon.h
$(GLSRC)spwgx.h:$(GLSRC)gsstype.h
$(GLSRC)spwgx.h:$(GLSRC)gsmemory.h
$(GLSRC)spwgx.h:$(GLSRC)gslibctx.h
-$(GLSRC)spwgx.h:$(GLSRC)gs_dll_call.h
$(GLSRC)spwgx.h:$(GLSRC)stdio_.h
$(GLSRC)spwgx.h:$(GLSRC)stdint_.h
$(GLSRC)spwgx.h:$(GLSRC)gssprintf.h
-$(GLSRC)spwgx.h:$(GLSRC)std.h
$(GLSRC)spwgx.h:$(GLSRC)gstypes.h
+$(GLSRC)spwgx.h:$(GLSRC)std.h
$(GLSRC)spwgx.h:$(GLSRC)stdpre.h
$(GLSRC)spwgx.h:$(GLGEN)arch.h
+$(GLSRC)spwgx.h:$(GLSRC)gs_dll_call.h
$(GLSRC)sstring.h:$(GLSRC)scommon.h
$(GLSRC)sstring.h:$(GLSRC)gsstype.h
$(GLSRC)sstring.h:$(GLSRC)gsmemory.h
$(GLSRC)sstring.h:$(GLSRC)gslibctx.h
-$(GLSRC)sstring.h:$(GLSRC)gs_dll_call.h
$(GLSRC)sstring.h:$(GLSRC)stdio_.h
$(GLSRC)sstring.h:$(GLSRC)stdint_.h
$(GLSRC)sstring.h:$(GLSRC)gssprintf.h
-$(GLSRC)sstring.h:$(GLSRC)std.h
$(GLSRC)sstring.h:$(GLSRC)gstypes.h
+$(GLSRC)sstring.h:$(GLSRC)std.h
$(GLSRC)sstring.h:$(GLSRC)stdpre.h
$(GLSRC)sstring.h:$(GLGEN)arch.h
+$(GLSRC)sstring.h:$(GLSRC)gs_dll_call.h
$(GLSRC)strimpl.h:$(GLSRC)gsstruct.h
$(GLSRC)strimpl.h:$(GLSRC)scommon.h
$(GLSRC)strimpl.h:$(GLSRC)gsstype.h
$(GLSRC)strimpl.h:$(GLSRC)gsmemory.h
$(GLSRC)strimpl.h:$(GLSRC)gslibctx.h
-$(GLSRC)strimpl.h:$(GLSRC)gs_dll_call.h
$(GLSRC)strimpl.h:$(GLSRC)stdio_.h
$(GLSRC)strimpl.h:$(GLSRC)stdint_.h
$(GLSRC)strimpl.h:$(GLSRC)gssprintf.h
-$(GLSRC)strimpl.h:$(GLSRC)std.h
$(GLSRC)strimpl.h:$(GLSRC)gstypes.h
+$(GLSRC)strimpl.h:$(GLSRC)std.h
$(GLSRC)strimpl.h:$(GLSRC)stdpre.h
$(GLSRC)strimpl.h:$(GLGEN)arch.h
+$(GLSRC)strimpl.h:$(GLSRC)gs_dll_call.h
$(GLSRC)szlibx.h:$(GLSRC)scommon.h
$(GLSRC)szlibx.h:$(GLSRC)gsstype.h
$(GLSRC)szlibx.h:$(GLSRC)gsmemory.h
$(GLSRC)szlibx.h:$(GLSRC)gslibctx.h
-$(GLSRC)szlibx.h:$(GLSRC)gs_dll_call.h
$(GLSRC)szlibx.h:$(GLSRC)stdio_.h
$(GLSRC)szlibx.h:$(GLSRC)stdint_.h
$(GLSRC)szlibx.h:$(GLSRC)gssprintf.h
-$(GLSRC)szlibx.h:$(GLSRC)std.h
$(GLSRC)szlibx.h:$(GLSRC)gstypes.h
+$(GLSRC)szlibx.h:$(GLSRC)std.h
$(GLSRC)szlibx.h:$(GLSRC)stdpre.h
$(GLSRC)szlibx.h:$(GLGEN)arch.h
+$(GLSRC)szlibx.h:$(GLSRC)gs_dll_call.h
$(GLSRC)scf.h:$(GLSRC)shc.h
$(GLSRC)scf.h:$(GLSRC)scommon.h
$(GLSRC)scf.h:$(GLSRC)gsstype.h
$(GLSRC)scf.h:$(GLSRC)gsmemory.h
$(GLSRC)scf.h:$(GLSRC)gslibctx.h
-$(GLSRC)scf.h:$(GLSRC)gs_dll_call.h
$(GLSRC)scf.h:$(GLSRC)stdio_.h
-$(GLSRC)scf.h:$(GLSRC)gsbittab.h
$(GLSRC)scf.h:$(GLSRC)stdint_.h
$(GLSRC)scf.h:$(GLSRC)gssprintf.h
-$(GLSRC)scf.h:$(GLSRC)std.h
+$(GLSRC)scf.h:$(GLSRC)gsbittab.h
$(GLSRC)scf.h:$(GLSRC)gstypes.h
+$(GLSRC)scf.h:$(GLSRC)std.h
$(GLSRC)scf.h:$(GLSRC)stdpre.h
$(GLSRC)scf.h:$(GLGEN)arch.h
+$(GLSRC)scf.h:$(GLSRC)gs_dll_call.h
$(GLSRC)scfx.h:$(GLSRC)shc.h
$(GLSRC)scfx.h:$(GLSRC)scommon.h
$(GLSRC)scfx.h:$(GLSRC)gsstype.h
$(GLSRC)scfx.h:$(GLSRC)gsmemory.h
$(GLSRC)scfx.h:$(GLSRC)gslibctx.h
-$(GLSRC)scfx.h:$(GLSRC)gs_dll_call.h
$(GLSRC)scfx.h:$(GLSRC)stdio_.h
-$(GLSRC)scfx.h:$(GLSRC)gsbittab.h
$(GLSRC)scfx.h:$(GLSRC)stdint_.h
$(GLSRC)scfx.h:$(GLSRC)gssprintf.h
-$(GLSRC)scfx.h:$(GLSRC)std.h
+$(GLSRC)scfx.h:$(GLSRC)gsbittab.h
$(GLSRC)scfx.h:$(GLSRC)gstypes.h
+$(GLSRC)scfx.h:$(GLSRC)std.h
$(GLSRC)scfx.h:$(GLSRC)stdpre.h
$(GLSRC)scfx.h:$(GLGEN)arch.h
+$(GLSRC)scfx.h:$(GLSRC)gs_dll_call.h
$(GLSRC)siinterp.h:$(GLSRC)sisparam.h
$(GLSRC)siinterp.h:$(GLSRC)gxdda.h
$(GLSRC)siinterp.h:$(GLSRC)gxfixed.h
@@ -9423,14 +9436,14 @@ $(GLSRC)siinterp.h:$(GLSRC)scommon.h
$(GLSRC)siinterp.h:$(GLSRC)gsstype.h
$(GLSRC)siinterp.h:$(GLSRC)gsmemory.h
$(GLSRC)siinterp.h:$(GLSRC)gslibctx.h
-$(GLSRC)siinterp.h:$(GLSRC)gs_dll_call.h
$(GLSRC)siinterp.h:$(GLSRC)stdio_.h
$(GLSRC)siinterp.h:$(GLSRC)stdint_.h
$(GLSRC)siinterp.h:$(GLSRC)gssprintf.h
-$(GLSRC)siinterp.h:$(GLSRC)std.h
$(GLSRC)siinterp.h:$(GLSRC)gstypes.h
+$(GLSRC)siinterp.h:$(GLSRC)std.h
$(GLSRC)siinterp.h:$(GLSRC)stdpre.h
$(GLSRC)siinterp.h:$(GLGEN)arch.h
+$(GLSRC)siinterp.h:$(GLSRC)gs_dll_call.h
$(GLSRC)siscale.h:$(GLSRC)sisparam.h
$(GLSRC)siscale.h:$(GLSRC)gxdda.h
$(GLSRC)siscale.h:$(GLSRC)gxfixed.h
@@ -9438,14 +9451,14 @@ $(GLSRC)siscale.h:$(GLSRC)scommon.h
$(GLSRC)siscale.h:$(GLSRC)gsstype.h
$(GLSRC)siscale.h:$(GLSRC)gsmemory.h
$(GLSRC)siscale.h:$(GLSRC)gslibctx.h
-$(GLSRC)siscale.h:$(GLSRC)gs_dll_call.h
$(GLSRC)siscale.h:$(GLSRC)stdio_.h
$(GLSRC)siscale.h:$(GLSRC)stdint_.h
$(GLSRC)siscale.h:$(GLSRC)gssprintf.h
-$(GLSRC)siscale.h:$(GLSRC)std.h
$(GLSRC)siscale.h:$(GLSRC)gstypes.h
+$(GLSRC)siscale.h:$(GLSRC)std.h
$(GLSRC)siscale.h:$(GLSRC)stdpre.h
$(GLSRC)siscale.h:$(GLGEN)arch.h
+$(GLSRC)siscale.h:$(GLSRC)gs_dll_call.h
$(GLSRC)sidscale.h:$(GLSRC)sisparam.h
$(GLSRC)sidscale.h:$(GLSRC)gxdda.h
$(GLSRC)sidscale.h:$(GLSRC)gxfixed.h
@@ -9453,14 +9466,14 @@ $(GLSRC)sidscale.h:$(GLSRC)scommon.h
$(GLSRC)sidscale.h:$(GLSRC)gsstype.h
$(GLSRC)sidscale.h:$(GLSRC)gsmemory.h
$(GLSRC)sidscale.h:$(GLSRC)gslibctx.h
-$(GLSRC)sidscale.h:$(GLSRC)gs_dll_call.h
$(GLSRC)sidscale.h:$(GLSRC)stdio_.h
$(GLSRC)sidscale.h:$(GLSRC)stdint_.h
$(GLSRC)sidscale.h:$(GLSRC)gssprintf.h
-$(GLSRC)sidscale.h:$(GLSRC)std.h
$(GLSRC)sidscale.h:$(GLSRC)gstypes.h
+$(GLSRC)sidscale.h:$(GLSRC)std.h
$(GLSRC)sidscale.h:$(GLSRC)stdpre.h
$(GLSRC)sidscale.h:$(GLGEN)arch.h
+$(GLSRC)sidscale.h:$(GLSRC)gs_dll_call.h
$(GLSRC)simscale.h:$(GLSRC)sisparam.h
$(GLSRC)simscale.h:$(GLSRC)gxdda.h
$(GLSRC)simscale.h:$(GLSRC)gxfixed.h
@@ -9468,119 +9481,119 @@ $(GLSRC)simscale.h:$(GLSRC)scommon.h
$(GLSRC)simscale.h:$(GLSRC)gsstype.h
$(GLSRC)simscale.h:$(GLSRC)gsmemory.h
$(GLSRC)simscale.h:$(GLSRC)gslibctx.h
-$(GLSRC)simscale.h:$(GLSRC)gs_dll_call.h
$(GLSRC)simscale.h:$(GLSRC)stdio_.h
$(GLSRC)simscale.h:$(GLSRC)stdint_.h
$(GLSRC)simscale.h:$(GLSRC)gssprintf.h
-$(GLSRC)simscale.h:$(GLSRC)std.h
$(GLSRC)simscale.h:$(GLSRC)gstypes.h
+$(GLSRC)simscale.h:$(GLSRC)std.h
$(GLSRC)simscale.h:$(GLSRC)stdpre.h
$(GLSRC)simscale.h:$(GLGEN)arch.h
+$(GLSRC)simscale.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gximage.h:$(GLSRC)gxsample.h
$(GLSRC)gximage.h:$(GLSRC)sisparam.h
$(GLSRC)gximage.h:$(GLSRC)gxcpath.h
$(GLSRC)gximage.h:$(GLSRC)gxiparam.h
$(GLSRC)gximage.h:$(GLSRC)gxdevcli.h
+$(GLSRC)gximage.h:$(GLSRC)gxcmap.h
$(GLSRC)gximage.h:$(GLSRC)gxtext.h
$(GLSRC)gximage.h:$(GLSRC)gstext.h
$(GLSRC)gximage.h:$(GLSRC)gsnamecl.h
$(GLSRC)gximage.h:$(GLSRC)gstparam.h
-$(GLSRC)gximage.h:$(GLSRC)gxfcache.h
-$(GLSRC)gximage.h:$(GLSRC)gxcspace.h
-$(GLSRC)gximage.h:$(GLSRC)gsropt.h
+$(GLSRC)gximage.h:$(GLSRC)gxfmap.h
$(GLSRC)gximage.h:$(GLSRC)gsfunc.h
-$(GLSRC)gximage.h:$(GLSRC)gxrplane.h
-$(GLSRC)gximage.h:$(GLSRC)gsuid.h
-$(GLSRC)gximage.h:$(GLSRC)gxcmap.h
+$(GLSRC)gximage.h:$(GLSRC)gxcspace.h
$(GLSRC)gximage.h:$(GLSRC)strimpl.h
+$(GLSRC)gximage.h:$(GLSRC)gxrplane.h
+$(GLSRC)gximage.h:$(GLSRC)gscsel.h
+$(GLSRC)gximage.h:$(GLSRC)gxfcache.h
+$(GLSRC)gximage.h:$(GLSRC)gsfont.h
$(GLSRC)gximage.h:$(GLSRC)gsimage.h
$(GLSRC)gximage.h:$(GLSRC)gsdcolor.h
-$(GLSRC)gximage.h:$(GLSRC)gxdda.h
$(GLSRC)gximage.h:$(GLSRC)gxcvalue.h
-$(GLSRC)gximage.h:$(GLSRC)gsfont.h
-$(GLSRC)gximage.h:$(GLSRC)gxfmap.h
+$(GLSRC)gximage.h:$(GLSRC)gxbcache.h
+$(GLSRC)gximage.h:$(GLSRC)gsropt.h
+$(GLSRC)gximage.h:$(GLSRC)gxdda.h
+$(GLSRC)gximage.h:$(GLSRC)gxpath.h
$(GLSRC)gximage.h:$(GLSRC)gxiclass.h
-$(GLSRC)gximage.h:$(GLSRC)gxftype.h
$(GLSRC)gximage.h:$(GLSRC)gxfrac.h
+$(GLSRC)gximage.h:$(GLSRC)gxtmap.h
+$(GLSRC)gximage.h:$(GLSRC)gxftype.h
$(GLSRC)gximage.h:$(GLSRC)gscms.h
-$(GLSRC)gximage.h:$(GLSRC)gscspace.h
-$(GLSRC)gximage.h:$(GLSRC)gxpath.h
-$(GLSRC)gximage.h:$(GLSRC)gxbcache.h
-$(GLSRC)gximage.h:$(GLSRC)gsdevice.h
-$(GLSRC)gximage.h:$(GLSRC)gxarith.h
-$(GLSRC)gximage.h:$(GLSRC)gspenum.h
-$(GLSRC)gximage.h:$(GLSRC)gxhttile.h
$(GLSRC)gximage.h:$(GLSRC)gsrect.h
$(GLSRC)gximage.h:$(GLSRC)gslparam.h
+$(GLSRC)gximage.h:$(GLSRC)gsdevice.h
+$(GLSRC)gximage.h:$(GLSRC)gscpm.h
+$(GLSRC)gximage.h:$(GLSRC)gscspace.h
+$(GLSRC)gximage.h:$(GLSRC)gsgstate.h
$(GLSRC)gximage.h:$(GLSRC)gsxfont.h
-$(GLSRC)gximage.h:$(GLSRC)gsiparam.h
$(GLSRC)gximage.h:$(GLSRC)gsdsrc.h
-$(GLSRC)gximage.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gximage.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gximage.h:$(GLSRC)gscpm.h
+$(GLSRC)gximage.h:$(GLSRC)gsiparam.h
$(GLSRC)gximage.h:$(GLSRC)gxfixed.h
-$(GLSRC)gximage.h:$(GLSRC)gsrefct.h
+$(GLSRC)gximage.h:$(GLSRC)gscompt.h
+$(GLSRC)gximage.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gximage.h:$(GLSRC)gspenum.h
+$(GLSRC)gximage.h:$(GLSRC)gxhttile.h
$(GLSRC)gximage.h:$(GLSRC)gsparam.h
+$(GLSRC)gximage.h:$(GLSRC)gsrefct.h
$(GLSRC)gximage.h:$(GLSRC)gp.h
-$(GLSRC)gximage.h:$(GLSRC)gsccolor.h
+$(GLSRC)gximage.h:$(GLSRC)memento.h
+$(GLSRC)gximage.h:$(GLSRC)memory_.h
+$(GLSRC)gximage.h:$(GLSRC)gsuid.h
$(GLSRC)gximage.h:$(GLSRC)gsstruct.h
$(GLSRC)gximage.h:$(GLSRC)gxsync.h
+$(GLSRC)gximage.h:$(GLSRC)gxbitmap.h
$(GLSRC)gximage.h:$(GLSRC)srdline.h
$(GLSRC)gximage.h:$(GLSRC)scommon.h
-$(GLSRC)gximage.h:$(GLSRC)memento.h
-$(GLSRC)gximage.h:$(GLSRC)gscsel.h
$(GLSRC)gximage.h:$(GLSRC)gsbitmap.h
-$(GLSRC)gximage.h:$(GLSRC)gsstype.h
+$(GLSRC)gximage.h:$(GLSRC)gsccolor.h
+$(GLSRC)gximage.h:$(GLSRC)gxarith.h
$(GLSRC)gximage.h:$(GLSRC)stat_.h
-$(GLSRC)gximage.h:$(GLSRC)gxtmap.h
-$(GLSRC)gximage.h:$(GLSRC)gsmemory.h
$(GLSRC)gximage.h:$(GLSRC)gpsync.h
-$(GLSRC)gximage.h:$(GLSRC)memory_.h
+$(GLSRC)gximage.h:$(GLSRC)gsstype.h
+$(GLSRC)gximage.h:$(GLSRC)gsmemory.h
$(GLSRC)gximage.h:$(GLSRC)gpgetenv.h
-$(GLSRC)gximage.h:$(GLSRC)gslibctx.h
$(GLSRC)gximage.h:$(GLSRC)gscdefs.h
-$(GLSRC)gximage.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gximage.h:$(GLSRC)stdio_.h
-$(GLSRC)gximage.h:$(GLSRC)gscompt.h
+$(GLSRC)gximage.h:$(GLSRC)gslibctx.h
$(GLSRC)gximage.h:$(GLSRC)gxcindex.h
-$(GLSRC)gximage.h:$(GLSRC)gsgstate.h
+$(GLSRC)gximage.h:$(GLSRC)stdio_.h
+$(GLSRC)gximage.h:$(GLSRC)gsccode.h
$(GLSRC)gximage.h:$(GLSRC)stdint_.h
$(GLSRC)gximage.h:$(GLSRC)gssprintf.h
-$(GLSRC)gximage.h:$(GLSRC)gsccode.h
-$(GLSRC)gximage.h:$(GLSRC)std.h
$(GLSRC)gximage.h:$(GLSRC)gstypes.h
+$(GLSRC)gximage.h:$(GLSRC)std.h
$(GLSRC)gximage.h:$(GLSRC)stdpre.h
$(GLSRC)gximage.h:$(GLGEN)arch.h
+$(GLSRC)gximage.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxhldevc.h:$(GLSRC)gsdcolor.h
$(GLSRC)gxhldevc.h:$(GLSRC)gscms.h
-$(GLSRC)gxhldevc.h:$(GLSRC)gscspace.h
$(GLSRC)gxhldevc.h:$(GLSRC)gsdevice.h
-$(GLSRC)gxhldevc.h:$(GLSRC)gxarith.h
-$(GLSRC)gxhldevc.h:$(GLSRC)gxhttile.h
+$(GLSRC)gxhldevc.h:$(GLSRC)gscspace.h
+$(GLSRC)gxhldevc.h:$(GLSRC)gsgstate.h
$(GLSRC)gxhldevc.h:$(GLSRC)gsiparam.h
-$(GLSRC)gxhldevc.h:$(GLSRC)gxbitmap.h
$(GLSRC)gxhldevc.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gxhldevc.h:$(GLSRC)gsrefct.h
+$(GLSRC)gxhldevc.h:$(GLSRC)gxhttile.h
$(GLSRC)gxhldevc.h:$(GLSRC)gsparam.h
-$(GLSRC)gxhldevc.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxhldevc.h:$(GLSRC)gsrefct.h
+$(GLSRC)gxhldevc.h:$(GLSRC)memento.h
$(GLSRC)gxhldevc.h:$(GLSRC)gxsync.h
+$(GLSRC)gxhldevc.h:$(GLSRC)gxbitmap.h
$(GLSRC)gxhldevc.h:$(GLSRC)scommon.h
-$(GLSRC)gxhldevc.h:$(GLSRC)memento.h
$(GLSRC)gxhldevc.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gxhldevc.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxhldevc.h:$(GLSRC)gxarith.h
+$(GLSRC)gxhldevc.h:$(GLSRC)gpsync.h
$(GLSRC)gxhldevc.h:$(GLSRC)gsstype.h
$(GLSRC)gxhldevc.h:$(GLSRC)gsmemory.h
-$(GLSRC)gxhldevc.h:$(GLSRC)gpsync.h
$(GLSRC)gxhldevc.h:$(GLSRC)gslibctx.h
-$(GLSRC)gxhldevc.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gxhldevc.h:$(GLSRC)stdio_.h
$(GLSRC)gxhldevc.h:$(GLSRC)gxcindex.h
-$(GLSRC)gxhldevc.h:$(GLSRC)gsgstate.h
+$(GLSRC)gxhldevc.h:$(GLSRC)stdio_.h
$(GLSRC)gxhldevc.h:$(GLSRC)stdint_.h
$(GLSRC)gxhldevc.h:$(GLSRC)gssprintf.h
-$(GLSRC)gxhldevc.h:$(GLSRC)std.h
$(GLSRC)gxhldevc.h:$(GLSRC)gstypes.h
+$(GLSRC)gxhldevc.h:$(GLSRC)std.h
$(GLSRC)gxhldevc.h:$(GLSRC)stdpre.h
$(GLSRC)gxhldevc.h:$(GLGEN)arch.h
+$(GLSRC)gxhldevc.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gsptype2.h:$(GLSRC)gsshade.h
$(GLSRC)gsptype2.h:$(GLSRC)gspath.h
$(GLSRC)gsptype2.h:$(GLSRC)gxmatrix.h
@@ -9588,477 +9601,477 @@ $(GLSRC)gsptype2.h:$(GLSRC)gscie.h
$(GLSRC)gsptype2.h:$(GLSRC)gspcolor.h
$(GLSRC)gsptype2.h:$(GLSRC)gsfunc.h
$(GLSRC)gsptype2.h:$(GLSRC)gxctable.h
-$(GLSRC)gsptype2.h:$(GLSRC)gsuid.h
$(GLSRC)gsptype2.h:$(GLSRC)gsdcolor.h
+$(GLSRC)gsptype2.h:$(GLSRC)gxpath.h
$(GLSRC)gsptype2.h:$(GLSRC)gxfrac.h
$(GLSRC)gsptype2.h:$(GLSRC)gscms.h
-$(GLSRC)gsptype2.h:$(GLSRC)gscspace.h
-$(GLSRC)gsptype2.h:$(GLSRC)gxpath.h
-$(GLSRC)gsptype2.h:$(GLSRC)gsdevice.h
-$(GLSRC)gsptype2.h:$(GLSRC)gxarith.h
-$(GLSRC)gsptype2.h:$(GLSRC)gspenum.h
-$(GLSRC)gsptype2.h:$(GLSRC)gxhttile.h
$(GLSRC)gsptype2.h:$(GLSRC)gsrect.h
$(GLSRC)gsptype2.h:$(GLSRC)gslparam.h
-$(GLSRC)gsptype2.h:$(GLSRC)gsiparam.h
-$(GLSRC)gsptype2.h:$(GLSRC)gsdsrc.h
-$(GLSRC)gsptype2.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gsptype2.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gsptype2.h:$(GLSRC)gsdevice.h
$(GLSRC)gsptype2.h:$(GLSRC)gscpm.h
+$(GLSRC)gsptype2.h:$(GLSRC)gscspace.h
+$(GLSRC)gsptype2.h:$(GLSRC)gsgstate.h
+$(GLSRC)gsptype2.h:$(GLSRC)gsdsrc.h
+$(GLSRC)gsptype2.h:$(GLSRC)gsiparam.h
$(GLSRC)gsptype2.h:$(GLSRC)gxfixed.h
-$(GLSRC)gsptype2.h:$(GLSRC)gsrefct.h
+$(GLSRC)gsptype2.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gsptype2.h:$(GLSRC)gspenum.h
+$(GLSRC)gsptype2.h:$(GLSRC)gxhttile.h
$(GLSRC)gsptype2.h:$(GLSRC)gsparam.h
-$(GLSRC)gsptype2.h:$(GLSRC)gsccolor.h
+$(GLSRC)gsptype2.h:$(GLSRC)gsrefct.h
+$(GLSRC)gsptype2.h:$(GLSRC)memento.h
+$(GLSRC)gsptype2.h:$(GLSRC)gsuid.h
$(GLSRC)gsptype2.h:$(GLSRC)gsstruct.h
$(GLSRC)gsptype2.h:$(GLSRC)gxsync.h
+$(GLSRC)gsptype2.h:$(GLSRC)gxbitmap.h
$(GLSRC)gsptype2.h:$(GLSRC)scommon.h
-$(GLSRC)gsptype2.h:$(GLSRC)memento.h
$(GLSRC)gsptype2.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gsptype2.h:$(GLSRC)gsccolor.h
+$(GLSRC)gsptype2.h:$(GLSRC)gxarith.h
+$(GLSRC)gsptype2.h:$(GLSRC)gpsync.h
$(GLSRC)gsptype2.h:$(GLSRC)gsstype.h
$(GLSRC)gsptype2.h:$(GLSRC)gsmemory.h
-$(GLSRC)gsptype2.h:$(GLSRC)gpsync.h
$(GLSRC)gsptype2.h:$(GLSRC)gslibctx.h
-$(GLSRC)gsptype2.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gsptype2.h:$(GLSRC)stdio_.h
$(GLSRC)gsptype2.h:$(GLSRC)gxcindex.h
-$(GLSRC)gsptype2.h:$(GLSRC)gsgstate.h
+$(GLSRC)gsptype2.h:$(GLSRC)stdio_.h
$(GLSRC)gsptype2.h:$(GLSRC)stdint_.h
$(GLSRC)gsptype2.h:$(GLSRC)gssprintf.h
-$(GLSRC)gsptype2.h:$(GLSRC)std.h
$(GLSRC)gsptype2.h:$(GLSRC)gstypes.h
+$(GLSRC)gsptype2.h:$(GLSRC)std.h
$(GLSRC)gsptype2.h:$(GLSRC)stdpre.h
$(GLSRC)gsptype2.h:$(GLGEN)arch.h
+$(GLSRC)gsptype2.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gdevddrw.h:$(GLSRC)gxdevcli.h
+$(GLSRC)gdevddrw.h:$(GLSRC)gxcmap.h
$(GLSRC)gdevddrw.h:$(GLSRC)gxtext.h
$(GLSRC)gdevddrw.h:$(GLSRC)gstext.h
$(GLSRC)gdevddrw.h:$(GLSRC)gsnamecl.h
$(GLSRC)gdevddrw.h:$(GLSRC)gstparam.h
-$(GLSRC)gdevddrw.h:$(GLSRC)gxfcache.h
-$(GLSRC)gdevddrw.h:$(GLSRC)gxcspace.h
-$(GLSRC)gdevddrw.h:$(GLSRC)gsropt.h
+$(GLSRC)gdevddrw.h:$(GLSRC)gxfmap.h
$(GLSRC)gdevddrw.h:$(GLSRC)gsfunc.h
+$(GLSRC)gdevddrw.h:$(GLSRC)gxcspace.h
$(GLSRC)gdevddrw.h:$(GLSRC)gxrplane.h
-$(GLSRC)gdevddrw.h:$(GLSRC)gsuid.h
-$(GLSRC)gdevddrw.h:$(GLSRC)gxcmap.h
+$(GLSRC)gdevddrw.h:$(GLSRC)gscsel.h
+$(GLSRC)gdevddrw.h:$(GLSRC)gxfcache.h
+$(GLSRC)gdevddrw.h:$(GLSRC)gsfont.h
$(GLSRC)gdevddrw.h:$(GLSRC)gsimage.h
$(GLSRC)gdevddrw.h:$(GLSRC)gsdcolor.h
-$(GLSRC)gdevddrw.h:$(GLSRC)gxdda.h
$(GLSRC)gdevddrw.h:$(GLSRC)gxcvalue.h
-$(GLSRC)gdevddrw.h:$(GLSRC)gsfont.h
-$(GLSRC)gdevddrw.h:$(GLSRC)gxfmap.h
-$(GLSRC)gdevddrw.h:$(GLSRC)gxftype.h
+$(GLSRC)gdevddrw.h:$(GLSRC)gxbcache.h
+$(GLSRC)gdevddrw.h:$(GLSRC)gsropt.h
+$(GLSRC)gdevddrw.h:$(GLSRC)gxdda.h
+$(GLSRC)gdevddrw.h:$(GLSRC)gxpath.h
$(GLSRC)gdevddrw.h:$(GLSRC)gxfrac.h
+$(GLSRC)gdevddrw.h:$(GLSRC)gxtmap.h
+$(GLSRC)gdevddrw.h:$(GLSRC)gxftype.h
$(GLSRC)gdevddrw.h:$(GLSRC)gscms.h
-$(GLSRC)gdevddrw.h:$(GLSRC)gscspace.h
-$(GLSRC)gdevddrw.h:$(GLSRC)gxpath.h
-$(GLSRC)gdevddrw.h:$(GLSRC)gxbcache.h
-$(GLSRC)gdevddrw.h:$(GLSRC)gsdevice.h
-$(GLSRC)gdevddrw.h:$(GLSRC)gxarith.h
-$(GLSRC)gdevddrw.h:$(GLSRC)gspenum.h
-$(GLSRC)gdevddrw.h:$(GLSRC)gxhttile.h
$(GLSRC)gdevddrw.h:$(GLSRC)gsrect.h
$(GLSRC)gdevddrw.h:$(GLSRC)gslparam.h
+$(GLSRC)gdevddrw.h:$(GLSRC)gsdevice.h
+$(GLSRC)gdevddrw.h:$(GLSRC)gscpm.h
+$(GLSRC)gdevddrw.h:$(GLSRC)gscspace.h
+$(GLSRC)gdevddrw.h:$(GLSRC)gsgstate.h
$(GLSRC)gdevddrw.h:$(GLSRC)gsxfont.h
-$(GLSRC)gdevddrw.h:$(GLSRC)gsiparam.h
$(GLSRC)gdevddrw.h:$(GLSRC)gsdsrc.h
-$(GLSRC)gdevddrw.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gdevddrw.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gdevddrw.h:$(GLSRC)gscpm.h
+$(GLSRC)gdevddrw.h:$(GLSRC)gsiparam.h
$(GLSRC)gdevddrw.h:$(GLSRC)gxfixed.h
-$(GLSRC)gdevddrw.h:$(GLSRC)gsrefct.h
+$(GLSRC)gdevddrw.h:$(GLSRC)gscompt.h
+$(GLSRC)gdevddrw.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gdevddrw.h:$(GLSRC)gspenum.h
+$(GLSRC)gdevddrw.h:$(GLSRC)gxhttile.h
$(GLSRC)gdevddrw.h:$(GLSRC)gsparam.h
+$(GLSRC)gdevddrw.h:$(GLSRC)gsrefct.h
$(GLSRC)gdevddrw.h:$(GLSRC)gp.h
-$(GLSRC)gdevddrw.h:$(GLSRC)gsccolor.h
+$(GLSRC)gdevddrw.h:$(GLSRC)memento.h
+$(GLSRC)gdevddrw.h:$(GLSRC)memory_.h
+$(GLSRC)gdevddrw.h:$(GLSRC)gsuid.h
$(GLSRC)gdevddrw.h:$(GLSRC)gsstruct.h
$(GLSRC)gdevddrw.h:$(GLSRC)gxsync.h
+$(GLSRC)gdevddrw.h:$(GLSRC)gxbitmap.h
$(GLSRC)gdevddrw.h:$(GLSRC)srdline.h
$(GLSRC)gdevddrw.h:$(GLSRC)scommon.h
-$(GLSRC)gdevddrw.h:$(GLSRC)memento.h
-$(GLSRC)gdevddrw.h:$(GLSRC)gscsel.h
$(GLSRC)gdevddrw.h:$(GLSRC)gsbitmap.h
-$(GLSRC)gdevddrw.h:$(GLSRC)gsstype.h
+$(GLSRC)gdevddrw.h:$(GLSRC)gsccolor.h
+$(GLSRC)gdevddrw.h:$(GLSRC)gxarith.h
$(GLSRC)gdevddrw.h:$(GLSRC)stat_.h
-$(GLSRC)gdevddrw.h:$(GLSRC)gxtmap.h
-$(GLSRC)gdevddrw.h:$(GLSRC)gsmemory.h
$(GLSRC)gdevddrw.h:$(GLSRC)gpsync.h
-$(GLSRC)gdevddrw.h:$(GLSRC)memory_.h
+$(GLSRC)gdevddrw.h:$(GLSRC)gsstype.h
+$(GLSRC)gdevddrw.h:$(GLSRC)gsmemory.h
$(GLSRC)gdevddrw.h:$(GLSRC)gpgetenv.h
-$(GLSRC)gdevddrw.h:$(GLSRC)gslibctx.h
$(GLSRC)gdevddrw.h:$(GLSRC)gscdefs.h
-$(GLSRC)gdevddrw.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gdevddrw.h:$(GLSRC)stdio_.h
-$(GLSRC)gdevddrw.h:$(GLSRC)gscompt.h
+$(GLSRC)gdevddrw.h:$(GLSRC)gslibctx.h
$(GLSRC)gdevddrw.h:$(GLSRC)gxcindex.h
-$(GLSRC)gdevddrw.h:$(GLSRC)gsgstate.h
+$(GLSRC)gdevddrw.h:$(GLSRC)stdio_.h
+$(GLSRC)gdevddrw.h:$(GLSRC)gsccode.h
$(GLSRC)gdevddrw.h:$(GLSRC)stdint_.h
$(GLSRC)gdevddrw.h:$(GLSRC)gssprintf.h
-$(GLSRC)gdevddrw.h:$(GLSRC)gsccode.h
-$(GLSRC)gdevddrw.h:$(GLSRC)std.h
$(GLSRC)gdevddrw.h:$(GLSRC)gstypes.h
+$(GLSRC)gdevddrw.h:$(GLSRC)std.h
$(GLSRC)gdevddrw.h:$(GLSRC)stdpre.h
$(GLSRC)gdevddrw.h:$(GLGEN)arch.h
+$(GLSRC)gdevddrw.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxfill.h:$(GLSRC)gzpath.h
$(GLSRC)gxfill.h:$(GLSRC)gxdevcli.h
+$(GLSRC)gxfill.h:$(GLSRC)gxcmap.h
$(GLSRC)gxfill.h:$(GLSRC)gxtext.h
$(GLSRC)gxfill.h:$(GLSRC)gstext.h
$(GLSRC)gxfill.h:$(GLSRC)gsnamecl.h
$(GLSRC)gxfill.h:$(GLSRC)gstparam.h
-$(GLSRC)gxfill.h:$(GLSRC)gxfcache.h
-$(GLSRC)gxfill.h:$(GLSRC)gxcspace.h
-$(GLSRC)gxfill.h:$(GLSRC)gsropt.h
+$(GLSRC)gxfill.h:$(GLSRC)gxfmap.h
$(GLSRC)gxfill.h:$(GLSRC)gsfunc.h
+$(GLSRC)gxfill.h:$(GLSRC)gxcspace.h
$(GLSRC)gxfill.h:$(GLSRC)gxrplane.h
-$(GLSRC)gxfill.h:$(GLSRC)gsuid.h
-$(GLSRC)gxfill.h:$(GLSRC)gxcmap.h
+$(GLSRC)gxfill.h:$(GLSRC)gscsel.h
+$(GLSRC)gxfill.h:$(GLSRC)gxfcache.h
+$(GLSRC)gxfill.h:$(GLSRC)gsfont.h
$(GLSRC)gxfill.h:$(GLSRC)gsimage.h
$(GLSRC)gxfill.h:$(GLSRC)gsdcolor.h
-$(GLSRC)gxfill.h:$(GLSRC)gxdda.h
$(GLSRC)gxfill.h:$(GLSRC)gxcvalue.h
-$(GLSRC)gxfill.h:$(GLSRC)gsfont.h
-$(GLSRC)gxfill.h:$(GLSRC)gxfmap.h
-$(GLSRC)gxfill.h:$(GLSRC)gxftype.h
+$(GLSRC)gxfill.h:$(GLSRC)gxbcache.h
+$(GLSRC)gxfill.h:$(GLSRC)gsropt.h
+$(GLSRC)gxfill.h:$(GLSRC)gxdda.h
+$(GLSRC)gxfill.h:$(GLSRC)gxpath.h
$(GLSRC)gxfill.h:$(GLSRC)gxfrac.h
+$(GLSRC)gxfill.h:$(GLSRC)gxtmap.h
+$(GLSRC)gxfill.h:$(GLSRC)gxftype.h
$(GLSRC)gxfill.h:$(GLSRC)gscms.h
-$(GLSRC)gxfill.h:$(GLSRC)gscspace.h
-$(GLSRC)gxfill.h:$(GLSRC)gxpath.h
-$(GLSRC)gxfill.h:$(GLSRC)gxbcache.h
-$(GLSRC)gxfill.h:$(GLSRC)gsdevice.h
-$(GLSRC)gxfill.h:$(GLSRC)gxarith.h
-$(GLSRC)gxfill.h:$(GLSRC)gspenum.h
-$(GLSRC)gxfill.h:$(GLSRC)gxhttile.h
$(GLSRC)gxfill.h:$(GLSRC)gsrect.h
$(GLSRC)gxfill.h:$(GLSRC)gslparam.h
+$(GLSRC)gxfill.h:$(GLSRC)gsdevice.h
+$(GLSRC)gxfill.h:$(GLSRC)gscpm.h
+$(GLSRC)gxfill.h:$(GLSRC)gscspace.h
+$(GLSRC)gxfill.h:$(GLSRC)gsgstate.h
$(GLSRC)gxfill.h:$(GLSRC)gsxfont.h
-$(GLSRC)gxfill.h:$(GLSRC)gsiparam.h
$(GLSRC)gxfill.h:$(GLSRC)gsdsrc.h
-$(GLSRC)gxfill.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gxfill.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gxfill.h:$(GLSRC)gscpm.h
+$(GLSRC)gxfill.h:$(GLSRC)gsiparam.h
$(GLSRC)gxfill.h:$(GLSRC)gxfixed.h
-$(GLSRC)gxfill.h:$(GLSRC)gsrefct.h
+$(GLSRC)gxfill.h:$(GLSRC)gscompt.h
+$(GLSRC)gxfill.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gxfill.h:$(GLSRC)gspenum.h
+$(GLSRC)gxfill.h:$(GLSRC)gxhttile.h
$(GLSRC)gxfill.h:$(GLSRC)gsparam.h
+$(GLSRC)gxfill.h:$(GLSRC)gsrefct.h
$(GLSRC)gxfill.h:$(GLSRC)gp.h
-$(GLSRC)gxfill.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxfill.h:$(GLSRC)memento.h
+$(GLSRC)gxfill.h:$(GLSRC)memory_.h
+$(GLSRC)gxfill.h:$(GLSRC)gsuid.h
$(GLSRC)gxfill.h:$(GLSRC)gsstruct.h
$(GLSRC)gxfill.h:$(GLSRC)gxsync.h
+$(GLSRC)gxfill.h:$(GLSRC)gxbitmap.h
$(GLSRC)gxfill.h:$(GLSRC)srdline.h
$(GLSRC)gxfill.h:$(GLSRC)scommon.h
-$(GLSRC)gxfill.h:$(GLSRC)memento.h
-$(GLSRC)gxfill.h:$(GLSRC)gscsel.h
$(GLSRC)gxfill.h:$(GLSRC)gsbitmap.h
-$(GLSRC)gxfill.h:$(GLSRC)gsstype.h
+$(GLSRC)gxfill.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxfill.h:$(GLSRC)gxarith.h
$(GLSRC)gxfill.h:$(GLSRC)stat_.h
-$(GLSRC)gxfill.h:$(GLSRC)gxtmap.h
-$(GLSRC)gxfill.h:$(GLSRC)gsmemory.h
$(GLSRC)gxfill.h:$(GLSRC)gpsync.h
-$(GLSRC)gxfill.h:$(GLSRC)memory_.h
+$(GLSRC)gxfill.h:$(GLSRC)gsstype.h
+$(GLSRC)gxfill.h:$(GLSRC)gsmemory.h
$(GLSRC)gxfill.h:$(GLSRC)gpgetenv.h
-$(GLSRC)gxfill.h:$(GLSRC)gslibctx.h
$(GLSRC)gxfill.h:$(GLSRC)gscdefs.h
-$(GLSRC)gxfill.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gxfill.h:$(GLSRC)stdio_.h
-$(GLSRC)gxfill.h:$(GLSRC)gscompt.h
+$(GLSRC)gxfill.h:$(GLSRC)gslibctx.h
$(GLSRC)gxfill.h:$(GLSRC)gxcindex.h
-$(GLSRC)gxfill.h:$(GLSRC)gsgstate.h
+$(GLSRC)gxfill.h:$(GLSRC)stdio_.h
+$(GLSRC)gxfill.h:$(GLSRC)gsccode.h
$(GLSRC)gxfill.h:$(GLSRC)stdint_.h
$(GLSRC)gxfill.h:$(GLSRC)gssprintf.h
-$(GLSRC)gxfill.h:$(GLSRC)gsccode.h
-$(GLSRC)gxfill.h:$(GLSRC)std.h
$(GLSRC)gxfill.h:$(GLSRC)gstypes.h
+$(GLSRC)gxfill.h:$(GLSRC)std.h
$(GLSRC)gxfill.h:$(GLSRC)stdpre.h
$(GLSRC)gxfill.h:$(GLGEN)arch.h
+$(GLSRC)gxfill.h:$(GLSRC)gs_dll_call.h
$(GLSRC)ttfoutl.h:$(GLSRC)malloc_.h
$(GLSRC)ttfoutl.h:$(GLSRC)bobbin.h
$(GLSRC)ttfoutl.h:$(GLSRC)gxfcache.h
-$(GLSRC)ttfoutl.h:$(GLSRC)gsuid.h
$(GLSRC)ttfoutl.h:$(GLSRC)gsfont.h
-$(GLSRC)ttfoutl.h:$(GLSRC)gxftype.h
$(GLSRC)ttfoutl.h:$(GLSRC)gxbcache.h
+$(GLSRC)ttfoutl.h:$(GLSRC)gxftype.h
+$(GLSRC)ttfoutl.h:$(GLSRC)gsgstate.h
$(GLSRC)ttfoutl.h:$(GLSRC)gsxfont.h
-$(GLSRC)ttfoutl.h:$(GLSRC)gxbitmap.h
-$(GLSRC)ttfoutl.h:$(GLSRC)gsmatrix.h
$(GLSRC)ttfoutl.h:$(GLSRC)gxfixed.h
-$(GLSRC)ttfoutl.h:$(GLSRC)scommon.h
+$(GLSRC)ttfoutl.h:$(GLSRC)gsmatrix.h
$(GLSRC)ttfoutl.h:$(GLSRC)memento.h
+$(GLSRC)ttfoutl.h:$(GLSRC)gsuid.h
+$(GLSRC)ttfoutl.h:$(GLSRC)gxbitmap.h
+$(GLSRC)ttfoutl.h:$(GLSRC)scommon.h
$(GLSRC)ttfoutl.h:$(GLSRC)gsbitmap.h
$(GLSRC)ttfoutl.h:$(GLSRC)gsstype.h
$(GLSRC)ttfoutl.h:$(GLSRC)gsmemory.h
$(GLSRC)ttfoutl.h:$(GLSRC)gslibctx.h
-$(GLSRC)ttfoutl.h:$(GLSRC)gs_dll_call.h
$(GLSRC)ttfoutl.h:$(GLSRC)stdio_.h
-$(GLSRC)ttfoutl.h:$(GLSRC)gsgstate.h
+$(GLSRC)ttfoutl.h:$(GLSRC)gsccode.h
$(GLSRC)ttfoutl.h:$(GLSRC)stdint_.h
$(GLSRC)ttfoutl.h:$(GLSRC)gssprintf.h
-$(GLSRC)ttfoutl.h:$(GLSRC)gsccode.h
-$(GLSRC)ttfoutl.h:$(GLSRC)std.h
$(GLSRC)ttfoutl.h:$(GLSRC)gstypes.h
+$(GLSRC)ttfoutl.h:$(GLSRC)std.h
$(GLSRC)ttfoutl.h:$(GLSRC)stdpre.h
$(GLSRC)ttfoutl.h:$(GLGEN)arch.h
+$(GLSRC)ttfoutl.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxttfb.h:$(GLSRC)ttfoutl.h
$(GLSRC)gxttfb.h:$(GLSRC)malloc_.h
-$(GLSRC)gxttfb.h:$(GLSRC)gxfont.h
$(GLSRC)gxttfb.h:$(GLSRC)bobbin.h
+$(GLSRC)gxttfb.h:$(GLSRC)gxfont.h
$(GLSRC)gxttfb.h:$(GLSRC)gspath.h
-$(GLSRC)gxttfb.h:$(GLSRC)gxmatrix.h
$(GLSRC)gxttfb.h:$(GLSRC)gsgdata.h
-$(GLSRC)gxttfb.h:$(GLSRC)gsgcache.h
+$(GLSRC)gxttfb.h:$(GLSRC)gxmatrix.h
$(GLSRC)gxttfb.h:$(GLSRC)gxfapi.h
-$(GLSRC)gxttfb.h:$(GLSRC)gsnotify.h
$(GLSRC)gxttfb.h:$(GLSRC)gsfcmap.h
$(GLSRC)gxttfb.h:$(GLSRC)gstext.h
$(GLSRC)gxttfb.h:$(GLSRC)gxfcache.h
-$(GLSRC)gxttfb.h:$(GLSRC)gsuid.h
-$(GLSRC)gxttfb.h:$(GLSRC)gsdcolor.h
$(GLSRC)gxttfb.h:$(GLSRC)gsfont.h
+$(GLSRC)gxttfb.h:$(GLSRC)gsdcolor.h
+$(GLSRC)gxttfb.h:$(GLSRC)gxbcache.h
+$(GLSRC)gxttfb.h:$(GLSRC)gxpath.h
$(GLSRC)gxttfb.h:$(GLSRC)gxftype.h
$(GLSRC)gxttfb.h:$(GLSRC)gscms.h
-$(GLSRC)gxttfb.h:$(GLSRC)gscspace.h
-$(GLSRC)gxttfb.h:$(GLSRC)gxpath.h
-$(GLSRC)gxttfb.h:$(GLSRC)gxbcache.h
-$(GLSRC)gxttfb.h:$(GLSRC)gsdevice.h
-$(GLSRC)gxttfb.h:$(GLSRC)gxarith.h
-$(GLSRC)gxttfb.h:$(GLSRC)gspenum.h
-$(GLSRC)gxttfb.h:$(GLSRC)gxhttile.h
$(GLSRC)gxttfb.h:$(GLSRC)gsrect.h
$(GLSRC)gxttfb.h:$(GLSRC)gslparam.h
+$(GLSRC)gxttfb.h:$(GLSRC)gsdevice.h
+$(GLSRC)gxttfb.h:$(GLSRC)gscpm.h
+$(GLSRC)gxttfb.h:$(GLSRC)gsgcache.h
+$(GLSRC)gxttfb.h:$(GLSRC)gscspace.h
+$(GLSRC)gxttfb.h:$(GLSRC)gsgstate.h
+$(GLSRC)gxttfb.h:$(GLSRC)gsnotify.h
$(GLSRC)gxttfb.h:$(GLSRC)gsxfont.h
$(GLSRC)gxttfb.h:$(GLSRC)gsiparam.h
-$(GLSRC)gxttfb.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gxttfb.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gxttfb.h:$(GLSRC)gscpm.h
$(GLSRC)gxttfb.h:$(GLSRC)gxfixed.h
-$(GLSRC)gxttfb.h:$(GLSRC)gsrefct.h
+$(GLSRC)gxttfb.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gxttfb.h:$(GLSRC)gspenum.h
+$(GLSRC)gxttfb.h:$(GLSRC)gxhttile.h
$(GLSRC)gxttfb.h:$(GLSRC)gsparam.h
-$(GLSRC)gxttfb.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxttfb.h:$(GLSRC)gsrefct.h
+$(GLSRC)gxttfb.h:$(GLSRC)memento.h
+$(GLSRC)gxttfb.h:$(GLSRC)gsuid.h
$(GLSRC)gxttfb.h:$(GLSRC)gxsync.h
+$(GLSRC)gxttfb.h:$(GLSRC)gxbitmap.h
$(GLSRC)gxttfb.h:$(GLSRC)scommon.h
-$(GLSRC)gxttfb.h:$(GLSRC)memento.h
$(GLSRC)gxttfb.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gxttfb.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxttfb.h:$(GLSRC)gxarith.h
+$(GLSRC)gxttfb.h:$(GLSRC)gpsync.h
$(GLSRC)gxttfb.h:$(GLSRC)gsstype.h
$(GLSRC)gxttfb.h:$(GLSRC)gsmemory.h
-$(GLSRC)gxttfb.h:$(GLSRC)gpsync.h
$(GLSRC)gxttfb.h:$(GLSRC)gslibctx.h
-$(GLSRC)gxttfb.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gxttfb.h:$(GLSRC)stdio_.h
$(GLSRC)gxttfb.h:$(GLSRC)gxcindex.h
-$(GLSRC)gxttfb.h:$(GLSRC)gsgstate.h
+$(GLSRC)gxttfb.h:$(GLSRC)stdio_.h
+$(GLSRC)gxttfb.h:$(GLSRC)gsccode.h
$(GLSRC)gxttfb.h:$(GLSRC)stdint_.h
$(GLSRC)gxttfb.h:$(GLSRC)gssprintf.h
-$(GLSRC)gxttfb.h:$(GLSRC)gsccode.h
-$(GLSRC)gxttfb.h:$(GLSRC)std.h
$(GLSRC)gxttfb.h:$(GLSRC)gstypes.h
+$(GLSRC)gxttfb.h:$(GLSRC)std.h
$(GLSRC)gxttfb.h:$(GLSRC)stdpre.h
$(GLSRC)gxttfb.h:$(GLGEN)arch.h
+$(GLSRC)gxttfb.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gzspotan.h:$(GLSRC)gzpath.h
$(GLSRC)gzspotan.h:$(GLSRC)gxdevcli.h
+$(GLSRC)gzspotan.h:$(GLSRC)gxcmap.h
$(GLSRC)gzspotan.h:$(GLSRC)gxtext.h
$(GLSRC)gzspotan.h:$(GLSRC)gstext.h
$(GLSRC)gzspotan.h:$(GLSRC)gsnamecl.h
$(GLSRC)gzspotan.h:$(GLSRC)gstparam.h
-$(GLSRC)gzspotan.h:$(GLSRC)gxfcache.h
-$(GLSRC)gzspotan.h:$(GLSRC)gxcspace.h
-$(GLSRC)gzspotan.h:$(GLSRC)gsropt.h
+$(GLSRC)gzspotan.h:$(GLSRC)gxfmap.h
$(GLSRC)gzspotan.h:$(GLSRC)gsfunc.h
+$(GLSRC)gzspotan.h:$(GLSRC)gxcspace.h
$(GLSRC)gzspotan.h:$(GLSRC)gxrplane.h
-$(GLSRC)gzspotan.h:$(GLSRC)gsuid.h
-$(GLSRC)gzspotan.h:$(GLSRC)gxcmap.h
+$(GLSRC)gzspotan.h:$(GLSRC)gscsel.h
+$(GLSRC)gzspotan.h:$(GLSRC)gxfcache.h
+$(GLSRC)gzspotan.h:$(GLSRC)gsfont.h
$(GLSRC)gzspotan.h:$(GLSRC)gsimage.h
$(GLSRC)gzspotan.h:$(GLSRC)gsdcolor.h
-$(GLSRC)gzspotan.h:$(GLSRC)gxdda.h
$(GLSRC)gzspotan.h:$(GLSRC)gxcvalue.h
-$(GLSRC)gzspotan.h:$(GLSRC)gsfont.h
-$(GLSRC)gzspotan.h:$(GLSRC)gxfmap.h
-$(GLSRC)gzspotan.h:$(GLSRC)gxftype.h
+$(GLSRC)gzspotan.h:$(GLSRC)gxbcache.h
+$(GLSRC)gzspotan.h:$(GLSRC)gsropt.h
+$(GLSRC)gzspotan.h:$(GLSRC)gxdda.h
+$(GLSRC)gzspotan.h:$(GLSRC)gxpath.h
$(GLSRC)gzspotan.h:$(GLSRC)gxfrac.h
+$(GLSRC)gzspotan.h:$(GLSRC)gxtmap.h
+$(GLSRC)gzspotan.h:$(GLSRC)gxftype.h
$(GLSRC)gzspotan.h:$(GLSRC)gscms.h
-$(GLSRC)gzspotan.h:$(GLSRC)gscspace.h
-$(GLSRC)gzspotan.h:$(GLSRC)gxpath.h
-$(GLSRC)gzspotan.h:$(GLSRC)gxbcache.h
-$(GLSRC)gzspotan.h:$(GLSRC)gsdevice.h
-$(GLSRC)gzspotan.h:$(GLSRC)gxarith.h
-$(GLSRC)gzspotan.h:$(GLSRC)gspenum.h
-$(GLSRC)gzspotan.h:$(GLSRC)gxhttile.h
$(GLSRC)gzspotan.h:$(GLSRC)gsrect.h
$(GLSRC)gzspotan.h:$(GLSRC)gslparam.h
+$(GLSRC)gzspotan.h:$(GLSRC)gsdevice.h
+$(GLSRC)gzspotan.h:$(GLSRC)gscpm.h
+$(GLSRC)gzspotan.h:$(GLSRC)gscspace.h
+$(GLSRC)gzspotan.h:$(GLSRC)gsgstate.h
$(GLSRC)gzspotan.h:$(GLSRC)gsxfont.h
-$(GLSRC)gzspotan.h:$(GLSRC)gsiparam.h
$(GLSRC)gzspotan.h:$(GLSRC)gsdsrc.h
-$(GLSRC)gzspotan.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gzspotan.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gzspotan.h:$(GLSRC)gscpm.h
+$(GLSRC)gzspotan.h:$(GLSRC)gsiparam.h
$(GLSRC)gzspotan.h:$(GLSRC)gxfixed.h
-$(GLSRC)gzspotan.h:$(GLSRC)gsrefct.h
+$(GLSRC)gzspotan.h:$(GLSRC)gscompt.h
+$(GLSRC)gzspotan.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gzspotan.h:$(GLSRC)gspenum.h
+$(GLSRC)gzspotan.h:$(GLSRC)gxhttile.h
$(GLSRC)gzspotan.h:$(GLSRC)gsparam.h
+$(GLSRC)gzspotan.h:$(GLSRC)gsrefct.h
$(GLSRC)gzspotan.h:$(GLSRC)gp.h
-$(GLSRC)gzspotan.h:$(GLSRC)gsccolor.h
+$(GLSRC)gzspotan.h:$(GLSRC)memento.h
+$(GLSRC)gzspotan.h:$(GLSRC)memory_.h
+$(GLSRC)gzspotan.h:$(GLSRC)gsuid.h
$(GLSRC)gzspotan.h:$(GLSRC)gsstruct.h
$(GLSRC)gzspotan.h:$(GLSRC)gxsync.h
+$(GLSRC)gzspotan.h:$(GLSRC)gxbitmap.h
$(GLSRC)gzspotan.h:$(GLSRC)srdline.h
$(GLSRC)gzspotan.h:$(GLSRC)scommon.h
-$(GLSRC)gzspotan.h:$(GLSRC)memento.h
-$(GLSRC)gzspotan.h:$(GLSRC)gscsel.h
$(GLSRC)gzspotan.h:$(GLSRC)gsbitmap.h
-$(GLSRC)gzspotan.h:$(GLSRC)gsstype.h
+$(GLSRC)gzspotan.h:$(GLSRC)gsccolor.h
+$(GLSRC)gzspotan.h:$(GLSRC)gxarith.h
$(GLSRC)gzspotan.h:$(GLSRC)stat_.h
-$(GLSRC)gzspotan.h:$(GLSRC)gxtmap.h
-$(GLSRC)gzspotan.h:$(GLSRC)gsmemory.h
$(GLSRC)gzspotan.h:$(GLSRC)gpsync.h
-$(GLSRC)gzspotan.h:$(GLSRC)memory_.h
+$(GLSRC)gzspotan.h:$(GLSRC)gsstype.h
+$(GLSRC)gzspotan.h:$(GLSRC)gsmemory.h
$(GLSRC)gzspotan.h:$(GLSRC)gpgetenv.h
-$(GLSRC)gzspotan.h:$(GLSRC)gslibctx.h
$(GLSRC)gzspotan.h:$(GLSRC)gscdefs.h
-$(GLSRC)gzspotan.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gzspotan.h:$(GLSRC)stdio_.h
-$(GLSRC)gzspotan.h:$(GLSRC)gscompt.h
+$(GLSRC)gzspotan.h:$(GLSRC)gslibctx.h
$(GLSRC)gzspotan.h:$(GLSRC)gxcindex.h
-$(GLSRC)gzspotan.h:$(GLSRC)gsgstate.h
+$(GLSRC)gzspotan.h:$(GLSRC)stdio_.h
+$(GLSRC)gzspotan.h:$(GLSRC)gsccode.h
$(GLSRC)gzspotan.h:$(GLSRC)stdint_.h
$(GLSRC)gzspotan.h:$(GLSRC)gssprintf.h
-$(GLSRC)gzspotan.h:$(GLSRC)gsccode.h
-$(GLSRC)gzspotan.h:$(GLSRC)std.h
$(GLSRC)gzspotan.h:$(GLSRC)gstypes.h
+$(GLSRC)gzspotan.h:$(GLSRC)std.h
$(GLSRC)gzspotan.h:$(GLSRC)stdpre.h
$(GLSRC)gzspotan.h:$(GLGEN)arch.h
+$(GLSRC)gzspotan.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gsequivc.h:$(GLSRC)gxdevcli.h
+$(GLSRC)gsequivc.h:$(GLSRC)gxcmap.h
$(GLSRC)gsequivc.h:$(GLSRC)gxtext.h
$(GLSRC)gsequivc.h:$(GLSRC)gstext.h
$(GLSRC)gsequivc.h:$(GLSRC)gsnamecl.h
$(GLSRC)gsequivc.h:$(GLSRC)gstparam.h
-$(GLSRC)gsequivc.h:$(GLSRC)gxfcache.h
-$(GLSRC)gsequivc.h:$(GLSRC)gxcspace.h
-$(GLSRC)gsequivc.h:$(GLSRC)gsropt.h
+$(GLSRC)gsequivc.h:$(GLSRC)gxfmap.h
$(GLSRC)gsequivc.h:$(GLSRC)gsfunc.h
+$(GLSRC)gsequivc.h:$(GLSRC)gxcspace.h
$(GLSRC)gsequivc.h:$(GLSRC)gxrplane.h
-$(GLSRC)gsequivc.h:$(GLSRC)gsuid.h
-$(GLSRC)gsequivc.h:$(GLSRC)gxcmap.h
+$(GLSRC)gsequivc.h:$(GLSRC)gscsel.h
+$(GLSRC)gsequivc.h:$(GLSRC)gxfcache.h
+$(GLSRC)gsequivc.h:$(GLSRC)gsfont.h
$(GLSRC)gsequivc.h:$(GLSRC)gsimage.h
$(GLSRC)gsequivc.h:$(GLSRC)gsdcolor.h
-$(GLSRC)gsequivc.h:$(GLSRC)gxdda.h
$(GLSRC)gsequivc.h:$(GLSRC)gxcvalue.h
-$(GLSRC)gsequivc.h:$(GLSRC)gsfont.h
-$(GLSRC)gsequivc.h:$(GLSRC)gxfmap.h
-$(GLSRC)gsequivc.h:$(GLSRC)gxftype.h
+$(GLSRC)gsequivc.h:$(GLSRC)gxbcache.h
+$(GLSRC)gsequivc.h:$(GLSRC)gsropt.h
+$(GLSRC)gsequivc.h:$(GLSRC)gxdda.h
+$(GLSRC)gsequivc.h:$(GLSRC)gxpath.h
$(GLSRC)gsequivc.h:$(GLSRC)gxfrac.h
+$(GLSRC)gsequivc.h:$(GLSRC)gxtmap.h
+$(GLSRC)gsequivc.h:$(GLSRC)gxftype.h
$(GLSRC)gsequivc.h:$(GLSRC)gscms.h
-$(GLSRC)gsequivc.h:$(GLSRC)gscspace.h
-$(GLSRC)gsequivc.h:$(GLSRC)gxpath.h
-$(GLSRC)gsequivc.h:$(GLSRC)gxbcache.h
-$(GLSRC)gsequivc.h:$(GLSRC)gsdevice.h
-$(GLSRC)gsequivc.h:$(GLSRC)gxarith.h
-$(GLSRC)gsequivc.h:$(GLSRC)gspenum.h
-$(GLSRC)gsequivc.h:$(GLSRC)gxhttile.h
$(GLSRC)gsequivc.h:$(GLSRC)gsrect.h
$(GLSRC)gsequivc.h:$(GLSRC)gslparam.h
+$(GLSRC)gsequivc.h:$(GLSRC)gsdevice.h
+$(GLSRC)gsequivc.h:$(GLSRC)gscpm.h
+$(GLSRC)gsequivc.h:$(GLSRC)gscspace.h
+$(GLSRC)gsequivc.h:$(GLSRC)gsgstate.h
$(GLSRC)gsequivc.h:$(GLSRC)gsxfont.h
-$(GLSRC)gsequivc.h:$(GLSRC)gsiparam.h
$(GLSRC)gsequivc.h:$(GLSRC)gsdsrc.h
-$(GLSRC)gsequivc.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gsequivc.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gsequivc.h:$(GLSRC)gscpm.h
+$(GLSRC)gsequivc.h:$(GLSRC)gsiparam.h
$(GLSRC)gsequivc.h:$(GLSRC)gxfixed.h
-$(GLSRC)gsequivc.h:$(GLSRC)gsrefct.h
+$(GLSRC)gsequivc.h:$(GLSRC)gscompt.h
+$(GLSRC)gsequivc.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gsequivc.h:$(GLSRC)gspenum.h
+$(GLSRC)gsequivc.h:$(GLSRC)gxhttile.h
$(GLSRC)gsequivc.h:$(GLSRC)gsparam.h
+$(GLSRC)gsequivc.h:$(GLSRC)gsrefct.h
$(GLSRC)gsequivc.h:$(GLSRC)gp.h
-$(GLSRC)gsequivc.h:$(GLSRC)gsccolor.h
+$(GLSRC)gsequivc.h:$(GLSRC)memento.h
+$(GLSRC)gsequivc.h:$(GLSRC)memory_.h
+$(GLSRC)gsequivc.h:$(GLSRC)gsuid.h
$(GLSRC)gsequivc.h:$(GLSRC)gsstruct.h
$(GLSRC)gsequivc.h:$(GLSRC)gxsync.h
+$(GLSRC)gsequivc.h:$(GLSRC)gxbitmap.h
$(GLSRC)gsequivc.h:$(GLSRC)srdline.h
$(GLSRC)gsequivc.h:$(GLSRC)scommon.h
-$(GLSRC)gsequivc.h:$(GLSRC)memento.h
-$(GLSRC)gsequivc.h:$(GLSRC)gscsel.h
$(GLSRC)gsequivc.h:$(GLSRC)gsbitmap.h
-$(GLSRC)gsequivc.h:$(GLSRC)gsstype.h
+$(GLSRC)gsequivc.h:$(GLSRC)gsccolor.h
+$(GLSRC)gsequivc.h:$(GLSRC)gxarith.h
$(GLSRC)gsequivc.h:$(GLSRC)stat_.h
-$(GLSRC)gsequivc.h:$(GLSRC)gxtmap.h
-$(GLSRC)gsequivc.h:$(GLSRC)gsmemory.h
$(GLSRC)gsequivc.h:$(GLSRC)gpsync.h
-$(GLSRC)gsequivc.h:$(GLSRC)memory_.h
+$(GLSRC)gsequivc.h:$(GLSRC)gsstype.h
+$(GLSRC)gsequivc.h:$(GLSRC)gsmemory.h
$(GLSRC)gsequivc.h:$(GLSRC)gpgetenv.h
-$(GLSRC)gsequivc.h:$(GLSRC)gslibctx.h
$(GLSRC)gsequivc.h:$(GLSRC)gscdefs.h
-$(GLSRC)gsequivc.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gsequivc.h:$(GLSRC)stdio_.h
-$(GLSRC)gsequivc.h:$(GLSRC)gscompt.h
+$(GLSRC)gsequivc.h:$(GLSRC)gslibctx.h
$(GLSRC)gsequivc.h:$(GLSRC)gxcindex.h
-$(GLSRC)gsequivc.h:$(GLSRC)gsgstate.h
+$(GLSRC)gsequivc.h:$(GLSRC)stdio_.h
+$(GLSRC)gsequivc.h:$(GLSRC)gsccode.h
$(GLSRC)gsequivc.h:$(GLSRC)stdint_.h
$(GLSRC)gsequivc.h:$(GLSRC)gssprintf.h
-$(GLSRC)gsequivc.h:$(GLSRC)gsccode.h
-$(GLSRC)gsequivc.h:$(GLSRC)std.h
$(GLSRC)gsequivc.h:$(GLSRC)gstypes.h
+$(GLSRC)gsequivc.h:$(GLSRC)std.h
$(GLSRC)gsequivc.h:$(GLSRC)stdpre.h
$(GLSRC)gsequivc.h:$(GLGEN)arch.h
-$(GLSRC)gdevdevn.h:$(GLSRC)gsequivc.h
+$(GLSRC)gsequivc.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gdevdevn.h:$(GLSRC)gxblend.h
+$(GLSRC)gdevdevn.h:$(GLSRC)gsequivc.h
$(GLSRC)gdevdevn.h:$(GLSRC)gxdevcli.h
+$(GLSRC)gdevdevn.h:$(GLSRC)gxcmap.h
$(GLSRC)gdevdevn.h:$(GLSRC)gxtext.h
$(GLSRC)gdevdevn.h:$(GLSRC)gstext.h
$(GLSRC)gdevdevn.h:$(GLSRC)gsnamecl.h
$(GLSRC)gdevdevn.h:$(GLSRC)gstparam.h
-$(GLSRC)gdevdevn.h:$(GLSRC)gxfcache.h
-$(GLSRC)gdevdevn.h:$(GLSRC)gxcspace.h
-$(GLSRC)gdevdevn.h:$(GLSRC)gsropt.h
+$(GLSRC)gdevdevn.h:$(GLSRC)gxfmap.h
$(GLSRC)gdevdevn.h:$(GLSRC)gsfunc.h
+$(GLSRC)gdevdevn.h:$(GLSRC)gxcspace.h
$(GLSRC)gdevdevn.h:$(GLSRC)gxrplane.h
-$(GLSRC)gdevdevn.h:$(GLSRC)gsuid.h
-$(GLSRC)gdevdevn.h:$(GLSRC)gxcmap.h
+$(GLSRC)gdevdevn.h:$(GLSRC)gscsel.h
+$(GLSRC)gdevdevn.h:$(GLSRC)gxfcache.h
+$(GLSRC)gdevdevn.h:$(GLSRC)gsfont.h
$(GLSRC)gdevdevn.h:$(GLSRC)gsimage.h
$(GLSRC)gdevdevn.h:$(GLSRC)gsdcolor.h
-$(GLSRC)gdevdevn.h:$(GLSRC)gxdda.h
$(GLSRC)gdevdevn.h:$(GLSRC)gxcvalue.h
-$(GLSRC)gdevdevn.h:$(GLSRC)gsfont.h
-$(GLSRC)gdevdevn.h:$(GLSRC)gxfmap.h
-$(GLSRC)gdevdevn.h:$(GLSRC)gxftype.h
+$(GLSRC)gdevdevn.h:$(GLSRC)gxbcache.h
+$(GLSRC)gdevdevn.h:$(GLSRC)gsropt.h
+$(GLSRC)gdevdevn.h:$(GLSRC)gxdda.h
+$(GLSRC)gdevdevn.h:$(GLSRC)gxpath.h
$(GLSRC)gdevdevn.h:$(GLSRC)gxfrac.h
+$(GLSRC)gdevdevn.h:$(GLSRC)gxtmap.h
+$(GLSRC)gdevdevn.h:$(GLSRC)gxftype.h
$(GLSRC)gdevdevn.h:$(GLSRC)gscms.h
-$(GLSRC)gdevdevn.h:$(GLSRC)gscspace.h
-$(GLSRC)gdevdevn.h:$(GLSRC)gxpath.h
-$(GLSRC)gdevdevn.h:$(GLSRC)gxbcache.h
-$(GLSRC)gdevdevn.h:$(GLSRC)gsdevice.h
-$(GLSRC)gdevdevn.h:$(GLSRC)gxarith.h
-$(GLSRC)gdevdevn.h:$(GLSRC)gspenum.h
-$(GLSRC)gdevdevn.h:$(GLSRC)gxhttile.h
$(GLSRC)gdevdevn.h:$(GLSRC)gsrect.h
$(GLSRC)gdevdevn.h:$(GLSRC)gslparam.h
+$(GLSRC)gdevdevn.h:$(GLSRC)gsdevice.h
+$(GLSRC)gdevdevn.h:$(GLSRC)gscpm.h
+$(GLSRC)gdevdevn.h:$(GLSRC)gscspace.h
+$(GLSRC)gdevdevn.h:$(GLSRC)gsgstate.h
$(GLSRC)gdevdevn.h:$(GLSRC)gsxfont.h
-$(GLSRC)gdevdevn.h:$(GLSRC)gsiparam.h
$(GLSRC)gdevdevn.h:$(GLSRC)gsdsrc.h
-$(GLSRC)gdevdevn.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gdevdevn.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gdevdevn.h:$(GLSRC)gscpm.h
+$(GLSRC)gdevdevn.h:$(GLSRC)gsiparam.h
$(GLSRC)gdevdevn.h:$(GLSRC)gxfixed.h
-$(GLSRC)gdevdevn.h:$(GLSRC)gsrefct.h
+$(GLSRC)gdevdevn.h:$(GLSRC)gscompt.h
+$(GLSRC)gdevdevn.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gdevdevn.h:$(GLSRC)gspenum.h
+$(GLSRC)gdevdevn.h:$(GLSRC)gxhttile.h
$(GLSRC)gdevdevn.h:$(GLSRC)gsparam.h
+$(GLSRC)gdevdevn.h:$(GLSRC)gsrefct.h
$(GLSRC)gdevdevn.h:$(GLSRC)gp.h
-$(GLSRC)gdevdevn.h:$(GLSRC)gsccolor.h
+$(GLSRC)gdevdevn.h:$(GLSRC)memento.h
+$(GLSRC)gdevdevn.h:$(GLSRC)memory_.h
+$(GLSRC)gdevdevn.h:$(GLSRC)gsuid.h
$(GLSRC)gdevdevn.h:$(GLSRC)gsstruct.h
$(GLSRC)gdevdevn.h:$(GLSRC)gxsync.h
+$(GLSRC)gdevdevn.h:$(GLSRC)gxbitmap.h
$(GLSRC)gdevdevn.h:$(GLSRC)srdline.h
$(GLSRC)gdevdevn.h:$(GLSRC)scommon.h
-$(GLSRC)gdevdevn.h:$(GLSRC)memento.h
-$(GLSRC)gdevdevn.h:$(GLSRC)gscsel.h
$(GLSRC)gdevdevn.h:$(GLSRC)gsbitmap.h
-$(GLSRC)gdevdevn.h:$(GLSRC)gsstype.h
+$(GLSRC)gdevdevn.h:$(GLSRC)gsccolor.h
+$(GLSRC)gdevdevn.h:$(GLSRC)gxarith.h
$(GLSRC)gdevdevn.h:$(GLSRC)stat_.h
-$(GLSRC)gdevdevn.h:$(GLSRC)gxtmap.h
-$(GLSRC)gdevdevn.h:$(GLSRC)gsmemory.h
$(GLSRC)gdevdevn.h:$(GLSRC)gpsync.h
-$(GLSRC)gdevdevn.h:$(GLSRC)memory_.h
+$(GLSRC)gdevdevn.h:$(GLSRC)gsstype.h
+$(GLSRC)gdevdevn.h:$(GLSRC)gsmemory.h
$(GLSRC)gdevdevn.h:$(GLSRC)gpgetenv.h
-$(GLSRC)gdevdevn.h:$(GLSRC)gslibctx.h
$(GLSRC)gdevdevn.h:$(GLSRC)gscdefs.h
-$(GLSRC)gdevdevn.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gdevdevn.h:$(GLSRC)stdio_.h
-$(GLSRC)gdevdevn.h:$(GLSRC)gscompt.h
+$(GLSRC)gdevdevn.h:$(GLSRC)gslibctx.h
$(GLSRC)gdevdevn.h:$(GLSRC)gxcindex.h
-$(GLSRC)gdevdevn.h:$(GLSRC)gsgstate.h
+$(GLSRC)gdevdevn.h:$(GLSRC)stdio_.h
+$(GLSRC)gdevdevn.h:$(GLSRC)gsccode.h
$(GLSRC)gdevdevn.h:$(GLSRC)stdint_.h
$(GLSRC)gdevdevn.h:$(GLSRC)gssprintf.h
-$(GLSRC)gdevdevn.h:$(GLSRC)gsccode.h
-$(GLSRC)gdevdevn.h:$(GLSRC)std.h
$(GLSRC)gdevdevn.h:$(GLSRC)gstypes.h
+$(GLSRC)gdevdevn.h:$(GLSRC)std.h
$(GLSRC)gdevdevn.h:$(GLSRC)stdpre.h
$(GLSRC)gdevdevn.h:$(GLGEN)arch.h
+$(GLSRC)gdevdevn.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gdevdevnprn.h:$(GLSRC)gdevprn.h
$(GLSRC)gdevdevnprn.h:$(GLSRC)string_.h
$(GLSRC)gdevdevnprn.h:$(GLSRC)gsstrtok.h
@@ -10066,1041 +10079,1041 @@ $(GLSRC)gdevdevnprn.h:$(GLSRC)gxclthrd.h
$(GLSRC)gdevdevnprn.h:$(GLSRC)gxclpage.h
$(GLSRC)gdevdevnprn.h:$(GLSRC)gxclist.h
$(GLSRC)gdevdevnprn.h:$(GLSRC)gxgstate.h
-$(GLSRC)gdevdevnprn.h:$(GLSRC)gxline.h
$(GLSRC)gdevdevnprn.h:$(GLSRC)gstrans.h
+$(GLSRC)gdevdevnprn.h:$(GLSRC)gdevp14.h
+$(GLSRC)gdevdevnprn.h:$(GLSRC)gxline.h
$(GLSRC)gdevdevnprn.h:$(GLSRC)gsht1.h
+$(GLSRC)gdevdevnprn.h:$(GLSRC)gxcomp.h
$(GLSRC)gdevdevnprn.h:$(GLSRC)math_.h
-$(GLSRC)gdevdevnprn.h:$(GLSRC)gdevp14.h
$(GLSRC)gdevdevnprn.h:$(GLSRC)gxcolor2.h
$(GLSRC)gdevdevnprn.h:$(GLSRC)gxpcolor.h
+$(GLSRC)gdevdevnprn.h:$(GLSRC)gxdevmem.h
$(GLSRC)gdevdevnprn.h:$(GLSRC)gdevdevn.h
-$(GLSRC)gdevdevnprn.h:$(GLSRC)gsequivc.h
$(GLSRC)gdevdevnprn.h:$(GLSRC)gx.h
-$(GLSRC)gdevdevnprn.h:$(GLSRC)gxblend.h
$(GLSRC)gdevdevnprn.h:$(GLSRC)gxclipsr.h
-$(GLSRC)gdevdevnprn.h:$(GLSRC)gxcomp.h
-$(GLSRC)gdevdevnprn.h:$(GLSRC)gxdcolor.h
$(GLSRC)gdevdevnprn.h:$(GLSRC)gdebug.h
-$(GLSRC)gdevdevnprn.h:$(GLSRC)gxmatrix.h
-$(GLSRC)gdevdevnprn.h:$(GLSRC)gxbitfmt.h
$(GLSRC)gdevdevnprn.h:$(GLSRC)gxdevbuf.h
+$(GLSRC)gdevdevnprn.h:$(GLSRC)gxdcolor.h
$(GLSRC)gdevdevnprn.h:$(GLSRC)gxband.h
+$(GLSRC)gdevdevnprn.h:$(GLSRC)gxblend.h
$(GLSRC)gdevdevnprn.h:$(GLSRC)gscolor2.h
-$(GLSRC)gdevdevnprn.h:$(GLSRC)gscindex.h
+$(GLSRC)gdevdevnprn.h:$(GLSRC)gxmatrix.h
$(GLSRC)gdevdevnprn.h:$(GLSRC)gxdevice.h
-$(GLSRC)gdevdevnprn.h:$(GLSRC)gsht.h
$(GLSRC)gdevdevnprn.h:$(GLSRC)gxcpath.h
-$(GLSRC)gdevdevnprn.h:$(GLSRC)gxdevmem.h
+$(GLSRC)gdevdevnprn.h:$(GLSRC)gsht.h
+$(GLSRC)gdevdevnprn.h:$(GLSRC)gsequivc.h
$(GLSRC)gdevdevnprn.h:$(GLSRC)gxdevcli.h
$(GLSRC)gdevdevnprn.h:$(GLSRC)gxpcache.h
+$(GLSRC)gdevdevnprn.h:$(GLSRC)gscindex.h
+$(GLSRC)gdevdevnprn.h:$(GLSRC)gxcmap.h
$(GLSRC)gdevdevnprn.h:$(GLSRC)gsptype1.h
-$(GLSRC)gdevdevnprn.h:$(GLSRC)gxtext.h
$(GLSRC)gdevdevnprn.h:$(GLSRC)gscie.h
+$(GLSRC)gdevdevnprn.h:$(GLSRC)gxtext.h
$(GLSRC)gdevdevnprn.h:$(GLSRC)gstext.h
+$(GLSRC)gdevdevnprn.h:$(GLSRC)gxstate.h
$(GLSRC)gdevdevnprn.h:$(GLSRC)gsnamecl.h
$(GLSRC)gdevdevnprn.h:$(GLSRC)gstparam.h
-$(GLSRC)gdevdevnprn.h:$(GLSRC)gxstate.h
$(GLSRC)gdevdevnprn.h:$(GLSRC)gspcolor.h
-$(GLSRC)gdevdevnprn.h:$(GLSRC)gxfcache.h
-$(GLSRC)gdevdevnprn.h:$(GLSRC)gxcspace.h
-$(GLSRC)gdevdevnprn.h:$(GLSRC)gsropt.h
-$(GLSRC)gdevdevnprn.h:$(GLSRC)gsfunc.h
+$(GLSRC)gdevdevnprn.h:$(GLSRC)gxfmap.h
$(GLSRC)gdevdevnprn.h:$(GLSRC)gsmalloc.h
-$(GLSRC)gdevdevnprn.h:$(GLSRC)gxrplane.h
+$(GLSRC)gdevdevnprn.h:$(GLSRC)gsfunc.h
+$(GLSRC)gdevdevnprn.h:$(GLSRC)gxcspace.h
$(GLSRC)gdevdevnprn.h:$(GLSRC)gxctable.h
-$(GLSRC)gdevdevnprn.h:$(GLSRC)gsuid.h
-$(GLSRC)gdevdevnprn.h:$(GLSRC)gxcmap.h
+$(GLSRC)gdevdevnprn.h:$(GLSRC)gxrplane.h
+$(GLSRC)gdevdevnprn.h:$(GLSRC)gscsel.h
+$(GLSRC)gdevdevnprn.h:$(GLSRC)gxfcache.h
+$(GLSRC)gdevdevnprn.h:$(GLSRC)gsfont.h
$(GLSRC)gdevdevnprn.h:$(GLSRC)gsimage.h
$(GLSRC)gdevdevnprn.h:$(GLSRC)gsdcolor.h
-$(GLSRC)gdevdevnprn.h:$(GLSRC)gxdda.h
$(GLSRC)gdevdevnprn.h:$(GLSRC)gxcvalue.h
-$(GLSRC)gdevdevnprn.h:$(GLSRC)gsfont.h
-$(GLSRC)gdevdevnprn.h:$(GLSRC)gxfmap.h
+$(GLSRC)gdevdevnprn.h:$(GLSRC)gxbcache.h
+$(GLSRC)gdevdevnprn.h:$(GLSRC)gsropt.h
+$(GLSRC)gdevdevnprn.h:$(GLSRC)gxdda.h
+$(GLSRC)gdevdevnprn.h:$(GLSRC)gxpath.h
$(GLSRC)gdevdevnprn.h:$(GLSRC)gxiclass.h
-$(GLSRC)gdevdevnprn.h:$(GLSRC)gxftype.h
$(GLSRC)gdevdevnprn.h:$(GLSRC)gxfrac.h
+$(GLSRC)gdevdevnprn.h:$(GLSRC)gxtmap.h
+$(GLSRC)gdevdevnprn.h:$(GLSRC)gxftype.h
$(GLSRC)gdevdevnprn.h:$(GLSRC)gscms.h
-$(GLSRC)gdevdevnprn.h:$(GLSRC)gscspace.h
-$(GLSRC)gdevdevnprn.h:$(GLSRC)gxpath.h
-$(GLSRC)gdevdevnprn.h:$(GLSRC)gxbcache.h
-$(GLSRC)gdevdevnprn.h:$(GLSRC)gsdevice.h
-$(GLSRC)gdevdevnprn.h:$(GLSRC)gxarith.h
-$(GLSRC)gdevdevnprn.h:$(GLSRC)gxstdio.h
-$(GLSRC)gdevdevnprn.h:$(GLSRC)gspenum.h
-$(GLSRC)gdevdevnprn.h:$(GLSRC)gxhttile.h
$(GLSRC)gdevdevnprn.h:$(GLSRC)gsrect.h
$(GLSRC)gdevdevnprn.h:$(GLSRC)gslparam.h
+$(GLSRC)gdevdevnprn.h:$(GLSRC)gsdevice.h
+$(GLSRC)gdevdevnprn.h:$(GLSRC)gxbitfmt.h
+$(GLSRC)gdevdevnprn.h:$(GLSRC)gscpm.h
+$(GLSRC)gdevdevnprn.h:$(GLSRC)gscspace.h
+$(GLSRC)gdevdevnprn.h:$(GLSRC)gsgstate.h
+$(GLSRC)gdevdevnprn.h:$(GLSRC)gxstdio.h
$(GLSRC)gdevdevnprn.h:$(GLSRC)gsxfont.h
-$(GLSRC)gdevdevnprn.h:$(GLSRC)gxclio.h
-$(GLSRC)gdevdevnprn.h:$(GLSRC)gsiparam.h
$(GLSRC)gdevdevnprn.h:$(GLSRC)gsdsrc.h
$(GLSRC)gdevdevnprn.h:$(GLSRC)gsio.h
-$(GLSRC)gdevdevnprn.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gdevdevnprn.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gdevdevnprn.h:$(GLSRC)gscpm.h
+$(GLSRC)gdevdevnprn.h:$(GLSRC)gsiparam.h
$(GLSRC)gdevdevnprn.h:$(GLSRC)gxfixed.h
-$(GLSRC)gdevdevnprn.h:$(GLSRC)gsrefct.h
+$(GLSRC)gdevdevnprn.h:$(GLSRC)gxclio.h
+$(GLSRC)gdevdevnprn.h:$(GLSRC)gscompt.h
+$(GLSRC)gdevdevnprn.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gdevdevnprn.h:$(GLSRC)gspenum.h
+$(GLSRC)gdevdevnprn.h:$(GLSRC)gxhttile.h
$(GLSRC)gdevdevnprn.h:$(GLSRC)gsparam.h
+$(GLSRC)gdevdevnprn.h:$(GLSRC)gsrefct.h
$(GLSRC)gdevdevnprn.h:$(GLSRC)gp.h
-$(GLSRC)gdevdevnprn.h:$(GLSRC)gsccolor.h
-$(GLSRC)gdevdevnprn.h:$(GLSRC)gsstruct.h
-$(GLSRC)gdevdevnprn.h:$(GLSRC)gxsync.h
+$(GLSRC)gdevdevnprn.h:$(GLSRC)memento.h
+$(GLSRC)gdevdevnprn.h:$(GLSRC)memory_.h
$(GLSRC)gdevdevnprn.h:$(GLSRC)gsutil.h
+$(GLSRC)gdevdevnprn.h:$(GLSRC)gsuid.h
$(GLSRC)gdevdevnprn.h:$(GLSRC)gsstrl.h
+$(GLSRC)gdevdevnprn.h:$(GLSRC)gsstruct.h
$(GLSRC)gdevdevnprn.h:$(GLSRC)gdbflags.h
-$(GLSRC)gdevdevnprn.h:$(GLSRC)srdline.h
+$(GLSRC)gdevdevnprn.h:$(GLSRC)gxsync.h
$(GLSRC)gdevdevnprn.h:$(GLSRC)gserrors.h
-$(GLSRC)gdevdevnprn.h:$(GLSRC)scommon.h
-$(GLSRC)gdevdevnprn.h:$(GLSRC)memento.h
+$(GLSRC)gdevdevnprn.h:$(GLSRC)gxbitmap.h
$(GLSRC)gdevdevnprn.h:$(GLSRC)vmsmath.h
-$(GLSRC)gdevdevnprn.h:$(GLSRC)gscsel.h
-$(GLSRC)gdevdevnprn.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gdevdevnprn.h:$(GLSRC)srdline.h
+$(GLSRC)gdevdevnprn.h:$(GLSRC)scommon.h
$(GLSRC)gdevdevnprn.h:$(GLSRC)gsfname.h
-$(GLSRC)gdevdevnprn.h:$(GLSRC)gsstype.h
+$(GLSRC)gdevdevnprn.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gdevdevnprn.h:$(GLSRC)gsccolor.h
+$(GLSRC)gdevdevnprn.h:$(GLSRC)gxarith.h
$(GLSRC)gdevdevnprn.h:$(GLSRC)stat_.h
-$(GLSRC)gdevdevnprn.h:$(GLSRC)gxtmap.h
-$(GLSRC)gdevdevnprn.h:$(GLSRC)gsmemory.h
$(GLSRC)gdevdevnprn.h:$(GLSRC)gpsync.h
-$(GLSRC)gdevdevnprn.h:$(GLSRC)memory_.h
+$(GLSRC)gdevdevnprn.h:$(GLSRC)gsstype.h
+$(GLSRC)gdevdevnprn.h:$(GLSRC)gsmemory.h
$(GLSRC)gdevdevnprn.h:$(GLSRC)gpgetenv.h
-$(GLSRC)gdevdevnprn.h:$(GLSRC)gslibctx.h
$(GLSRC)gdevdevnprn.h:$(GLSRC)gscdefs.h
-$(GLSRC)gdevdevnprn.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gdevdevnprn.h:$(GLSRC)stdio_.h
-$(GLSRC)gdevdevnprn.h:$(GLSRC)gscompt.h
+$(GLSRC)gdevdevnprn.h:$(GLSRC)gslibctx.h
$(GLSRC)gdevdevnprn.h:$(GLSRC)gxcindex.h
-$(GLSRC)gdevdevnprn.h:$(GLSRC)gsgstate.h
+$(GLSRC)gdevdevnprn.h:$(GLSRC)stdio_.h
+$(GLSRC)gdevdevnprn.h:$(GLSRC)gsccode.h
$(GLSRC)gdevdevnprn.h:$(GLSRC)stdint_.h
$(GLSRC)gdevdevnprn.h:$(GLSRC)gssprintf.h
-$(GLSRC)gdevdevnprn.h:$(GLSRC)gsccode.h
-$(GLSRC)gdevdevnprn.h:$(GLSRC)std.h
$(GLSRC)gdevdevnprn.h:$(GLSRC)gstypes.h
+$(GLSRC)gdevdevnprn.h:$(GLSRC)std.h
$(GLSRC)gdevdevnprn.h:$(GLSRC)stdpre.h
$(GLSRC)gdevdevnprn.h:$(GLGEN)arch.h
+$(GLSRC)gdevdevnprn.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gdevoflt.h:$(GLSRC)gxdevice.h
$(GLSRC)gdevoflt.h:$(GLSRC)gxdevcli.h
+$(GLSRC)gdevoflt.h:$(GLSRC)gxcmap.h
$(GLSRC)gdevoflt.h:$(GLSRC)gxtext.h
$(GLSRC)gdevoflt.h:$(GLSRC)gstext.h
$(GLSRC)gdevoflt.h:$(GLSRC)gsnamecl.h
$(GLSRC)gdevoflt.h:$(GLSRC)gstparam.h
-$(GLSRC)gdevoflt.h:$(GLSRC)gxfcache.h
-$(GLSRC)gdevoflt.h:$(GLSRC)gxcspace.h
-$(GLSRC)gdevoflt.h:$(GLSRC)gsropt.h
-$(GLSRC)gdevoflt.h:$(GLSRC)gsfunc.h
+$(GLSRC)gdevoflt.h:$(GLSRC)gxfmap.h
$(GLSRC)gdevoflt.h:$(GLSRC)gsmalloc.h
+$(GLSRC)gdevoflt.h:$(GLSRC)gsfunc.h
+$(GLSRC)gdevoflt.h:$(GLSRC)gxcspace.h
$(GLSRC)gdevoflt.h:$(GLSRC)gxrplane.h
-$(GLSRC)gdevoflt.h:$(GLSRC)gsuid.h
-$(GLSRC)gdevoflt.h:$(GLSRC)gxcmap.h
+$(GLSRC)gdevoflt.h:$(GLSRC)gscsel.h
+$(GLSRC)gdevoflt.h:$(GLSRC)gxfcache.h
+$(GLSRC)gdevoflt.h:$(GLSRC)gsfont.h
$(GLSRC)gdevoflt.h:$(GLSRC)gsimage.h
$(GLSRC)gdevoflt.h:$(GLSRC)gsdcolor.h
-$(GLSRC)gdevoflt.h:$(GLSRC)gxdda.h
$(GLSRC)gdevoflt.h:$(GLSRC)gxcvalue.h
-$(GLSRC)gdevoflt.h:$(GLSRC)gsfont.h
-$(GLSRC)gdevoflt.h:$(GLSRC)gxfmap.h
-$(GLSRC)gdevoflt.h:$(GLSRC)gxftype.h
+$(GLSRC)gdevoflt.h:$(GLSRC)gxbcache.h
+$(GLSRC)gdevoflt.h:$(GLSRC)gsropt.h
+$(GLSRC)gdevoflt.h:$(GLSRC)gxdda.h
+$(GLSRC)gdevoflt.h:$(GLSRC)gxpath.h
$(GLSRC)gdevoflt.h:$(GLSRC)gxfrac.h
+$(GLSRC)gdevoflt.h:$(GLSRC)gxtmap.h
+$(GLSRC)gdevoflt.h:$(GLSRC)gxftype.h
$(GLSRC)gdevoflt.h:$(GLSRC)gscms.h
-$(GLSRC)gdevoflt.h:$(GLSRC)gscspace.h
-$(GLSRC)gdevoflt.h:$(GLSRC)gxpath.h
-$(GLSRC)gdevoflt.h:$(GLSRC)gxbcache.h
-$(GLSRC)gdevoflt.h:$(GLSRC)gsdevice.h
-$(GLSRC)gdevoflt.h:$(GLSRC)gxarith.h
-$(GLSRC)gdevoflt.h:$(GLSRC)gxstdio.h
-$(GLSRC)gdevoflt.h:$(GLSRC)gspenum.h
-$(GLSRC)gdevoflt.h:$(GLSRC)gxhttile.h
$(GLSRC)gdevoflt.h:$(GLSRC)gsrect.h
$(GLSRC)gdevoflt.h:$(GLSRC)gslparam.h
+$(GLSRC)gdevoflt.h:$(GLSRC)gsdevice.h
+$(GLSRC)gdevoflt.h:$(GLSRC)gscpm.h
+$(GLSRC)gdevoflt.h:$(GLSRC)gscspace.h
+$(GLSRC)gdevoflt.h:$(GLSRC)gsgstate.h
+$(GLSRC)gdevoflt.h:$(GLSRC)gxstdio.h
$(GLSRC)gdevoflt.h:$(GLSRC)gsxfont.h
-$(GLSRC)gdevoflt.h:$(GLSRC)gsiparam.h
$(GLSRC)gdevoflt.h:$(GLSRC)gsdsrc.h
$(GLSRC)gdevoflt.h:$(GLSRC)gsio.h
-$(GLSRC)gdevoflt.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gdevoflt.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gdevoflt.h:$(GLSRC)gscpm.h
+$(GLSRC)gdevoflt.h:$(GLSRC)gsiparam.h
$(GLSRC)gdevoflt.h:$(GLSRC)gxfixed.h
-$(GLSRC)gdevoflt.h:$(GLSRC)gsrefct.h
+$(GLSRC)gdevoflt.h:$(GLSRC)gscompt.h
+$(GLSRC)gdevoflt.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gdevoflt.h:$(GLSRC)gspenum.h
+$(GLSRC)gdevoflt.h:$(GLSRC)gxhttile.h
$(GLSRC)gdevoflt.h:$(GLSRC)gsparam.h
+$(GLSRC)gdevoflt.h:$(GLSRC)gsrefct.h
$(GLSRC)gdevoflt.h:$(GLSRC)gp.h
-$(GLSRC)gdevoflt.h:$(GLSRC)gsccolor.h
+$(GLSRC)gdevoflt.h:$(GLSRC)memento.h
+$(GLSRC)gdevoflt.h:$(GLSRC)memory_.h
+$(GLSRC)gdevoflt.h:$(GLSRC)gsuid.h
$(GLSRC)gdevoflt.h:$(GLSRC)gsstruct.h
$(GLSRC)gdevoflt.h:$(GLSRC)gxsync.h
+$(GLSRC)gdevoflt.h:$(GLSRC)gxbitmap.h
$(GLSRC)gdevoflt.h:$(GLSRC)srdline.h
$(GLSRC)gdevoflt.h:$(GLSRC)scommon.h
-$(GLSRC)gdevoflt.h:$(GLSRC)memento.h
-$(GLSRC)gdevoflt.h:$(GLSRC)gscsel.h
-$(GLSRC)gdevoflt.h:$(GLSRC)gsbitmap.h
$(GLSRC)gdevoflt.h:$(GLSRC)gsfname.h
-$(GLSRC)gdevoflt.h:$(GLSRC)gsstype.h
+$(GLSRC)gdevoflt.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gdevoflt.h:$(GLSRC)gsccolor.h
+$(GLSRC)gdevoflt.h:$(GLSRC)gxarith.h
$(GLSRC)gdevoflt.h:$(GLSRC)stat_.h
-$(GLSRC)gdevoflt.h:$(GLSRC)gxtmap.h
-$(GLSRC)gdevoflt.h:$(GLSRC)gsmemory.h
$(GLSRC)gdevoflt.h:$(GLSRC)gpsync.h
-$(GLSRC)gdevoflt.h:$(GLSRC)memory_.h
+$(GLSRC)gdevoflt.h:$(GLSRC)gsstype.h
+$(GLSRC)gdevoflt.h:$(GLSRC)gsmemory.h
$(GLSRC)gdevoflt.h:$(GLSRC)gpgetenv.h
-$(GLSRC)gdevoflt.h:$(GLSRC)gslibctx.h
$(GLSRC)gdevoflt.h:$(GLSRC)gscdefs.h
-$(GLSRC)gdevoflt.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gdevoflt.h:$(GLSRC)stdio_.h
-$(GLSRC)gdevoflt.h:$(GLSRC)gscompt.h
+$(GLSRC)gdevoflt.h:$(GLSRC)gslibctx.h
$(GLSRC)gdevoflt.h:$(GLSRC)gxcindex.h
-$(GLSRC)gdevoflt.h:$(GLSRC)gsgstate.h
+$(GLSRC)gdevoflt.h:$(GLSRC)stdio_.h
+$(GLSRC)gdevoflt.h:$(GLSRC)gsccode.h
$(GLSRC)gdevoflt.h:$(GLSRC)stdint_.h
$(GLSRC)gdevoflt.h:$(GLSRC)gssprintf.h
-$(GLSRC)gdevoflt.h:$(GLSRC)gsccode.h
-$(GLSRC)gdevoflt.h:$(GLSRC)std.h
$(GLSRC)gdevoflt.h:$(GLSRC)gstypes.h
+$(GLSRC)gdevoflt.h:$(GLSRC)std.h
$(GLSRC)gdevoflt.h:$(GLSRC)stdpre.h
$(GLSRC)gdevoflt.h:$(GLGEN)arch.h
+$(GLSRC)gdevoflt.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxfapi.h:$(GLSRC)gstext.h
-$(GLSRC)gxfapi.h:$(GLSRC)gsdcolor.h
$(GLSRC)gxfapi.h:$(GLSRC)gsfont.h
-$(GLSRC)gxfapi.h:$(GLSRC)gscms.h
-$(GLSRC)gxfapi.h:$(GLSRC)gscspace.h
+$(GLSRC)gxfapi.h:$(GLSRC)gsdcolor.h
$(GLSRC)gxfapi.h:$(GLSRC)gxpath.h
-$(GLSRC)gxfapi.h:$(GLSRC)gsdevice.h
-$(GLSRC)gxfapi.h:$(GLSRC)gxarith.h
-$(GLSRC)gxfapi.h:$(GLSRC)gspenum.h
-$(GLSRC)gxfapi.h:$(GLSRC)gxhttile.h
+$(GLSRC)gxfapi.h:$(GLSRC)gscms.h
$(GLSRC)gxfapi.h:$(GLSRC)gsrect.h
$(GLSRC)gxfapi.h:$(GLSRC)gslparam.h
-$(GLSRC)gxfapi.h:$(GLSRC)gsiparam.h
-$(GLSRC)gxfapi.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gxfapi.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gxfapi.h:$(GLSRC)gsdevice.h
$(GLSRC)gxfapi.h:$(GLSRC)gscpm.h
+$(GLSRC)gxfapi.h:$(GLSRC)gscspace.h
+$(GLSRC)gxfapi.h:$(GLSRC)gsgstate.h
+$(GLSRC)gxfapi.h:$(GLSRC)gsiparam.h
$(GLSRC)gxfapi.h:$(GLSRC)gxfixed.h
-$(GLSRC)gxfapi.h:$(GLSRC)gsrefct.h
+$(GLSRC)gxfapi.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gxfapi.h:$(GLSRC)gspenum.h
+$(GLSRC)gxfapi.h:$(GLSRC)gxhttile.h
$(GLSRC)gxfapi.h:$(GLSRC)gsparam.h
-$(GLSRC)gxfapi.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxfapi.h:$(GLSRC)gsrefct.h
+$(GLSRC)gxfapi.h:$(GLSRC)memento.h
$(GLSRC)gxfapi.h:$(GLSRC)gxsync.h
+$(GLSRC)gxfapi.h:$(GLSRC)gxbitmap.h
$(GLSRC)gxfapi.h:$(GLSRC)scommon.h
-$(GLSRC)gxfapi.h:$(GLSRC)memento.h
$(GLSRC)gxfapi.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gxfapi.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxfapi.h:$(GLSRC)gxarith.h
+$(GLSRC)gxfapi.h:$(GLSRC)gpsync.h
$(GLSRC)gxfapi.h:$(GLSRC)gsstype.h
$(GLSRC)gxfapi.h:$(GLSRC)gsmemory.h
-$(GLSRC)gxfapi.h:$(GLSRC)gpsync.h
$(GLSRC)gxfapi.h:$(GLSRC)gslibctx.h
-$(GLSRC)gxfapi.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gxfapi.h:$(GLSRC)stdio_.h
$(GLSRC)gxfapi.h:$(GLSRC)gxcindex.h
-$(GLSRC)gxfapi.h:$(GLSRC)gsgstate.h
+$(GLSRC)gxfapi.h:$(GLSRC)stdio_.h
+$(GLSRC)gxfapi.h:$(GLSRC)gsccode.h
$(GLSRC)gxfapi.h:$(GLSRC)stdint_.h
$(GLSRC)gxfapi.h:$(GLSRC)gssprintf.h
-$(GLSRC)gxfapi.h:$(GLSRC)gsccode.h
-$(GLSRC)gxfapi.h:$(GLSRC)std.h
$(GLSRC)gxfapi.h:$(GLSRC)gstypes.h
+$(GLSRC)gxfapi.h:$(GLSRC)std.h
$(GLSRC)gxfapi.h:$(GLSRC)stdpre.h
$(GLSRC)gxfapi.h:$(GLGEN)arch.h
+$(GLSRC)gxfapi.h:$(GLSRC)gs_dll_call.h
$(GLSRC)wrfont.h:$(GLSRC)std.h
$(GLSRC)wrfont.h:$(GLSRC)stdpre.h
$(GLSRC)wrfont.h:$(GLGEN)arch.h
$(GLSRC)write_t1.h:$(GLSRC)gxfapi.h
$(GLSRC)write_t1.h:$(GLSRC)gstext.h
-$(GLSRC)write_t1.h:$(GLSRC)gsdcolor.h
$(GLSRC)write_t1.h:$(GLSRC)gsfont.h
-$(GLSRC)write_t1.h:$(GLSRC)gscms.h
-$(GLSRC)write_t1.h:$(GLSRC)gscspace.h
+$(GLSRC)write_t1.h:$(GLSRC)gsdcolor.h
$(GLSRC)write_t1.h:$(GLSRC)gxpath.h
-$(GLSRC)write_t1.h:$(GLSRC)gsdevice.h
-$(GLSRC)write_t1.h:$(GLSRC)gxarith.h
-$(GLSRC)write_t1.h:$(GLSRC)gspenum.h
-$(GLSRC)write_t1.h:$(GLSRC)gxhttile.h
+$(GLSRC)write_t1.h:$(GLSRC)gscms.h
$(GLSRC)write_t1.h:$(GLSRC)gsrect.h
$(GLSRC)write_t1.h:$(GLSRC)gslparam.h
-$(GLSRC)write_t1.h:$(GLSRC)gsiparam.h
-$(GLSRC)write_t1.h:$(GLSRC)gxbitmap.h
-$(GLSRC)write_t1.h:$(GLSRC)gsmatrix.h
+$(GLSRC)write_t1.h:$(GLSRC)gsdevice.h
$(GLSRC)write_t1.h:$(GLSRC)gscpm.h
+$(GLSRC)write_t1.h:$(GLSRC)gscspace.h
+$(GLSRC)write_t1.h:$(GLSRC)gsgstate.h
+$(GLSRC)write_t1.h:$(GLSRC)gsiparam.h
$(GLSRC)write_t1.h:$(GLSRC)gxfixed.h
-$(GLSRC)write_t1.h:$(GLSRC)gsrefct.h
+$(GLSRC)write_t1.h:$(GLSRC)gsmatrix.h
+$(GLSRC)write_t1.h:$(GLSRC)gspenum.h
+$(GLSRC)write_t1.h:$(GLSRC)gxhttile.h
$(GLSRC)write_t1.h:$(GLSRC)gsparam.h
-$(GLSRC)write_t1.h:$(GLSRC)gsccolor.h
+$(GLSRC)write_t1.h:$(GLSRC)gsrefct.h
+$(GLSRC)write_t1.h:$(GLSRC)memento.h
$(GLSRC)write_t1.h:$(GLSRC)gxsync.h
+$(GLSRC)write_t1.h:$(GLSRC)gxbitmap.h
$(GLSRC)write_t1.h:$(GLSRC)scommon.h
-$(GLSRC)write_t1.h:$(GLSRC)memento.h
$(GLSRC)write_t1.h:$(GLSRC)gsbitmap.h
+$(GLSRC)write_t1.h:$(GLSRC)gsccolor.h
+$(GLSRC)write_t1.h:$(GLSRC)gxarith.h
+$(GLSRC)write_t1.h:$(GLSRC)gpsync.h
$(GLSRC)write_t1.h:$(GLSRC)gsstype.h
$(GLSRC)write_t1.h:$(GLSRC)gsmemory.h
-$(GLSRC)write_t1.h:$(GLSRC)gpsync.h
$(GLSRC)write_t1.h:$(GLSRC)gslibctx.h
-$(GLSRC)write_t1.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)write_t1.h:$(GLSRC)stdio_.h
$(GLSRC)write_t1.h:$(GLSRC)gxcindex.h
-$(GLSRC)write_t1.h:$(GLSRC)gsgstate.h
+$(GLSRC)write_t1.h:$(GLSRC)stdio_.h
+$(GLSRC)write_t1.h:$(GLSRC)gsccode.h
$(GLSRC)write_t1.h:$(GLSRC)stdint_.h
$(GLSRC)write_t1.h:$(GLSRC)gssprintf.h
-$(GLSRC)write_t1.h:$(GLSRC)gsccode.h
-$(GLSRC)write_t1.h:$(GLSRC)std.h
$(GLSRC)write_t1.h:$(GLSRC)gstypes.h
+$(GLSRC)write_t1.h:$(GLSRC)std.h
$(GLSRC)write_t1.h:$(GLSRC)stdpre.h
$(GLSRC)write_t1.h:$(GLGEN)arch.h
+$(GLSRC)write_t1.h:$(GLSRC)gs_dll_call.h
$(GLSRC)write_t2.h:$(GLSRC)gxfapi.h
$(GLSRC)write_t2.h:$(GLSRC)gstext.h
-$(GLSRC)write_t2.h:$(GLSRC)gsdcolor.h
$(GLSRC)write_t2.h:$(GLSRC)gsfont.h
-$(GLSRC)write_t2.h:$(GLSRC)gscms.h
-$(GLSRC)write_t2.h:$(GLSRC)gscspace.h
+$(GLSRC)write_t2.h:$(GLSRC)gsdcolor.h
$(GLSRC)write_t2.h:$(GLSRC)gxpath.h
-$(GLSRC)write_t2.h:$(GLSRC)gsdevice.h
-$(GLSRC)write_t2.h:$(GLSRC)gxarith.h
-$(GLSRC)write_t2.h:$(GLSRC)gspenum.h
-$(GLSRC)write_t2.h:$(GLSRC)gxhttile.h
+$(GLSRC)write_t2.h:$(GLSRC)gscms.h
$(GLSRC)write_t2.h:$(GLSRC)gsrect.h
$(GLSRC)write_t2.h:$(GLSRC)gslparam.h
-$(GLSRC)write_t2.h:$(GLSRC)gsiparam.h
-$(GLSRC)write_t2.h:$(GLSRC)gxbitmap.h
-$(GLSRC)write_t2.h:$(GLSRC)gsmatrix.h
+$(GLSRC)write_t2.h:$(GLSRC)gsdevice.h
$(GLSRC)write_t2.h:$(GLSRC)gscpm.h
+$(GLSRC)write_t2.h:$(GLSRC)gscspace.h
+$(GLSRC)write_t2.h:$(GLSRC)gsgstate.h
+$(GLSRC)write_t2.h:$(GLSRC)gsiparam.h
$(GLSRC)write_t2.h:$(GLSRC)gxfixed.h
-$(GLSRC)write_t2.h:$(GLSRC)gsrefct.h
+$(GLSRC)write_t2.h:$(GLSRC)gsmatrix.h
+$(GLSRC)write_t2.h:$(GLSRC)gspenum.h
+$(GLSRC)write_t2.h:$(GLSRC)gxhttile.h
$(GLSRC)write_t2.h:$(GLSRC)gsparam.h
-$(GLSRC)write_t2.h:$(GLSRC)gsccolor.h
+$(GLSRC)write_t2.h:$(GLSRC)gsrefct.h
+$(GLSRC)write_t2.h:$(GLSRC)memento.h
$(GLSRC)write_t2.h:$(GLSRC)gxsync.h
+$(GLSRC)write_t2.h:$(GLSRC)gxbitmap.h
$(GLSRC)write_t2.h:$(GLSRC)scommon.h
-$(GLSRC)write_t2.h:$(GLSRC)memento.h
$(GLSRC)write_t2.h:$(GLSRC)gsbitmap.h
+$(GLSRC)write_t2.h:$(GLSRC)gsccolor.h
+$(GLSRC)write_t2.h:$(GLSRC)gxarith.h
+$(GLSRC)write_t2.h:$(GLSRC)gpsync.h
$(GLSRC)write_t2.h:$(GLSRC)gsstype.h
$(GLSRC)write_t2.h:$(GLSRC)gsmemory.h
-$(GLSRC)write_t2.h:$(GLSRC)gpsync.h
$(GLSRC)write_t2.h:$(GLSRC)gslibctx.h
-$(GLSRC)write_t2.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)write_t2.h:$(GLSRC)stdio_.h
$(GLSRC)write_t2.h:$(GLSRC)gxcindex.h
-$(GLSRC)write_t2.h:$(GLSRC)gsgstate.h
+$(GLSRC)write_t2.h:$(GLSRC)stdio_.h
+$(GLSRC)write_t2.h:$(GLSRC)gsccode.h
$(GLSRC)write_t2.h:$(GLSRC)stdint_.h
$(GLSRC)write_t2.h:$(GLSRC)gssprintf.h
-$(GLSRC)write_t2.h:$(GLSRC)gsccode.h
-$(GLSRC)write_t2.h:$(GLSRC)std.h
$(GLSRC)write_t2.h:$(GLSRC)gstypes.h
+$(GLSRC)write_t2.h:$(GLSRC)std.h
$(GLSRC)write_t2.h:$(GLSRC)stdpre.h
$(GLSRC)write_t2.h:$(GLGEN)arch.h
+$(GLSRC)write_t2.h:$(GLSRC)gs_dll_call.h
$(GLSRC)claptrap.h:$(GLSRC)gsmemory.h
$(GLSRC)claptrap.h:$(GLSRC)gslibctx.h
-$(GLSRC)claptrap.h:$(GLSRC)gs_dll_call.h
$(GLSRC)claptrap.h:$(GLSRC)stdio_.h
$(GLSRC)claptrap.h:$(GLSRC)gssprintf.h
-$(GLSRC)claptrap.h:$(GLSRC)std.h
$(GLSRC)claptrap.h:$(GLSRC)gstypes.h
+$(GLSRC)claptrap.h:$(GLSRC)std.h
$(GLSRC)claptrap.h:$(GLSRC)stdpre.h
$(GLSRC)claptrap.h:$(GLGEN)arch.h
+$(GLSRC)claptrap.h:$(GLSRC)gs_dll_call.h
$(GLSRC)ets.h:$(GLSRC)stdpre.h
$(GLSRC)gxdownscale.h:$(GLSRC)gxgetbit.h
-$(GLSRC)gxdownscale.h:$(GLSRC)gxbitfmt.h
$(GLSRC)gxdownscale.h:$(GLSRC)gxdevcli.h
+$(GLSRC)gxdownscale.h:$(GLSRC)gxcmap.h
$(GLSRC)gxdownscale.h:$(GLSRC)gxtext.h
$(GLSRC)gxdownscale.h:$(GLSRC)gstext.h
$(GLSRC)gxdownscale.h:$(GLSRC)gsnamecl.h
$(GLSRC)gxdownscale.h:$(GLSRC)gstparam.h
-$(GLSRC)gxdownscale.h:$(GLSRC)gxfcache.h
-$(GLSRC)gxdownscale.h:$(GLSRC)gxcspace.h
-$(GLSRC)gxdownscale.h:$(GLSRC)gsropt.h
+$(GLSRC)gxdownscale.h:$(GLSRC)gxfmap.h
$(GLSRC)gxdownscale.h:$(GLSRC)gsfunc.h
+$(GLSRC)gxdownscale.h:$(GLSRC)gxcspace.h
$(GLSRC)gxdownscale.h:$(GLSRC)gxrplane.h
-$(GLSRC)gxdownscale.h:$(GLSRC)gsuid.h
-$(GLSRC)gxdownscale.h:$(GLSRC)gxcmap.h
+$(GLSRC)gxdownscale.h:$(GLSRC)gscsel.h
+$(GLSRC)gxdownscale.h:$(GLSRC)gxfcache.h
+$(GLSRC)gxdownscale.h:$(GLSRC)gsfont.h
$(GLSRC)gxdownscale.h:$(GLSRC)gsimage.h
$(GLSRC)gxdownscale.h:$(GLSRC)gsdcolor.h
-$(GLSRC)gxdownscale.h:$(GLSRC)gxdda.h
$(GLSRC)gxdownscale.h:$(GLSRC)gxcvalue.h
-$(GLSRC)gxdownscale.h:$(GLSRC)gsfont.h
-$(GLSRC)gxdownscale.h:$(GLSRC)gxfmap.h
-$(GLSRC)gxdownscale.h:$(GLSRC)gxftype.h
+$(GLSRC)gxdownscale.h:$(GLSRC)gxbcache.h
+$(GLSRC)gxdownscale.h:$(GLSRC)gsropt.h
+$(GLSRC)gxdownscale.h:$(GLSRC)gxdda.h
+$(GLSRC)gxdownscale.h:$(GLSRC)gxpath.h
$(GLSRC)gxdownscale.h:$(GLSRC)gxfrac.h
+$(GLSRC)gxdownscale.h:$(GLSRC)gxtmap.h
+$(GLSRC)gxdownscale.h:$(GLSRC)gxftype.h
$(GLSRC)gxdownscale.h:$(GLSRC)gscms.h
-$(GLSRC)gxdownscale.h:$(GLSRC)gscspace.h
-$(GLSRC)gxdownscale.h:$(GLSRC)gxpath.h
-$(GLSRC)gxdownscale.h:$(GLSRC)gxbcache.h
-$(GLSRC)gxdownscale.h:$(GLSRC)gsdevice.h
-$(GLSRC)gxdownscale.h:$(GLSRC)gxarith.h
-$(GLSRC)gxdownscale.h:$(GLSRC)gspenum.h
-$(GLSRC)gxdownscale.h:$(GLSRC)gxhttile.h
$(GLSRC)gxdownscale.h:$(GLSRC)gsrect.h
$(GLSRC)gxdownscale.h:$(GLSRC)gslparam.h
+$(GLSRC)gxdownscale.h:$(GLSRC)gsdevice.h
+$(GLSRC)gxdownscale.h:$(GLSRC)gxbitfmt.h
+$(GLSRC)gxdownscale.h:$(GLSRC)gscpm.h
+$(GLSRC)gxdownscale.h:$(GLSRC)gscspace.h
+$(GLSRC)gxdownscale.h:$(GLSRC)gsgstate.h
$(GLSRC)gxdownscale.h:$(GLSRC)gsxfont.h
-$(GLSRC)gxdownscale.h:$(GLSRC)gsiparam.h
$(GLSRC)gxdownscale.h:$(GLSRC)gsdsrc.h
-$(GLSRC)gxdownscale.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gxdownscale.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gxdownscale.h:$(GLSRC)gscpm.h
+$(GLSRC)gxdownscale.h:$(GLSRC)gsiparam.h
$(GLSRC)gxdownscale.h:$(GLSRC)gxfixed.h
-$(GLSRC)gxdownscale.h:$(GLSRC)gsrefct.h
+$(GLSRC)gxdownscale.h:$(GLSRC)gscompt.h
+$(GLSRC)gxdownscale.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gxdownscale.h:$(GLSRC)gspenum.h
+$(GLSRC)gxdownscale.h:$(GLSRC)gxhttile.h
$(GLSRC)gxdownscale.h:$(GLSRC)gsparam.h
+$(GLSRC)gxdownscale.h:$(GLSRC)gsrefct.h
$(GLSRC)gxdownscale.h:$(GLSRC)gp.h
-$(GLSRC)gxdownscale.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxdownscale.h:$(GLSRC)memento.h
+$(GLSRC)gxdownscale.h:$(GLSRC)memory_.h
+$(GLSRC)gxdownscale.h:$(GLSRC)gsuid.h
$(GLSRC)gxdownscale.h:$(GLSRC)gsstruct.h
$(GLSRC)gxdownscale.h:$(GLSRC)gxsync.h
-$(GLSRC)gxdownscale.h:$(GLSRC)srdline.h
+$(GLSRC)gxdownscale.h:$(GLSRC)gxbitmap.h
$(GLSRC)gxdownscale.h:$(GLSRC)claptrap.h
+$(GLSRC)gxdownscale.h:$(GLSRC)srdline.h
$(GLSRC)gxdownscale.h:$(GLSRC)scommon.h
-$(GLSRC)gxdownscale.h:$(GLSRC)memento.h
-$(GLSRC)gxdownscale.h:$(GLSRC)gscsel.h
$(GLSRC)gxdownscale.h:$(GLSRC)gsbitmap.h
-$(GLSRC)gxdownscale.h:$(GLSRC)gsstype.h
+$(GLSRC)gxdownscale.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxdownscale.h:$(GLSRC)gxarith.h
$(GLSRC)gxdownscale.h:$(GLSRC)stat_.h
-$(GLSRC)gxdownscale.h:$(GLSRC)gxtmap.h
-$(GLSRC)gxdownscale.h:$(GLSRC)gsmemory.h
$(GLSRC)gxdownscale.h:$(GLSRC)gpsync.h
-$(GLSRC)gxdownscale.h:$(GLSRC)memory_.h
+$(GLSRC)gxdownscale.h:$(GLSRC)gsstype.h
+$(GLSRC)gxdownscale.h:$(GLSRC)gsmemory.h
$(GLSRC)gxdownscale.h:$(GLSRC)gpgetenv.h
-$(GLSRC)gxdownscale.h:$(GLSRC)gslibctx.h
$(GLSRC)gxdownscale.h:$(GLSRC)gscdefs.h
-$(GLSRC)gxdownscale.h:$(GLSRC)gs_dll_call.h
+$(GLSRC)gxdownscale.h:$(GLSRC)gslibctx.h
$(GLSRC)gxdownscale.h:$(GLSRC)ctype_.h
-$(GLSRC)gxdownscale.h:$(GLSRC)stdio_.h
-$(GLSRC)gxdownscale.h:$(GLSRC)gscompt.h
$(GLSRC)gxdownscale.h:$(GLSRC)gxcindex.h
-$(GLSRC)gxdownscale.h:$(GLSRC)gsgstate.h
+$(GLSRC)gxdownscale.h:$(GLSRC)stdio_.h
+$(GLSRC)gxdownscale.h:$(GLSRC)gsccode.h
$(GLSRC)gxdownscale.h:$(GLSRC)stdint_.h
$(GLSRC)gxdownscale.h:$(GLSRC)gssprintf.h
-$(GLSRC)gxdownscale.h:$(GLSRC)gsccode.h
-$(GLSRC)gxdownscale.h:$(GLSRC)std.h
$(GLSRC)gxdownscale.h:$(GLSRC)gstypes.h
+$(GLSRC)gxdownscale.h:$(GLSRC)std.h
$(GLSRC)gxdownscale.h:$(GLSRC)stdpre.h
$(GLSRC)gxdownscale.h:$(GLGEN)arch.h
+$(GLSRC)gxdownscale.h:$(GLSRC)gs_dll_call.h
$(GLSRC)strmio.h:$(GLSRC)scommon.h
$(GLSRC)strmio.h:$(GLSRC)gsstype.h
$(GLSRC)strmio.h:$(GLSRC)gsmemory.h
$(GLSRC)strmio.h:$(GLSRC)gslibctx.h
-$(GLSRC)strmio.h:$(GLSRC)gs_dll_call.h
$(GLSRC)strmio.h:$(GLSRC)stdio_.h
$(GLSRC)strmio.h:$(GLSRC)stdint_.h
$(GLSRC)strmio.h:$(GLSRC)gssprintf.h
-$(GLSRC)strmio.h:$(GLSRC)std.h
$(GLSRC)strmio.h:$(GLSRC)gstypes.h
+$(GLSRC)strmio.h:$(GLSRC)std.h
$(GLSRC)strmio.h:$(GLSRC)stdpre.h
$(GLSRC)strmio.h:$(GLGEN)arch.h
+$(GLSRC)strmio.h:$(GLSRC)gs_dll_call.h
$(GLSRC)sdcparam.h:$(GLSRC)sdct.h
$(GLSRC)sdcparam.h:$(GLSRC)setjmp_.h
$(GLSRC)sdcparam.h:$(GLSRC)strimpl.h
$(GLSRC)sdcparam.h:$(GLSRC)gscms.h
-$(GLSRC)sdcparam.h:$(GLSRC)gscspace.h
$(GLSRC)sdcparam.h:$(GLSRC)gsdevice.h
+$(GLSRC)sdcparam.h:$(GLSRC)gscspace.h
+$(GLSRC)sdcparam.h:$(GLSRC)gsgstate.h
$(GLSRC)sdcparam.h:$(GLSRC)gsiparam.h
-$(GLSRC)sdcparam.h:$(GLSRC)gxbitmap.h
$(GLSRC)sdcparam.h:$(GLSRC)gsmatrix.h
-$(GLSRC)sdcparam.h:$(GLSRC)gsrefct.h
$(GLSRC)sdcparam.h:$(GLSRC)gsparam.h
-$(GLSRC)sdcparam.h:$(GLSRC)gsccolor.h
+$(GLSRC)sdcparam.h:$(GLSRC)gsrefct.h
+$(GLSRC)sdcparam.h:$(GLSRC)memento.h
$(GLSRC)sdcparam.h:$(GLSRC)gsstruct.h
$(GLSRC)sdcparam.h:$(GLSRC)gxsync.h
+$(GLSRC)sdcparam.h:$(GLSRC)gxbitmap.h
$(GLSRC)sdcparam.h:$(GLSRC)scommon.h
-$(GLSRC)sdcparam.h:$(GLSRC)memento.h
$(GLSRC)sdcparam.h:$(GLSRC)gsbitmap.h
+$(GLSRC)sdcparam.h:$(GLSRC)gsccolor.h
+$(GLSRC)sdcparam.h:$(GLSRC)gpsync.h
$(GLSRC)sdcparam.h:$(GLSRC)gsstype.h
$(GLSRC)sdcparam.h:$(GLSRC)gsmemory.h
-$(GLSRC)sdcparam.h:$(GLSRC)gpsync.h
$(GLSRC)sdcparam.h:$(GLSRC)gslibctx.h
-$(GLSRC)sdcparam.h:$(GLSRC)gs_dll_call.h
$(GLSRC)sdcparam.h:$(GLSRC)stdio_.h
-$(GLSRC)sdcparam.h:$(GLSRC)gsgstate.h
$(GLSRC)sdcparam.h:$(GLSRC)stdint_.h
$(GLSRC)sdcparam.h:$(GLSRC)gssprintf.h
-$(GLSRC)sdcparam.h:$(GLSRC)std.h
$(GLSRC)sdcparam.h:$(GLSRC)gstypes.h
+$(GLSRC)sdcparam.h:$(GLSRC)std.h
$(GLSRC)sdcparam.h:$(GLSRC)stdpre.h
$(GLSRC)sdcparam.h:$(GLGEN)arch.h
+$(GLSRC)sdcparam.h:$(GLSRC)gs_dll_call.h
$(GLSRC)ssha2.h:$(GLSRC)sha2.h
$(GLSRC)ssha2.h:$(GLSRC)scommon.h
$(GLSRC)ssha2.h:$(GLSRC)gsstype.h
$(GLSRC)ssha2.h:$(GLSRC)gsmemory.h
$(GLSRC)ssha2.h:$(GLSRC)gslibctx.h
-$(GLSRC)ssha2.h:$(GLSRC)gs_dll_call.h
$(GLSRC)ssha2.h:$(GLSRC)stdio_.h
$(GLSRC)ssha2.h:$(GLSRC)stdint_.h
$(GLSRC)ssha2.h:$(GLSRC)gssprintf.h
-$(GLSRC)ssha2.h:$(GLSRC)std.h
$(GLSRC)ssha2.h:$(GLSRC)gstypes.h
+$(GLSRC)ssha2.h:$(GLSRC)std.h
$(GLSRC)ssha2.h:$(GLSRC)stdpre.h
$(GLSRC)ssha2.h:$(GLGEN)arch.h
+$(GLSRC)ssha2.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gdevprn.h:$(GLSRC)string_.h
$(GLSRC)gdevprn.h:$(GLSRC)gsstrtok.h
$(GLSRC)gdevprn.h:$(GLSRC)gxclthrd.h
$(GLSRC)gdevprn.h:$(GLSRC)gxclpage.h
$(GLSRC)gdevprn.h:$(GLSRC)gxclist.h
$(GLSRC)gdevprn.h:$(GLSRC)gxgstate.h
-$(GLSRC)gdevprn.h:$(GLSRC)gxline.h
$(GLSRC)gdevprn.h:$(GLSRC)gstrans.h
+$(GLSRC)gdevprn.h:$(GLSRC)gdevp14.h
+$(GLSRC)gdevprn.h:$(GLSRC)gxline.h
$(GLSRC)gdevprn.h:$(GLSRC)gsht1.h
+$(GLSRC)gdevprn.h:$(GLSRC)gxcomp.h
$(GLSRC)gdevprn.h:$(GLSRC)math_.h
-$(GLSRC)gdevprn.h:$(GLSRC)gdevp14.h
$(GLSRC)gdevprn.h:$(GLSRC)gxcolor2.h
$(GLSRC)gdevprn.h:$(GLSRC)gxpcolor.h
+$(GLSRC)gdevprn.h:$(GLSRC)gxdevmem.h
$(GLSRC)gdevprn.h:$(GLSRC)gdevdevn.h
-$(GLSRC)gdevprn.h:$(GLSRC)gsequivc.h
$(GLSRC)gdevprn.h:$(GLSRC)gx.h
-$(GLSRC)gdevprn.h:$(GLSRC)gxblend.h
$(GLSRC)gdevprn.h:$(GLSRC)gxclipsr.h
-$(GLSRC)gdevprn.h:$(GLSRC)gxcomp.h
-$(GLSRC)gdevprn.h:$(GLSRC)gxdcolor.h
$(GLSRC)gdevprn.h:$(GLSRC)gdebug.h
-$(GLSRC)gdevprn.h:$(GLSRC)gxmatrix.h
-$(GLSRC)gdevprn.h:$(GLSRC)gxbitfmt.h
$(GLSRC)gdevprn.h:$(GLSRC)gxdevbuf.h
+$(GLSRC)gdevprn.h:$(GLSRC)gxdcolor.h
$(GLSRC)gdevprn.h:$(GLSRC)gxband.h
+$(GLSRC)gdevprn.h:$(GLSRC)gxblend.h
$(GLSRC)gdevprn.h:$(GLSRC)gscolor2.h
-$(GLSRC)gdevprn.h:$(GLSRC)gscindex.h
+$(GLSRC)gdevprn.h:$(GLSRC)gxmatrix.h
$(GLSRC)gdevprn.h:$(GLSRC)gxdevice.h
-$(GLSRC)gdevprn.h:$(GLSRC)gsht.h
$(GLSRC)gdevprn.h:$(GLSRC)gxcpath.h
-$(GLSRC)gdevprn.h:$(GLSRC)gxdevmem.h
+$(GLSRC)gdevprn.h:$(GLSRC)gsht.h
+$(GLSRC)gdevprn.h:$(GLSRC)gsequivc.h
$(GLSRC)gdevprn.h:$(GLSRC)gxdevcli.h
$(GLSRC)gdevprn.h:$(GLSRC)gxpcache.h
+$(GLSRC)gdevprn.h:$(GLSRC)gscindex.h
+$(GLSRC)gdevprn.h:$(GLSRC)gxcmap.h
$(GLSRC)gdevprn.h:$(GLSRC)gsptype1.h
-$(GLSRC)gdevprn.h:$(GLSRC)gxtext.h
$(GLSRC)gdevprn.h:$(GLSRC)gscie.h
+$(GLSRC)gdevprn.h:$(GLSRC)gxtext.h
$(GLSRC)gdevprn.h:$(GLSRC)gstext.h
+$(GLSRC)gdevprn.h:$(GLSRC)gxstate.h
$(GLSRC)gdevprn.h:$(GLSRC)gsnamecl.h
$(GLSRC)gdevprn.h:$(GLSRC)gstparam.h
-$(GLSRC)gdevprn.h:$(GLSRC)gxstate.h
$(GLSRC)gdevprn.h:$(GLSRC)gspcolor.h
-$(GLSRC)gdevprn.h:$(GLSRC)gxfcache.h
-$(GLSRC)gdevprn.h:$(GLSRC)gxcspace.h
-$(GLSRC)gdevprn.h:$(GLSRC)gsropt.h
-$(GLSRC)gdevprn.h:$(GLSRC)gsfunc.h
+$(GLSRC)gdevprn.h:$(GLSRC)gxfmap.h
$(GLSRC)gdevprn.h:$(GLSRC)gsmalloc.h
-$(GLSRC)gdevprn.h:$(GLSRC)gxrplane.h
+$(GLSRC)gdevprn.h:$(GLSRC)gsfunc.h
+$(GLSRC)gdevprn.h:$(GLSRC)gxcspace.h
$(GLSRC)gdevprn.h:$(GLSRC)gxctable.h
-$(GLSRC)gdevprn.h:$(GLSRC)gsuid.h
-$(GLSRC)gdevprn.h:$(GLSRC)gxcmap.h
+$(GLSRC)gdevprn.h:$(GLSRC)gxrplane.h
+$(GLSRC)gdevprn.h:$(GLSRC)gscsel.h
+$(GLSRC)gdevprn.h:$(GLSRC)gxfcache.h
+$(GLSRC)gdevprn.h:$(GLSRC)gsfont.h
$(GLSRC)gdevprn.h:$(GLSRC)gsimage.h
$(GLSRC)gdevprn.h:$(GLSRC)gsdcolor.h
-$(GLSRC)gdevprn.h:$(GLSRC)gxdda.h
$(GLSRC)gdevprn.h:$(GLSRC)gxcvalue.h
-$(GLSRC)gdevprn.h:$(GLSRC)gsfont.h
-$(GLSRC)gdevprn.h:$(GLSRC)gxfmap.h
+$(GLSRC)gdevprn.h:$(GLSRC)gxbcache.h
+$(GLSRC)gdevprn.h:$(GLSRC)gsropt.h
+$(GLSRC)gdevprn.h:$(GLSRC)gxdda.h
+$(GLSRC)gdevprn.h:$(GLSRC)gxpath.h
$(GLSRC)gdevprn.h:$(GLSRC)gxiclass.h
-$(GLSRC)gdevprn.h:$(GLSRC)gxftype.h
$(GLSRC)gdevprn.h:$(GLSRC)gxfrac.h
+$(GLSRC)gdevprn.h:$(GLSRC)gxtmap.h
+$(GLSRC)gdevprn.h:$(GLSRC)gxftype.h
$(GLSRC)gdevprn.h:$(GLSRC)gscms.h
-$(GLSRC)gdevprn.h:$(GLSRC)gscspace.h
-$(GLSRC)gdevprn.h:$(GLSRC)gxpath.h
-$(GLSRC)gdevprn.h:$(GLSRC)gxbcache.h
-$(GLSRC)gdevprn.h:$(GLSRC)gsdevice.h
-$(GLSRC)gdevprn.h:$(GLSRC)gxarith.h
-$(GLSRC)gdevprn.h:$(GLSRC)gxstdio.h
-$(GLSRC)gdevprn.h:$(GLSRC)gspenum.h
-$(GLSRC)gdevprn.h:$(GLSRC)gxhttile.h
$(GLSRC)gdevprn.h:$(GLSRC)gsrect.h
$(GLSRC)gdevprn.h:$(GLSRC)gslparam.h
+$(GLSRC)gdevprn.h:$(GLSRC)gsdevice.h
+$(GLSRC)gdevprn.h:$(GLSRC)gxbitfmt.h
+$(GLSRC)gdevprn.h:$(GLSRC)gscpm.h
+$(GLSRC)gdevprn.h:$(GLSRC)gscspace.h
+$(GLSRC)gdevprn.h:$(GLSRC)gsgstate.h
+$(GLSRC)gdevprn.h:$(GLSRC)gxstdio.h
$(GLSRC)gdevprn.h:$(GLSRC)gsxfont.h
-$(GLSRC)gdevprn.h:$(GLSRC)gxclio.h
-$(GLSRC)gdevprn.h:$(GLSRC)gsiparam.h
$(GLSRC)gdevprn.h:$(GLSRC)gsdsrc.h
$(GLSRC)gdevprn.h:$(GLSRC)gsio.h
-$(GLSRC)gdevprn.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gdevprn.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gdevprn.h:$(GLSRC)gscpm.h
+$(GLSRC)gdevprn.h:$(GLSRC)gsiparam.h
$(GLSRC)gdevprn.h:$(GLSRC)gxfixed.h
-$(GLSRC)gdevprn.h:$(GLSRC)gsrefct.h
+$(GLSRC)gdevprn.h:$(GLSRC)gxclio.h
+$(GLSRC)gdevprn.h:$(GLSRC)gscompt.h
+$(GLSRC)gdevprn.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gdevprn.h:$(GLSRC)gspenum.h
+$(GLSRC)gdevprn.h:$(GLSRC)gxhttile.h
$(GLSRC)gdevprn.h:$(GLSRC)gsparam.h
+$(GLSRC)gdevprn.h:$(GLSRC)gsrefct.h
$(GLSRC)gdevprn.h:$(GLSRC)gp.h
-$(GLSRC)gdevprn.h:$(GLSRC)gsccolor.h
-$(GLSRC)gdevprn.h:$(GLSRC)gsstruct.h
-$(GLSRC)gdevprn.h:$(GLSRC)gxsync.h
+$(GLSRC)gdevprn.h:$(GLSRC)memento.h
+$(GLSRC)gdevprn.h:$(GLSRC)memory_.h
$(GLSRC)gdevprn.h:$(GLSRC)gsutil.h
+$(GLSRC)gdevprn.h:$(GLSRC)gsuid.h
$(GLSRC)gdevprn.h:$(GLSRC)gsstrl.h
+$(GLSRC)gdevprn.h:$(GLSRC)gsstruct.h
$(GLSRC)gdevprn.h:$(GLSRC)gdbflags.h
-$(GLSRC)gdevprn.h:$(GLSRC)srdline.h
+$(GLSRC)gdevprn.h:$(GLSRC)gxsync.h
$(GLSRC)gdevprn.h:$(GLSRC)gserrors.h
-$(GLSRC)gdevprn.h:$(GLSRC)scommon.h
-$(GLSRC)gdevprn.h:$(GLSRC)memento.h
+$(GLSRC)gdevprn.h:$(GLSRC)gxbitmap.h
$(GLSRC)gdevprn.h:$(GLSRC)vmsmath.h
-$(GLSRC)gdevprn.h:$(GLSRC)gscsel.h
-$(GLSRC)gdevprn.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gdevprn.h:$(GLSRC)srdline.h
+$(GLSRC)gdevprn.h:$(GLSRC)scommon.h
$(GLSRC)gdevprn.h:$(GLSRC)gsfname.h
-$(GLSRC)gdevprn.h:$(GLSRC)gsstype.h
+$(GLSRC)gdevprn.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gdevprn.h:$(GLSRC)gsccolor.h
+$(GLSRC)gdevprn.h:$(GLSRC)gxarith.h
$(GLSRC)gdevprn.h:$(GLSRC)stat_.h
-$(GLSRC)gdevprn.h:$(GLSRC)gxtmap.h
-$(GLSRC)gdevprn.h:$(GLSRC)gsmemory.h
$(GLSRC)gdevprn.h:$(GLSRC)gpsync.h
-$(GLSRC)gdevprn.h:$(GLSRC)memory_.h
+$(GLSRC)gdevprn.h:$(GLSRC)gsstype.h
+$(GLSRC)gdevprn.h:$(GLSRC)gsmemory.h
$(GLSRC)gdevprn.h:$(GLSRC)gpgetenv.h
-$(GLSRC)gdevprn.h:$(GLSRC)gslibctx.h
$(GLSRC)gdevprn.h:$(GLSRC)gscdefs.h
-$(GLSRC)gdevprn.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gdevprn.h:$(GLSRC)stdio_.h
-$(GLSRC)gdevprn.h:$(GLSRC)gscompt.h
+$(GLSRC)gdevprn.h:$(GLSRC)gslibctx.h
$(GLSRC)gdevprn.h:$(GLSRC)gxcindex.h
-$(GLSRC)gdevprn.h:$(GLSRC)gsgstate.h
+$(GLSRC)gdevprn.h:$(GLSRC)stdio_.h
+$(GLSRC)gdevprn.h:$(GLSRC)gsccode.h
$(GLSRC)gdevprn.h:$(GLSRC)stdint_.h
$(GLSRC)gdevprn.h:$(GLSRC)gssprintf.h
-$(GLSRC)gdevprn.h:$(GLSRC)gsccode.h
-$(GLSRC)gdevprn.h:$(GLSRC)std.h
$(GLSRC)gdevprn.h:$(GLSRC)gstypes.h
+$(GLSRC)gdevprn.h:$(GLSRC)std.h
$(GLSRC)gdevprn.h:$(GLSRC)stdpre.h
$(GLSRC)gdevprn.h:$(GLGEN)arch.h
+$(GLSRC)gdevprn.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gdevmplt.h:$(GLSRC)gxdevice.h
$(GLSRC)gdevmplt.h:$(GLSRC)gxdevcli.h
+$(GLSRC)gdevmplt.h:$(GLSRC)gxcmap.h
$(GLSRC)gdevmplt.h:$(GLSRC)gxtext.h
$(GLSRC)gdevmplt.h:$(GLSRC)gstext.h
$(GLSRC)gdevmplt.h:$(GLSRC)gsnamecl.h
$(GLSRC)gdevmplt.h:$(GLSRC)gstparam.h
-$(GLSRC)gdevmplt.h:$(GLSRC)gxfcache.h
-$(GLSRC)gdevmplt.h:$(GLSRC)gxcspace.h
-$(GLSRC)gdevmplt.h:$(GLSRC)gsropt.h
-$(GLSRC)gdevmplt.h:$(GLSRC)gsfunc.h
+$(GLSRC)gdevmplt.h:$(GLSRC)gxfmap.h
$(GLSRC)gdevmplt.h:$(GLSRC)gsmalloc.h
+$(GLSRC)gdevmplt.h:$(GLSRC)gsfunc.h
+$(GLSRC)gdevmplt.h:$(GLSRC)gxcspace.h
$(GLSRC)gdevmplt.h:$(GLSRC)gxrplane.h
-$(GLSRC)gdevmplt.h:$(GLSRC)gsuid.h
-$(GLSRC)gdevmplt.h:$(GLSRC)gxcmap.h
+$(GLSRC)gdevmplt.h:$(GLSRC)gscsel.h
+$(GLSRC)gdevmplt.h:$(GLSRC)gxfcache.h
+$(GLSRC)gdevmplt.h:$(GLSRC)gsfont.h
$(GLSRC)gdevmplt.h:$(GLSRC)gsimage.h
$(GLSRC)gdevmplt.h:$(GLSRC)gsdcolor.h
-$(GLSRC)gdevmplt.h:$(GLSRC)gxdda.h
$(GLSRC)gdevmplt.h:$(GLSRC)gxcvalue.h
-$(GLSRC)gdevmplt.h:$(GLSRC)gsfont.h
-$(GLSRC)gdevmplt.h:$(GLSRC)gxfmap.h
-$(GLSRC)gdevmplt.h:$(GLSRC)gxftype.h
+$(GLSRC)gdevmplt.h:$(GLSRC)gxbcache.h
+$(GLSRC)gdevmplt.h:$(GLSRC)gsropt.h
+$(GLSRC)gdevmplt.h:$(GLSRC)gxdda.h
+$(GLSRC)gdevmplt.h:$(GLSRC)gxpath.h
$(GLSRC)gdevmplt.h:$(GLSRC)gxfrac.h
+$(GLSRC)gdevmplt.h:$(GLSRC)gxtmap.h
+$(GLSRC)gdevmplt.h:$(GLSRC)gxftype.h
$(GLSRC)gdevmplt.h:$(GLSRC)gscms.h
-$(GLSRC)gdevmplt.h:$(GLSRC)gscspace.h
-$(GLSRC)gdevmplt.h:$(GLSRC)gxpath.h
-$(GLSRC)gdevmplt.h:$(GLSRC)gxbcache.h
-$(GLSRC)gdevmplt.h:$(GLSRC)gsdevice.h
-$(GLSRC)gdevmplt.h:$(GLSRC)gxarith.h
-$(GLSRC)gdevmplt.h:$(GLSRC)gxstdio.h
-$(GLSRC)gdevmplt.h:$(GLSRC)gspenum.h
-$(GLSRC)gdevmplt.h:$(GLSRC)gxhttile.h
$(GLSRC)gdevmplt.h:$(GLSRC)gsrect.h
$(GLSRC)gdevmplt.h:$(GLSRC)gslparam.h
+$(GLSRC)gdevmplt.h:$(GLSRC)gsdevice.h
+$(GLSRC)gdevmplt.h:$(GLSRC)gscpm.h
+$(GLSRC)gdevmplt.h:$(GLSRC)gscspace.h
+$(GLSRC)gdevmplt.h:$(GLSRC)gsgstate.h
+$(GLSRC)gdevmplt.h:$(GLSRC)gxstdio.h
$(GLSRC)gdevmplt.h:$(GLSRC)gsxfont.h
-$(GLSRC)gdevmplt.h:$(GLSRC)gsiparam.h
$(GLSRC)gdevmplt.h:$(GLSRC)gsdsrc.h
$(GLSRC)gdevmplt.h:$(GLSRC)gsio.h
-$(GLSRC)gdevmplt.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gdevmplt.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gdevmplt.h:$(GLSRC)gscpm.h
+$(GLSRC)gdevmplt.h:$(GLSRC)gsiparam.h
$(GLSRC)gdevmplt.h:$(GLSRC)gxfixed.h
-$(GLSRC)gdevmplt.h:$(GLSRC)gsrefct.h
+$(GLSRC)gdevmplt.h:$(GLSRC)gscompt.h
+$(GLSRC)gdevmplt.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gdevmplt.h:$(GLSRC)gspenum.h
+$(GLSRC)gdevmplt.h:$(GLSRC)gxhttile.h
$(GLSRC)gdevmplt.h:$(GLSRC)gsparam.h
+$(GLSRC)gdevmplt.h:$(GLSRC)gsrefct.h
$(GLSRC)gdevmplt.h:$(GLSRC)gp.h
-$(GLSRC)gdevmplt.h:$(GLSRC)gsccolor.h
+$(GLSRC)gdevmplt.h:$(GLSRC)memento.h
+$(GLSRC)gdevmplt.h:$(GLSRC)memory_.h
+$(GLSRC)gdevmplt.h:$(GLSRC)gsuid.h
$(GLSRC)gdevmplt.h:$(GLSRC)gsstruct.h
$(GLSRC)gdevmplt.h:$(GLSRC)gxsync.h
+$(GLSRC)gdevmplt.h:$(GLSRC)gxbitmap.h
$(GLSRC)gdevmplt.h:$(GLSRC)srdline.h
$(GLSRC)gdevmplt.h:$(GLSRC)scommon.h
-$(GLSRC)gdevmplt.h:$(GLSRC)memento.h
-$(GLSRC)gdevmplt.h:$(GLSRC)gscsel.h
-$(GLSRC)gdevmplt.h:$(GLSRC)gsbitmap.h
$(GLSRC)gdevmplt.h:$(GLSRC)gsfname.h
-$(GLSRC)gdevmplt.h:$(GLSRC)gsstype.h
+$(GLSRC)gdevmplt.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gdevmplt.h:$(GLSRC)gsccolor.h
+$(GLSRC)gdevmplt.h:$(GLSRC)gxarith.h
$(GLSRC)gdevmplt.h:$(GLSRC)stat_.h
-$(GLSRC)gdevmplt.h:$(GLSRC)gxtmap.h
-$(GLSRC)gdevmplt.h:$(GLSRC)gsmemory.h
$(GLSRC)gdevmplt.h:$(GLSRC)gpsync.h
-$(GLSRC)gdevmplt.h:$(GLSRC)memory_.h
+$(GLSRC)gdevmplt.h:$(GLSRC)gsstype.h
+$(GLSRC)gdevmplt.h:$(GLSRC)gsmemory.h
$(GLSRC)gdevmplt.h:$(GLSRC)gpgetenv.h
-$(GLSRC)gdevmplt.h:$(GLSRC)gslibctx.h
$(GLSRC)gdevmplt.h:$(GLSRC)gscdefs.h
-$(GLSRC)gdevmplt.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gdevmplt.h:$(GLSRC)stdio_.h
-$(GLSRC)gdevmplt.h:$(GLSRC)gscompt.h
+$(GLSRC)gdevmplt.h:$(GLSRC)gslibctx.h
$(GLSRC)gdevmplt.h:$(GLSRC)gxcindex.h
-$(GLSRC)gdevmplt.h:$(GLSRC)gsgstate.h
+$(GLSRC)gdevmplt.h:$(GLSRC)stdio_.h
+$(GLSRC)gdevmplt.h:$(GLSRC)gsccode.h
$(GLSRC)gdevmplt.h:$(GLSRC)stdint_.h
$(GLSRC)gdevmplt.h:$(GLSRC)gssprintf.h
-$(GLSRC)gdevmplt.h:$(GLSRC)gsccode.h
-$(GLSRC)gdevmplt.h:$(GLSRC)std.h
$(GLSRC)gdevmplt.h:$(GLSRC)gstypes.h
+$(GLSRC)gdevmplt.h:$(GLSRC)std.h
$(GLSRC)gdevmplt.h:$(GLSRC)stdpre.h
$(GLSRC)gdevmplt.h:$(GLGEN)arch.h
+$(GLSRC)gdevmplt.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gdevppla.h:$(GLSRC)gxdevbuf.h
$(GLSRC)gdevppla.h:$(GLSRC)gxband.h
$(GLSRC)gdevppla.h:$(GLSRC)gxdevcli.h
+$(GLSRC)gdevppla.h:$(GLSRC)gxcmap.h
$(GLSRC)gdevppla.h:$(GLSRC)gxtext.h
$(GLSRC)gdevppla.h:$(GLSRC)gstext.h
$(GLSRC)gdevppla.h:$(GLSRC)gsnamecl.h
$(GLSRC)gdevppla.h:$(GLSRC)gstparam.h
-$(GLSRC)gdevppla.h:$(GLSRC)gxfcache.h
-$(GLSRC)gdevppla.h:$(GLSRC)gxcspace.h
-$(GLSRC)gdevppla.h:$(GLSRC)gsropt.h
+$(GLSRC)gdevppla.h:$(GLSRC)gxfmap.h
$(GLSRC)gdevppla.h:$(GLSRC)gsfunc.h
+$(GLSRC)gdevppla.h:$(GLSRC)gxcspace.h
$(GLSRC)gdevppla.h:$(GLSRC)gxrplane.h
-$(GLSRC)gdevppla.h:$(GLSRC)gsuid.h
-$(GLSRC)gdevppla.h:$(GLSRC)gxcmap.h
+$(GLSRC)gdevppla.h:$(GLSRC)gscsel.h
+$(GLSRC)gdevppla.h:$(GLSRC)gxfcache.h
+$(GLSRC)gdevppla.h:$(GLSRC)gsfont.h
$(GLSRC)gdevppla.h:$(GLSRC)gsimage.h
$(GLSRC)gdevppla.h:$(GLSRC)gsdcolor.h
-$(GLSRC)gdevppla.h:$(GLSRC)gxdda.h
$(GLSRC)gdevppla.h:$(GLSRC)gxcvalue.h
-$(GLSRC)gdevppla.h:$(GLSRC)gsfont.h
-$(GLSRC)gdevppla.h:$(GLSRC)gxfmap.h
-$(GLSRC)gdevppla.h:$(GLSRC)gxftype.h
+$(GLSRC)gdevppla.h:$(GLSRC)gxbcache.h
+$(GLSRC)gdevppla.h:$(GLSRC)gsropt.h
+$(GLSRC)gdevppla.h:$(GLSRC)gxdda.h
+$(GLSRC)gdevppla.h:$(GLSRC)gxpath.h
$(GLSRC)gdevppla.h:$(GLSRC)gxfrac.h
+$(GLSRC)gdevppla.h:$(GLSRC)gxtmap.h
+$(GLSRC)gdevppla.h:$(GLSRC)gxftype.h
$(GLSRC)gdevppla.h:$(GLSRC)gscms.h
-$(GLSRC)gdevppla.h:$(GLSRC)gscspace.h
-$(GLSRC)gdevppla.h:$(GLSRC)gxpath.h
-$(GLSRC)gdevppla.h:$(GLSRC)gxbcache.h
-$(GLSRC)gdevppla.h:$(GLSRC)gsdevice.h
-$(GLSRC)gdevppla.h:$(GLSRC)gxarith.h
-$(GLSRC)gdevppla.h:$(GLSRC)gspenum.h
-$(GLSRC)gdevppla.h:$(GLSRC)gxhttile.h
$(GLSRC)gdevppla.h:$(GLSRC)gsrect.h
$(GLSRC)gdevppla.h:$(GLSRC)gslparam.h
+$(GLSRC)gdevppla.h:$(GLSRC)gsdevice.h
+$(GLSRC)gdevppla.h:$(GLSRC)gscpm.h
+$(GLSRC)gdevppla.h:$(GLSRC)gscspace.h
+$(GLSRC)gdevppla.h:$(GLSRC)gsgstate.h
$(GLSRC)gdevppla.h:$(GLSRC)gsxfont.h
-$(GLSRC)gdevppla.h:$(GLSRC)gxclio.h
-$(GLSRC)gdevppla.h:$(GLSRC)gsiparam.h
$(GLSRC)gdevppla.h:$(GLSRC)gsdsrc.h
-$(GLSRC)gdevppla.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gdevppla.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gdevppla.h:$(GLSRC)gscpm.h
+$(GLSRC)gdevppla.h:$(GLSRC)gsiparam.h
$(GLSRC)gdevppla.h:$(GLSRC)gxfixed.h
-$(GLSRC)gdevppla.h:$(GLSRC)gsrefct.h
+$(GLSRC)gdevppla.h:$(GLSRC)gxclio.h
+$(GLSRC)gdevppla.h:$(GLSRC)gscompt.h
+$(GLSRC)gdevppla.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gdevppla.h:$(GLSRC)gspenum.h
+$(GLSRC)gdevppla.h:$(GLSRC)gxhttile.h
$(GLSRC)gdevppla.h:$(GLSRC)gsparam.h
+$(GLSRC)gdevppla.h:$(GLSRC)gsrefct.h
$(GLSRC)gdevppla.h:$(GLSRC)gp.h
-$(GLSRC)gdevppla.h:$(GLSRC)gsccolor.h
+$(GLSRC)gdevppla.h:$(GLSRC)memento.h
+$(GLSRC)gdevppla.h:$(GLSRC)memory_.h
+$(GLSRC)gdevppla.h:$(GLSRC)gsuid.h
$(GLSRC)gdevppla.h:$(GLSRC)gsstruct.h
$(GLSRC)gdevppla.h:$(GLSRC)gxsync.h
+$(GLSRC)gdevppla.h:$(GLSRC)gxbitmap.h
$(GLSRC)gdevppla.h:$(GLSRC)srdline.h
$(GLSRC)gdevppla.h:$(GLSRC)scommon.h
-$(GLSRC)gdevppla.h:$(GLSRC)memento.h
-$(GLSRC)gdevppla.h:$(GLSRC)gscsel.h
$(GLSRC)gdevppla.h:$(GLSRC)gsbitmap.h
-$(GLSRC)gdevppla.h:$(GLSRC)gsstype.h
+$(GLSRC)gdevppla.h:$(GLSRC)gsccolor.h
+$(GLSRC)gdevppla.h:$(GLSRC)gxarith.h
$(GLSRC)gdevppla.h:$(GLSRC)stat_.h
-$(GLSRC)gdevppla.h:$(GLSRC)gxtmap.h
-$(GLSRC)gdevppla.h:$(GLSRC)gsmemory.h
$(GLSRC)gdevppla.h:$(GLSRC)gpsync.h
-$(GLSRC)gdevppla.h:$(GLSRC)memory_.h
+$(GLSRC)gdevppla.h:$(GLSRC)gsstype.h
+$(GLSRC)gdevppla.h:$(GLSRC)gsmemory.h
$(GLSRC)gdevppla.h:$(GLSRC)gpgetenv.h
-$(GLSRC)gdevppla.h:$(GLSRC)gslibctx.h
$(GLSRC)gdevppla.h:$(GLSRC)gscdefs.h
-$(GLSRC)gdevppla.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gdevppla.h:$(GLSRC)stdio_.h
-$(GLSRC)gdevppla.h:$(GLSRC)gscompt.h
+$(GLSRC)gdevppla.h:$(GLSRC)gslibctx.h
$(GLSRC)gdevppla.h:$(GLSRC)gxcindex.h
-$(GLSRC)gdevppla.h:$(GLSRC)gsgstate.h
+$(GLSRC)gdevppla.h:$(GLSRC)stdio_.h
+$(GLSRC)gdevppla.h:$(GLSRC)gsccode.h
$(GLSRC)gdevppla.h:$(GLSRC)stdint_.h
$(GLSRC)gdevppla.h:$(GLSRC)gssprintf.h
-$(GLSRC)gdevppla.h:$(GLSRC)gsccode.h
-$(GLSRC)gdevppla.h:$(GLSRC)std.h
$(GLSRC)gdevppla.h:$(GLSRC)gstypes.h
+$(GLSRC)gdevppla.h:$(GLSRC)std.h
$(GLSRC)gdevppla.h:$(GLSRC)stdpre.h
$(GLSRC)gdevppla.h:$(GLGEN)arch.h
+$(GLSRC)gdevppla.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gsiparm3.h:$(GLSRC)gsiparam.h
-$(GLSRC)gsiparm3.h:$(GLSRC)gxbitmap.h
$(GLSRC)gsiparm3.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gsiparm3.h:$(GLSRC)gsccolor.h
+$(GLSRC)gsiparm3.h:$(GLSRC)gxbitmap.h
$(GLSRC)gsiparm3.h:$(GLSRC)scommon.h
$(GLSRC)gsiparm3.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gsiparm3.h:$(GLSRC)gsccolor.h
$(GLSRC)gsiparm3.h:$(GLSRC)gsstype.h
$(GLSRC)gsiparm3.h:$(GLSRC)gsmemory.h
$(GLSRC)gsiparm3.h:$(GLSRC)gslibctx.h
-$(GLSRC)gsiparm3.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gsiparm3.h:$(GLSRC)stdio_.h
$(GLSRC)gsiparm3.h:$(GLSRC)stdint_.h
$(GLSRC)gsiparm3.h:$(GLSRC)gssprintf.h
-$(GLSRC)gsiparm3.h:$(GLSRC)std.h
$(GLSRC)gsiparm3.h:$(GLSRC)gstypes.h
+$(GLSRC)gsiparm3.h:$(GLSRC)std.h
$(GLSRC)gsiparm3.h:$(GLSRC)stdpre.h
$(GLSRC)gsiparm3.h:$(GLGEN)arch.h
+$(GLSRC)gsiparm3.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gsiparm4.h:$(GLSRC)gsiparam.h
-$(GLSRC)gsiparm4.h:$(GLSRC)gxbitmap.h
$(GLSRC)gsiparm4.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gsiparm4.h:$(GLSRC)gsccolor.h
+$(GLSRC)gsiparm4.h:$(GLSRC)gxbitmap.h
$(GLSRC)gsiparm4.h:$(GLSRC)scommon.h
$(GLSRC)gsiparm4.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gsiparm4.h:$(GLSRC)gsccolor.h
$(GLSRC)gsiparm4.h:$(GLSRC)gsstype.h
$(GLSRC)gsiparm4.h:$(GLSRC)gsmemory.h
$(GLSRC)gsiparm4.h:$(GLSRC)gslibctx.h
-$(GLSRC)gsiparm4.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gsiparm4.h:$(GLSRC)stdio_.h
$(GLSRC)gsiparm4.h:$(GLSRC)stdint_.h
$(GLSRC)gsiparm4.h:$(GLSRC)gssprintf.h
-$(GLSRC)gsiparm4.h:$(GLSRC)std.h
$(GLSRC)gsiparm4.h:$(GLSRC)gstypes.h
+$(GLSRC)gsiparm4.h:$(GLSRC)std.h
$(GLSRC)gsiparm4.h:$(GLSRC)stdpre.h
$(GLSRC)gsiparm4.h:$(GLGEN)arch.h
+$(GLSRC)gsiparm4.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gximage3.h:$(GLSRC)gsiparm3.h
$(GLSRC)gximage3.h:$(GLSRC)gxiparam.h
$(GLSRC)gximage3.h:$(GLSRC)gxdevcli.h
+$(GLSRC)gximage3.h:$(GLSRC)gxcmap.h
$(GLSRC)gximage3.h:$(GLSRC)gxtext.h
$(GLSRC)gximage3.h:$(GLSRC)gstext.h
$(GLSRC)gximage3.h:$(GLSRC)gsnamecl.h
$(GLSRC)gximage3.h:$(GLSRC)gstparam.h
-$(GLSRC)gximage3.h:$(GLSRC)gxfcache.h
-$(GLSRC)gximage3.h:$(GLSRC)gxcspace.h
-$(GLSRC)gximage3.h:$(GLSRC)gsropt.h
+$(GLSRC)gximage3.h:$(GLSRC)gxfmap.h
$(GLSRC)gximage3.h:$(GLSRC)gsfunc.h
+$(GLSRC)gximage3.h:$(GLSRC)gxcspace.h
$(GLSRC)gximage3.h:$(GLSRC)gxrplane.h
-$(GLSRC)gximage3.h:$(GLSRC)gsuid.h
-$(GLSRC)gximage3.h:$(GLSRC)gxcmap.h
+$(GLSRC)gximage3.h:$(GLSRC)gscsel.h
+$(GLSRC)gximage3.h:$(GLSRC)gxfcache.h
+$(GLSRC)gximage3.h:$(GLSRC)gsfont.h
$(GLSRC)gximage3.h:$(GLSRC)gsimage.h
$(GLSRC)gximage3.h:$(GLSRC)gsdcolor.h
-$(GLSRC)gximage3.h:$(GLSRC)gxdda.h
$(GLSRC)gximage3.h:$(GLSRC)gxcvalue.h
-$(GLSRC)gximage3.h:$(GLSRC)gsfont.h
-$(GLSRC)gximage3.h:$(GLSRC)gxfmap.h
-$(GLSRC)gximage3.h:$(GLSRC)gxftype.h
+$(GLSRC)gximage3.h:$(GLSRC)gxbcache.h
+$(GLSRC)gximage3.h:$(GLSRC)gsropt.h
+$(GLSRC)gximage3.h:$(GLSRC)gxdda.h
+$(GLSRC)gximage3.h:$(GLSRC)gxpath.h
$(GLSRC)gximage3.h:$(GLSRC)gxfrac.h
+$(GLSRC)gximage3.h:$(GLSRC)gxtmap.h
+$(GLSRC)gximage3.h:$(GLSRC)gxftype.h
$(GLSRC)gximage3.h:$(GLSRC)gscms.h
-$(GLSRC)gximage3.h:$(GLSRC)gscspace.h
-$(GLSRC)gximage3.h:$(GLSRC)gxpath.h
-$(GLSRC)gximage3.h:$(GLSRC)gxbcache.h
-$(GLSRC)gximage3.h:$(GLSRC)gsdevice.h
-$(GLSRC)gximage3.h:$(GLSRC)gxarith.h
-$(GLSRC)gximage3.h:$(GLSRC)gspenum.h
-$(GLSRC)gximage3.h:$(GLSRC)gxhttile.h
$(GLSRC)gximage3.h:$(GLSRC)gsrect.h
$(GLSRC)gximage3.h:$(GLSRC)gslparam.h
+$(GLSRC)gximage3.h:$(GLSRC)gsdevice.h
+$(GLSRC)gximage3.h:$(GLSRC)gscpm.h
+$(GLSRC)gximage3.h:$(GLSRC)gscspace.h
+$(GLSRC)gximage3.h:$(GLSRC)gsgstate.h
$(GLSRC)gximage3.h:$(GLSRC)gsxfont.h
-$(GLSRC)gximage3.h:$(GLSRC)gsiparam.h
$(GLSRC)gximage3.h:$(GLSRC)gsdsrc.h
-$(GLSRC)gximage3.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gximage3.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gximage3.h:$(GLSRC)gscpm.h
+$(GLSRC)gximage3.h:$(GLSRC)gsiparam.h
$(GLSRC)gximage3.h:$(GLSRC)gxfixed.h
-$(GLSRC)gximage3.h:$(GLSRC)gsrefct.h
+$(GLSRC)gximage3.h:$(GLSRC)gscompt.h
+$(GLSRC)gximage3.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gximage3.h:$(GLSRC)gspenum.h
+$(GLSRC)gximage3.h:$(GLSRC)gxhttile.h
$(GLSRC)gximage3.h:$(GLSRC)gsparam.h
+$(GLSRC)gximage3.h:$(GLSRC)gsrefct.h
$(GLSRC)gximage3.h:$(GLSRC)gp.h
-$(GLSRC)gximage3.h:$(GLSRC)gsccolor.h
+$(GLSRC)gximage3.h:$(GLSRC)memento.h
+$(GLSRC)gximage3.h:$(GLSRC)memory_.h
+$(GLSRC)gximage3.h:$(GLSRC)gsuid.h
$(GLSRC)gximage3.h:$(GLSRC)gsstruct.h
$(GLSRC)gximage3.h:$(GLSRC)gxsync.h
+$(GLSRC)gximage3.h:$(GLSRC)gxbitmap.h
$(GLSRC)gximage3.h:$(GLSRC)srdline.h
$(GLSRC)gximage3.h:$(GLSRC)scommon.h
-$(GLSRC)gximage3.h:$(GLSRC)memento.h
-$(GLSRC)gximage3.h:$(GLSRC)gscsel.h
$(GLSRC)gximage3.h:$(GLSRC)gsbitmap.h
-$(GLSRC)gximage3.h:$(GLSRC)gsstype.h
+$(GLSRC)gximage3.h:$(GLSRC)gsccolor.h
+$(GLSRC)gximage3.h:$(GLSRC)gxarith.h
$(GLSRC)gximage3.h:$(GLSRC)stat_.h
-$(GLSRC)gximage3.h:$(GLSRC)gxtmap.h
-$(GLSRC)gximage3.h:$(GLSRC)gsmemory.h
$(GLSRC)gximage3.h:$(GLSRC)gpsync.h
-$(GLSRC)gximage3.h:$(GLSRC)memory_.h
+$(GLSRC)gximage3.h:$(GLSRC)gsstype.h
+$(GLSRC)gximage3.h:$(GLSRC)gsmemory.h
$(GLSRC)gximage3.h:$(GLSRC)gpgetenv.h
-$(GLSRC)gximage3.h:$(GLSRC)gslibctx.h
$(GLSRC)gximage3.h:$(GLSRC)gscdefs.h
-$(GLSRC)gximage3.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gximage3.h:$(GLSRC)stdio_.h
-$(GLSRC)gximage3.h:$(GLSRC)gscompt.h
+$(GLSRC)gximage3.h:$(GLSRC)gslibctx.h
$(GLSRC)gximage3.h:$(GLSRC)gxcindex.h
-$(GLSRC)gximage3.h:$(GLSRC)gsgstate.h
+$(GLSRC)gximage3.h:$(GLSRC)stdio_.h
+$(GLSRC)gximage3.h:$(GLSRC)gsccode.h
$(GLSRC)gximage3.h:$(GLSRC)stdint_.h
$(GLSRC)gximage3.h:$(GLSRC)gssprintf.h
-$(GLSRC)gximage3.h:$(GLSRC)gsccode.h
-$(GLSRC)gximage3.h:$(GLSRC)std.h
$(GLSRC)gximage3.h:$(GLSRC)gstypes.h
+$(GLSRC)gximage3.h:$(GLSRC)std.h
$(GLSRC)gximage3.h:$(GLSRC)stdpre.h
$(GLSRC)gximage3.h:$(GLGEN)arch.h
+$(GLSRC)gximage3.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxcldev.h:$(GLSRC)gxdht.h
$(GLSRC)gxcldev.h:$(GLSRC)srlx.h
$(GLSRC)gxcldev.h:$(GLSRC)gxht.h
$(GLSRC)gxcldev.h:$(GLSRC)gxhttype.h
$(GLSRC)gxcldev.h:$(GLSRC)gxclist.h
$(GLSRC)gxcldev.h:$(GLSRC)gxgstate.h
-$(GLSRC)gxcldev.h:$(GLSRC)gxline.h
$(GLSRC)gxcldev.h:$(GLSRC)gstrans.h
+$(GLSRC)gxcldev.h:$(GLSRC)gdevp14.h
+$(GLSRC)gxcldev.h:$(GLSRC)gxline.h
$(GLSRC)gxcldev.h:$(GLSRC)gsht1.h
+$(GLSRC)gxcldev.h:$(GLSRC)gxcomp.h
$(GLSRC)gxcldev.h:$(GLSRC)math_.h
$(GLSRC)gxcldev.h:$(GLSRC)scfx.h
-$(GLSRC)gxcldev.h:$(GLSRC)gdevp14.h
$(GLSRC)gxcldev.h:$(GLSRC)gxcolor2.h
$(GLSRC)gxcldev.h:$(GLSRC)gxpcolor.h
+$(GLSRC)gxcldev.h:$(GLSRC)gxdevmem.h
$(GLSRC)gxcldev.h:$(GLSRC)gdevdevn.h
-$(GLSRC)gxcldev.h:$(GLSRC)gsequivc.h
-$(GLSRC)gxcldev.h:$(GLSRC)gxblend.h
$(GLSRC)gxcldev.h:$(GLSRC)gxclipsr.h
-$(GLSRC)gxcldev.h:$(GLSRC)gxcomp.h
-$(GLSRC)gxcldev.h:$(GLSRC)gxdcolor.h
-$(GLSRC)gxcldev.h:$(GLSRC)gxmatrix.h
-$(GLSRC)gxcldev.h:$(GLSRC)gxbitfmt.h
$(GLSRC)gxcldev.h:$(GLSRC)gxdevbuf.h
+$(GLSRC)gxcldev.h:$(GLSRC)gxdcolor.h
$(GLSRC)gxcldev.h:$(GLSRC)gxband.h
+$(GLSRC)gxcldev.h:$(GLSRC)gxblend.h
$(GLSRC)gxcldev.h:$(GLSRC)shc.h
$(GLSRC)gxcldev.h:$(GLSRC)gscolor2.h
-$(GLSRC)gxcldev.h:$(GLSRC)gscindex.h
+$(GLSRC)gxcldev.h:$(GLSRC)gxmatrix.h
$(GLSRC)gxcldev.h:$(GLSRC)gxdevice.h
-$(GLSRC)gxcldev.h:$(GLSRC)gsht.h
$(GLSRC)gxcldev.h:$(GLSRC)gxcpath.h
-$(GLSRC)gxcldev.h:$(GLSRC)gxdevmem.h
+$(GLSRC)gxcldev.h:$(GLSRC)gsht.h
+$(GLSRC)gxcldev.h:$(GLSRC)gsequivc.h
$(GLSRC)gxcldev.h:$(GLSRC)gxdevcli.h
$(GLSRC)gxcldev.h:$(GLSRC)gxpcache.h
+$(GLSRC)gxcldev.h:$(GLSRC)gscindex.h
+$(GLSRC)gxcldev.h:$(GLSRC)gxcmap.h
$(GLSRC)gxcldev.h:$(GLSRC)gsptype1.h
-$(GLSRC)gxcldev.h:$(GLSRC)gxtext.h
$(GLSRC)gxcldev.h:$(GLSRC)gscie.h
+$(GLSRC)gxcldev.h:$(GLSRC)gxtext.h
$(GLSRC)gxcldev.h:$(GLSRC)gstext.h
+$(GLSRC)gxcldev.h:$(GLSRC)gxstate.h
$(GLSRC)gxcldev.h:$(GLSRC)gsnamecl.h
$(GLSRC)gxcldev.h:$(GLSRC)gstparam.h
-$(GLSRC)gxcldev.h:$(GLSRC)gxstate.h
$(GLSRC)gxcldev.h:$(GLSRC)gspcolor.h
-$(GLSRC)gxcldev.h:$(GLSRC)gxfcache.h
-$(GLSRC)gxcldev.h:$(GLSRC)gxcspace.h
-$(GLSRC)gxcldev.h:$(GLSRC)gsropt.h
-$(GLSRC)gxcldev.h:$(GLSRC)gsfunc.h
+$(GLSRC)gxcldev.h:$(GLSRC)gxfmap.h
$(GLSRC)gxcldev.h:$(GLSRC)gsmalloc.h
-$(GLSRC)gxcldev.h:$(GLSRC)gxrplane.h
+$(GLSRC)gxcldev.h:$(GLSRC)gsfunc.h
+$(GLSRC)gxcldev.h:$(GLSRC)gxcspace.h
$(GLSRC)gxcldev.h:$(GLSRC)gxctable.h
-$(GLSRC)gxcldev.h:$(GLSRC)gsuid.h
-$(GLSRC)gxcldev.h:$(GLSRC)gxcmap.h
$(GLSRC)gxcldev.h:$(GLSRC)strimpl.h
+$(GLSRC)gxcldev.h:$(GLSRC)gxrplane.h
+$(GLSRC)gxcldev.h:$(GLSRC)gscsel.h
+$(GLSRC)gxcldev.h:$(GLSRC)gxfcache.h
+$(GLSRC)gxcldev.h:$(GLSRC)gsfont.h
$(GLSRC)gxcldev.h:$(GLSRC)gsimage.h
$(GLSRC)gxcldev.h:$(GLSRC)gsdcolor.h
-$(GLSRC)gxcldev.h:$(GLSRC)gxdda.h
$(GLSRC)gxcldev.h:$(GLSRC)gxcvalue.h
-$(GLSRC)gxcldev.h:$(GLSRC)gsfont.h
-$(GLSRC)gxcldev.h:$(GLSRC)gxfmap.h
+$(GLSRC)gxcldev.h:$(GLSRC)gxbcache.h
+$(GLSRC)gxcldev.h:$(GLSRC)gsropt.h
+$(GLSRC)gxcldev.h:$(GLSRC)gxdda.h
+$(GLSRC)gxcldev.h:$(GLSRC)gxpath.h
$(GLSRC)gxcldev.h:$(GLSRC)gxiclass.h
-$(GLSRC)gxcldev.h:$(GLSRC)gxftype.h
$(GLSRC)gxcldev.h:$(GLSRC)gxfrac.h
+$(GLSRC)gxcldev.h:$(GLSRC)gxtmap.h
+$(GLSRC)gxcldev.h:$(GLSRC)gxftype.h
$(GLSRC)gxcldev.h:$(GLSRC)gscms.h
-$(GLSRC)gxcldev.h:$(GLSRC)gscspace.h
-$(GLSRC)gxcldev.h:$(GLSRC)gxpath.h
-$(GLSRC)gxcldev.h:$(GLSRC)gxbcache.h
-$(GLSRC)gxcldev.h:$(GLSRC)gsdevice.h
-$(GLSRC)gxcldev.h:$(GLSRC)gxarith.h
-$(GLSRC)gxcldev.h:$(GLSRC)gxstdio.h
-$(GLSRC)gxcldev.h:$(GLSRC)gspenum.h
-$(GLSRC)gxcldev.h:$(GLSRC)gxhttile.h
$(GLSRC)gxcldev.h:$(GLSRC)gsrect.h
$(GLSRC)gxcldev.h:$(GLSRC)gslparam.h
+$(GLSRC)gxcldev.h:$(GLSRC)gsdevice.h
+$(GLSRC)gxcldev.h:$(GLSRC)gxbitfmt.h
+$(GLSRC)gxcldev.h:$(GLSRC)gscpm.h
+$(GLSRC)gxcldev.h:$(GLSRC)gscspace.h
+$(GLSRC)gxcldev.h:$(GLSRC)gsgstate.h
+$(GLSRC)gxcldev.h:$(GLSRC)gxstdio.h
$(GLSRC)gxcldev.h:$(GLSRC)gsxfont.h
-$(GLSRC)gxcldev.h:$(GLSRC)gxclio.h
-$(GLSRC)gxcldev.h:$(GLSRC)gsiparam.h
$(GLSRC)gxcldev.h:$(GLSRC)gsdsrc.h
$(GLSRC)gxcldev.h:$(GLSRC)gsio.h
-$(GLSRC)gxcldev.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gxcldev.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gxcldev.h:$(GLSRC)gscpm.h
+$(GLSRC)gxcldev.h:$(GLSRC)gsiparam.h
$(GLSRC)gxcldev.h:$(GLSRC)gxfixed.h
-$(GLSRC)gxcldev.h:$(GLSRC)gsrefct.h
+$(GLSRC)gxcldev.h:$(GLSRC)gxclio.h
+$(GLSRC)gxcldev.h:$(GLSRC)gscompt.h
+$(GLSRC)gxcldev.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gxcldev.h:$(GLSRC)gspenum.h
+$(GLSRC)gxcldev.h:$(GLSRC)gxhttile.h
$(GLSRC)gxcldev.h:$(GLSRC)gsparam.h
+$(GLSRC)gxcldev.h:$(GLSRC)gsrefct.h
$(GLSRC)gxcldev.h:$(GLSRC)gp.h
-$(GLSRC)gxcldev.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxcldev.h:$(GLSRC)memento.h
+$(GLSRC)gxcldev.h:$(GLSRC)memory_.h
+$(GLSRC)gxcldev.h:$(GLSRC)gsuid.h
$(GLSRC)gxcldev.h:$(GLSRC)gsstruct.h
$(GLSRC)gxcldev.h:$(GLSRC)gxsync.h
+$(GLSRC)gxcldev.h:$(GLSRC)gxbitmap.h
+$(GLSRC)gxcldev.h:$(GLSRC)vmsmath.h
$(GLSRC)gxcldev.h:$(GLSRC)srdline.h
$(GLSRC)gxcldev.h:$(GLSRC)scommon.h
-$(GLSRC)gxcldev.h:$(GLSRC)memento.h
-$(GLSRC)gxcldev.h:$(GLSRC)vmsmath.h
-$(GLSRC)gxcldev.h:$(GLSRC)gscsel.h
-$(GLSRC)gxcldev.h:$(GLSRC)gsbitmap.h
$(GLSRC)gxcldev.h:$(GLSRC)gsfname.h
-$(GLSRC)gxcldev.h:$(GLSRC)gsstype.h
+$(GLSRC)gxcldev.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gxcldev.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxcldev.h:$(GLSRC)gxarith.h
$(GLSRC)gxcldev.h:$(GLSRC)stat_.h
-$(GLSRC)gxcldev.h:$(GLSRC)gxtmap.h
-$(GLSRC)gxcldev.h:$(GLSRC)gsmemory.h
$(GLSRC)gxcldev.h:$(GLSRC)gpsync.h
-$(GLSRC)gxcldev.h:$(GLSRC)memory_.h
+$(GLSRC)gxcldev.h:$(GLSRC)gsstype.h
+$(GLSRC)gxcldev.h:$(GLSRC)gsmemory.h
$(GLSRC)gxcldev.h:$(GLSRC)gpgetenv.h
-$(GLSRC)gxcldev.h:$(GLSRC)gslibctx.h
$(GLSRC)gxcldev.h:$(GLSRC)gscdefs.h
-$(GLSRC)gxcldev.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gxcldev.h:$(GLSRC)stdio_.h
-$(GLSRC)gxcldev.h:$(GLSRC)gscompt.h
-$(GLSRC)gxcldev.h:$(GLSRC)gsbittab.h
+$(GLSRC)gxcldev.h:$(GLSRC)gslibctx.h
$(GLSRC)gxcldev.h:$(GLSRC)gxcindex.h
-$(GLSRC)gxcldev.h:$(GLSRC)gsgstate.h
+$(GLSRC)gxcldev.h:$(GLSRC)stdio_.h
+$(GLSRC)gxcldev.h:$(GLSRC)gsccode.h
$(GLSRC)gxcldev.h:$(GLSRC)stdint_.h
$(GLSRC)gxcldev.h:$(GLSRC)gssprintf.h
-$(GLSRC)gxcldev.h:$(GLSRC)gsccode.h
-$(GLSRC)gxcldev.h:$(GLSRC)std.h
+$(GLSRC)gxcldev.h:$(GLSRC)gsbittab.h
$(GLSRC)gxcldev.h:$(GLSRC)gstypes.h
+$(GLSRC)gxcldev.h:$(GLSRC)std.h
$(GLSRC)gxcldev.h:$(GLSRC)stdpre.h
$(GLSRC)gxcldev.h:$(GLGEN)arch.h
+$(GLSRC)gxcldev.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxclpage.h:$(GLSRC)gxclist.h
$(GLSRC)gxclpage.h:$(GLSRC)gxgstate.h
-$(GLSRC)gxclpage.h:$(GLSRC)gxline.h
$(GLSRC)gxclpage.h:$(GLSRC)gstrans.h
+$(GLSRC)gxclpage.h:$(GLSRC)gdevp14.h
+$(GLSRC)gxclpage.h:$(GLSRC)gxline.h
$(GLSRC)gxclpage.h:$(GLSRC)gsht1.h
+$(GLSRC)gxclpage.h:$(GLSRC)gxcomp.h
$(GLSRC)gxclpage.h:$(GLSRC)math_.h
-$(GLSRC)gxclpage.h:$(GLSRC)gdevp14.h
$(GLSRC)gxclpage.h:$(GLSRC)gxcolor2.h
$(GLSRC)gxclpage.h:$(GLSRC)gxpcolor.h
+$(GLSRC)gxclpage.h:$(GLSRC)gxdevmem.h
$(GLSRC)gxclpage.h:$(GLSRC)gdevdevn.h
-$(GLSRC)gxclpage.h:$(GLSRC)gsequivc.h
-$(GLSRC)gxclpage.h:$(GLSRC)gxblend.h
$(GLSRC)gxclpage.h:$(GLSRC)gxclipsr.h
-$(GLSRC)gxclpage.h:$(GLSRC)gxcomp.h
-$(GLSRC)gxclpage.h:$(GLSRC)gxdcolor.h
-$(GLSRC)gxclpage.h:$(GLSRC)gxmatrix.h
-$(GLSRC)gxclpage.h:$(GLSRC)gxbitfmt.h
$(GLSRC)gxclpage.h:$(GLSRC)gxdevbuf.h
+$(GLSRC)gxclpage.h:$(GLSRC)gxdcolor.h
$(GLSRC)gxclpage.h:$(GLSRC)gxband.h
+$(GLSRC)gxclpage.h:$(GLSRC)gxblend.h
$(GLSRC)gxclpage.h:$(GLSRC)gscolor2.h
-$(GLSRC)gxclpage.h:$(GLSRC)gscindex.h
+$(GLSRC)gxclpage.h:$(GLSRC)gxmatrix.h
$(GLSRC)gxclpage.h:$(GLSRC)gxdevice.h
-$(GLSRC)gxclpage.h:$(GLSRC)gsht.h
$(GLSRC)gxclpage.h:$(GLSRC)gxcpath.h
-$(GLSRC)gxclpage.h:$(GLSRC)gxdevmem.h
+$(GLSRC)gxclpage.h:$(GLSRC)gsht.h
+$(GLSRC)gxclpage.h:$(GLSRC)gsequivc.h
$(GLSRC)gxclpage.h:$(GLSRC)gxdevcli.h
$(GLSRC)gxclpage.h:$(GLSRC)gxpcache.h
+$(GLSRC)gxclpage.h:$(GLSRC)gscindex.h
+$(GLSRC)gxclpage.h:$(GLSRC)gxcmap.h
$(GLSRC)gxclpage.h:$(GLSRC)gsptype1.h
-$(GLSRC)gxclpage.h:$(GLSRC)gxtext.h
$(GLSRC)gxclpage.h:$(GLSRC)gscie.h
+$(GLSRC)gxclpage.h:$(GLSRC)gxtext.h
$(GLSRC)gxclpage.h:$(GLSRC)gstext.h
+$(GLSRC)gxclpage.h:$(GLSRC)gxstate.h
$(GLSRC)gxclpage.h:$(GLSRC)gsnamecl.h
$(GLSRC)gxclpage.h:$(GLSRC)gstparam.h
-$(GLSRC)gxclpage.h:$(GLSRC)gxstate.h
$(GLSRC)gxclpage.h:$(GLSRC)gspcolor.h
-$(GLSRC)gxclpage.h:$(GLSRC)gxfcache.h
-$(GLSRC)gxclpage.h:$(GLSRC)gxcspace.h
-$(GLSRC)gxclpage.h:$(GLSRC)gsropt.h
-$(GLSRC)gxclpage.h:$(GLSRC)gsfunc.h
+$(GLSRC)gxclpage.h:$(GLSRC)gxfmap.h
$(GLSRC)gxclpage.h:$(GLSRC)gsmalloc.h
-$(GLSRC)gxclpage.h:$(GLSRC)gxrplane.h
+$(GLSRC)gxclpage.h:$(GLSRC)gsfunc.h
+$(GLSRC)gxclpage.h:$(GLSRC)gxcspace.h
$(GLSRC)gxclpage.h:$(GLSRC)gxctable.h
-$(GLSRC)gxclpage.h:$(GLSRC)gsuid.h
-$(GLSRC)gxclpage.h:$(GLSRC)gxcmap.h
+$(GLSRC)gxclpage.h:$(GLSRC)gxrplane.h
+$(GLSRC)gxclpage.h:$(GLSRC)gscsel.h
+$(GLSRC)gxclpage.h:$(GLSRC)gxfcache.h
+$(GLSRC)gxclpage.h:$(GLSRC)gsfont.h
$(GLSRC)gxclpage.h:$(GLSRC)gsimage.h
$(GLSRC)gxclpage.h:$(GLSRC)gsdcolor.h
-$(GLSRC)gxclpage.h:$(GLSRC)gxdda.h
$(GLSRC)gxclpage.h:$(GLSRC)gxcvalue.h
-$(GLSRC)gxclpage.h:$(GLSRC)gsfont.h
-$(GLSRC)gxclpage.h:$(GLSRC)gxfmap.h
+$(GLSRC)gxclpage.h:$(GLSRC)gxbcache.h
+$(GLSRC)gxclpage.h:$(GLSRC)gsropt.h
+$(GLSRC)gxclpage.h:$(GLSRC)gxdda.h
+$(GLSRC)gxclpage.h:$(GLSRC)gxpath.h
$(GLSRC)gxclpage.h:$(GLSRC)gxiclass.h
-$(GLSRC)gxclpage.h:$(GLSRC)gxftype.h
$(GLSRC)gxclpage.h:$(GLSRC)gxfrac.h
+$(GLSRC)gxclpage.h:$(GLSRC)gxtmap.h
+$(GLSRC)gxclpage.h:$(GLSRC)gxftype.h
$(GLSRC)gxclpage.h:$(GLSRC)gscms.h
-$(GLSRC)gxclpage.h:$(GLSRC)gscspace.h
-$(GLSRC)gxclpage.h:$(GLSRC)gxpath.h
-$(GLSRC)gxclpage.h:$(GLSRC)gxbcache.h
-$(GLSRC)gxclpage.h:$(GLSRC)gsdevice.h
-$(GLSRC)gxclpage.h:$(GLSRC)gxarith.h
-$(GLSRC)gxclpage.h:$(GLSRC)gxstdio.h
-$(GLSRC)gxclpage.h:$(GLSRC)gspenum.h
-$(GLSRC)gxclpage.h:$(GLSRC)gxhttile.h
$(GLSRC)gxclpage.h:$(GLSRC)gsrect.h
$(GLSRC)gxclpage.h:$(GLSRC)gslparam.h
+$(GLSRC)gxclpage.h:$(GLSRC)gsdevice.h
+$(GLSRC)gxclpage.h:$(GLSRC)gxbitfmt.h
+$(GLSRC)gxclpage.h:$(GLSRC)gscpm.h
+$(GLSRC)gxclpage.h:$(GLSRC)gscspace.h
+$(GLSRC)gxclpage.h:$(GLSRC)gsgstate.h
+$(GLSRC)gxclpage.h:$(GLSRC)gxstdio.h
$(GLSRC)gxclpage.h:$(GLSRC)gsxfont.h
-$(GLSRC)gxclpage.h:$(GLSRC)gxclio.h
-$(GLSRC)gxclpage.h:$(GLSRC)gsiparam.h
$(GLSRC)gxclpage.h:$(GLSRC)gsdsrc.h
$(GLSRC)gxclpage.h:$(GLSRC)gsio.h
-$(GLSRC)gxclpage.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gxclpage.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gxclpage.h:$(GLSRC)gscpm.h
+$(GLSRC)gxclpage.h:$(GLSRC)gsiparam.h
$(GLSRC)gxclpage.h:$(GLSRC)gxfixed.h
-$(GLSRC)gxclpage.h:$(GLSRC)gsrefct.h
+$(GLSRC)gxclpage.h:$(GLSRC)gxclio.h
+$(GLSRC)gxclpage.h:$(GLSRC)gscompt.h
+$(GLSRC)gxclpage.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gxclpage.h:$(GLSRC)gspenum.h
+$(GLSRC)gxclpage.h:$(GLSRC)gxhttile.h
$(GLSRC)gxclpage.h:$(GLSRC)gsparam.h
+$(GLSRC)gxclpage.h:$(GLSRC)gsrefct.h
$(GLSRC)gxclpage.h:$(GLSRC)gp.h
-$(GLSRC)gxclpage.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxclpage.h:$(GLSRC)memento.h
+$(GLSRC)gxclpage.h:$(GLSRC)memory_.h
+$(GLSRC)gxclpage.h:$(GLSRC)gsuid.h
$(GLSRC)gxclpage.h:$(GLSRC)gsstruct.h
$(GLSRC)gxclpage.h:$(GLSRC)gxsync.h
+$(GLSRC)gxclpage.h:$(GLSRC)gxbitmap.h
+$(GLSRC)gxclpage.h:$(GLSRC)vmsmath.h
$(GLSRC)gxclpage.h:$(GLSRC)srdline.h
$(GLSRC)gxclpage.h:$(GLSRC)scommon.h
-$(GLSRC)gxclpage.h:$(GLSRC)memento.h
-$(GLSRC)gxclpage.h:$(GLSRC)vmsmath.h
-$(GLSRC)gxclpage.h:$(GLSRC)gscsel.h
-$(GLSRC)gxclpage.h:$(GLSRC)gsbitmap.h
$(GLSRC)gxclpage.h:$(GLSRC)gsfname.h
-$(GLSRC)gxclpage.h:$(GLSRC)gsstype.h
+$(GLSRC)gxclpage.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gxclpage.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxclpage.h:$(GLSRC)gxarith.h
$(GLSRC)gxclpage.h:$(GLSRC)stat_.h
-$(GLSRC)gxclpage.h:$(GLSRC)gxtmap.h
-$(GLSRC)gxclpage.h:$(GLSRC)gsmemory.h
$(GLSRC)gxclpage.h:$(GLSRC)gpsync.h
-$(GLSRC)gxclpage.h:$(GLSRC)memory_.h
+$(GLSRC)gxclpage.h:$(GLSRC)gsstype.h
+$(GLSRC)gxclpage.h:$(GLSRC)gsmemory.h
$(GLSRC)gxclpage.h:$(GLSRC)gpgetenv.h
-$(GLSRC)gxclpage.h:$(GLSRC)gslibctx.h
$(GLSRC)gxclpage.h:$(GLSRC)gscdefs.h
-$(GLSRC)gxclpage.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gxclpage.h:$(GLSRC)stdio_.h
-$(GLSRC)gxclpage.h:$(GLSRC)gscompt.h
+$(GLSRC)gxclpage.h:$(GLSRC)gslibctx.h
$(GLSRC)gxclpage.h:$(GLSRC)gxcindex.h
-$(GLSRC)gxclpage.h:$(GLSRC)gsgstate.h
+$(GLSRC)gxclpage.h:$(GLSRC)stdio_.h
+$(GLSRC)gxclpage.h:$(GLSRC)gsccode.h
$(GLSRC)gxclpage.h:$(GLSRC)stdint_.h
$(GLSRC)gxclpage.h:$(GLSRC)gssprintf.h
-$(GLSRC)gxclpage.h:$(GLSRC)gsccode.h
-$(GLSRC)gxclpage.h:$(GLSRC)std.h
$(GLSRC)gxclpage.h:$(GLSRC)gstypes.h
+$(GLSRC)gxclpage.h:$(GLSRC)std.h
$(GLSRC)gxclpage.h:$(GLSRC)stdpre.h
$(GLSRC)gxclpage.h:$(GLGEN)arch.h
+$(GLSRC)gxclpage.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxclpath.h:$(GLSRC)gxcldev.h
$(GLSRC)gxclpath.h:$(GLSRC)gxdht.h
$(GLSRC)gxclpath.h:$(GLSRC)srlx.h
@@ -11108,268 +11121,268 @@ $(GLSRC)gxclpath.h:$(GLSRC)gxht.h
$(GLSRC)gxclpath.h:$(GLSRC)gxhttype.h
$(GLSRC)gxclpath.h:$(GLSRC)gxclist.h
$(GLSRC)gxclpath.h:$(GLSRC)gxgstate.h
-$(GLSRC)gxclpath.h:$(GLSRC)gxline.h
$(GLSRC)gxclpath.h:$(GLSRC)gstrans.h
+$(GLSRC)gxclpath.h:$(GLSRC)gdevp14.h
+$(GLSRC)gxclpath.h:$(GLSRC)gxline.h
$(GLSRC)gxclpath.h:$(GLSRC)gsht1.h
+$(GLSRC)gxclpath.h:$(GLSRC)gxcomp.h
$(GLSRC)gxclpath.h:$(GLSRC)math_.h
$(GLSRC)gxclpath.h:$(GLSRC)scfx.h
-$(GLSRC)gxclpath.h:$(GLSRC)gdevp14.h
$(GLSRC)gxclpath.h:$(GLSRC)gxcolor2.h
$(GLSRC)gxclpath.h:$(GLSRC)gxpcolor.h
+$(GLSRC)gxclpath.h:$(GLSRC)gxdevmem.h
$(GLSRC)gxclpath.h:$(GLSRC)gdevdevn.h
-$(GLSRC)gxclpath.h:$(GLSRC)gsequivc.h
-$(GLSRC)gxclpath.h:$(GLSRC)gxblend.h
$(GLSRC)gxclpath.h:$(GLSRC)gxclipsr.h
-$(GLSRC)gxclpath.h:$(GLSRC)gxcomp.h
-$(GLSRC)gxclpath.h:$(GLSRC)gxdcolor.h
-$(GLSRC)gxclpath.h:$(GLSRC)gxmatrix.h
-$(GLSRC)gxclpath.h:$(GLSRC)gxbitfmt.h
$(GLSRC)gxclpath.h:$(GLSRC)gxdevbuf.h
+$(GLSRC)gxclpath.h:$(GLSRC)gxdcolor.h
$(GLSRC)gxclpath.h:$(GLSRC)gxband.h
+$(GLSRC)gxclpath.h:$(GLSRC)gxblend.h
$(GLSRC)gxclpath.h:$(GLSRC)shc.h
$(GLSRC)gxclpath.h:$(GLSRC)gscolor2.h
-$(GLSRC)gxclpath.h:$(GLSRC)gscindex.h
+$(GLSRC)gxclpath.h:$(GLSRC)gxmatrix.h
$(GLSRC)gxclpath.h:$(GLSRC)gxdevice.h
-$(GLSRC)gxclpath.h:$(GLSRC)gsht.h
$(GLSRC)gxclpath.h:$(GLSRC)gxcpath.h
-$(GLSRC)gxclpath.h:$(GLSRC)gxdevmem.h
+$(GLSRC)gxclpath.h:$(GLSRC)gsht.h
+$(GLSRC)gxclpath.h:$(GLSRC)gsequivc.h
$(GLSRC)gxclpath.h:$(GLSRC)gxdevcli.h
$(GLSRC)gxclpath.h:$(GLSRC)gxpcache.h
+$(GLSRC)gxclpath.h:$(GLSRC)gscindex.h
+$(GLSRC)gxclpath.h:$(GLSRC)gxcmap.h
$(GLSRC)gxclpath.h:$(GLSRC)gsptype1.h
-$(GLSRC)gxclpath.h:$(GLSRC)gxtext.h
$(GLSRC)gxclpath.h:$(GLSRC)gscie.h
+$(GLSRC)gxclpath.h:$(GLSRC)gxtext.h
$(GLSRC)gxclpath.h:$(GLSRC)gstext.h
+$(GLSRC)gxclpath.h:$(GLSRC)gxstate.h
$(GLSRC)gxclpath.h:$(GLSRC)gsnamecl.h
$(GLSRC)gxclpath.h:$(GLSRC)gstparam.h
-$(GLSRC)gxclpath.h:$(GLSRC)gxstate.h
$(GLSRC)gxclpath.h:$(GLSRC)gspcolor.h
-$(GLSRC)gxclpath.h:$(GLSRC)gxfcache.h
-$(GLSRC)gxclpath.h:$(GLSRC)gxcspace.h
-$(GLSRC)gxclpath.h:$(GLSRC)gsropt.h
-$(GLSRC)gxclpath.h:$(GLSRC)gsfunc.h
+$(GLSRC)gxclpath.h:$(GLSRC)gxfmap.h
$(GLSRC)gxclpath.h:$(GLSRC)gsmalloc.h
-$(GLSRC)gxclpath.h:$(GLSRC)gxrplane.h
+$(GLSRC)gxclpath.h:$(GLSRC)gsfunc.h
+$(GLSRC)gxclpath.h:$(GLSRC)gxcspace.h
$(GLSRC)gxclpath.h:$(GLSRC)gxctable.h
-$(GLSRC)gxclpath.h:$(GLSRC)gsuid.h
-$(GLSRC)gxclpath.h:$(GLSRC)gxcmap.h
$(GLSRC)gxclpath.h:$(GLSRC)strimpl.h
+$(GLSRC)gxclpath.h:$(GLSRC)gxrplane.h
+$(GLSRC)gxclpath.h:$(GLSRC)gscsel.h
+$(GLSRC)gxclpath.h:$(GLSRC)gxfcache.h
+$(GLSRC)gxclpath.h:$(GLSRC)gsfont.h
$(GLSRC)gxclpath.h:$(GLSRC)gsimage.h
$(GLSRC)gxclpath.h:$(GLSRC)gsdcolor.h
-$(GLSRC)gxclpath.h:$(GLSRC)gxdda.h
$(GLSRC)gxclpath.h:$(GLSRC)gxcvalue.h
-$(GLSRC)gxclpath.h:$(GLSRC)gsfont.h
-$(GLSRC)gxclpath.h:$(GLSRC)gxfmap.h
+$(GLSRC)gxclpath.h:$(GLSRC)gxbcache.h
+$(GLSRC)gxclpath.h:$(GLSRC)gsropt.h
+$(GLSRC)gxclpath.h:$(GLSRC)gxdda.h
+$(GLSRC)gxclpath.h:$(GLSRC)gxpath.h
$(GLSRC)gxclpath.h:$(GLSRC)gxiclass.h
-$(GLSRC)gxclpath.h:$(GLSRC)gxftype.h
$(GLSRC)gxclpath.h:$(GLSRC)gxfrac.h
+$(GLSRC)gxclpath.h:$(GLSRC)gxtmap.h
+$(GLSRC)gxclpath.h:$(GLSRC)gxftype.h
$(GLSRC)gxclpath.h:$(GLSRC)gscms.h
-$(GLSRC)gxclpath.h:$(GLSRC)gscspace.h
-$(GLSRC)gxclpath.h:$(GLSRC)gxpath.h
-$(GLSRC)gxclpath.h:$(GLSRC)gxbcache.h
-$(GLSRC)gxclpath.h:$(GLSRC)gsdevice.h
-$(GLSRC)gxclpath.h:$(GLSRC)gxarith.h
-$(GLSRC)gxclpath.h:$(GLSRC)gxstdio.h
-$(GLSRC)gxclpath.h:$(GLSRC)gspenum.h
-$(GLSRC)gxclpath.h:$(GLSRC)gxhttile.h
$(GLSRC)gxclpath.h:$(GLSRC)gsrect.h
$(GLSRC)gxclpath.h:$(GLSRC)gslparam.h
+$(GLSRC)gxclpath.h:$(GLSRC)gsdevice.h
+$(GLSRC)gxclpath.h:$(GLSRC)gxbitfmt.h
+$(GLSRC)gxclpath.h:$(GLSRC)gscpm.h
+$(GLSRC)gxclpath.h:$(GLSRC)gscspace.h
+$(GLSRC)gxclpath.h:$(GLSRC)gsgstate.h
+$(GLSRC)gxclpath.h:$(GLSRC)gxstdio.h
$(GLSRC)gxclpath.h:$(GLSRC)gsxfont.h
-$(GLSRC)gxclpath.h:$(GLSRC)gxclio.h
-$(GLSRC)gxclpath.h:$(GLSRC)gsiparam.h
$(GLSRC)gxclpath.h:$(GLSRC)gsdsrc.h
$(GLSRC)gxclpath.h:$(GLSRC)gsio.h
-$(GLSRC)gxclpath.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gxclpath.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gxclpath.h:$(GLSRC)gscpm.h
+$(GLSRC)gxclpath.h:$(GLSRC)gsiparam.h
$(GLSRC)gxclpath.h:$(GLSRC)gxfixed.h
-$(GLSRC)gxclpath.h:$(GLSRC)gsrefct.h
+$(GLSRC)gxclpath.h:$(GLSRC)gxclio.h
+$(GLSRC)gxclpath.h:$(GLSRC)gscompt.h
+$(GLSRC)gxclpath.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gxclpath.h:$(GLSRC)gspenum.h
+$(GLSRC)gxclpath.h:$(GLSRC)gxhttile.h
$(GLSRC)gxclpath.h:$(GLSRC)gsparam.h
+$(GLSRC)gxclpath.h:$(GLSRC)gsrefct.h
$(GLSRC)gxclpath.h:$(GLSRC)gp.h
-$(GLSRC)gxclpath.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxclpath.h:$(GLSRC)memento.h
+$(GLSRC)gxclpath.h:$(GLSRC)memory_.h
+$(GLSRC)gxclpath.h:$(GLSRC)gsuid.h
$(GLSRC)gxclpath.h:$(GLSRC)gsstruct.h
$(GLSRC)gxclpath.h:$(GLSRC)gxsync.h
+$(GLSRC)gxclpath.h:$(GLSRC)gxbitmap.h
+$(GLSRC)gxclpath.h:$(GLSRC)vmsmath.h
$(GLSRC)gxclpath.h:$(GLSRC)srdline.h
$(GLSRC)gxclpath.h:$(GLSRC)scommon.h
-$(GLSRC)gxclpath.h:$(GLSRC)memento.h
-$(GLSRC)gxclpath.h:$(GLSRC)vmsmath.h
-$(GLSRC)gxclpath.h:$(GLSRC)gscsel.h
-$(GLSRC)gxclpath.h:$(GLSRC)gsbitmap.h
$(GLSRC)gxclpath.h:$(GLSRC)gsfname.h
-$(GLSRC)gxclpath.h:$(GLSRC)gsstype.h
+$(GLSRC)gxclpath.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gxclpath.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxclpath.h:$(GLSRC)gxarith.h
$(GLSRC)gxclpath.h:$(GLSRC)stat_.h
-$(GLSRC)gxclpath.h:$(GLSRC)gxtmap.h
-$(GLSRC)gxclpath.h:$(GLSRC)gsmemory.h
$(GLSRC)gxclpath.h:$(GLSRC)gpsync.h
-$(GLSRC)gxclpath.h:$(GLSRC)memory_.h
+$(GLSRC)gxclpath.h:$(GLSRC)gsstype.h
+$(GLSRC)gxclpath.h:$(GLSRC)gsmemory.h
$(GLSRC)gxclpath.h:$(GLSRC)gpgetenv.h
-$(GLSRC)gxclpath.h:$(GLSRC)gslibctx.h
$(GLSRC)gxclpath.h:$(GLSRC)gscdefs.h
-$(GLSRC)gxclpath.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gxclpath.h:$(GLSRC)stdio_.h
-$(GLSRC)gxclpath.h:$(GLSRC)gscompt.h
-$(GLSRC)gxclpath.h:$(GLSRC)gsbittab.h
+$(GLSRC)gxclpath.h:$(GLSRC)gslibctx.h
$(GLSRC)gxclpath.h:$(GLSRC)gxcindex.h
-$(GLSRC)gxclpath.h:$(GLSRC)gsgstate.h
+$(GLSRC)gxclpath.h:$(GLSRC)stdio_.h
+$(GLSRC)gxclpath.h:$(GLSRC)gsccode.h
$(GLSRC)gxclpath.h:$(GLSRC)stdint_.h
$(GLSRC)gxclpath.h:$(GLSRC)gssprintf.h
-$(GLSRC)gxclpath.h:$(GLSRC)gsccode.h
-$(GLSRC)gxclpath.h:$(GLSRC)std.h
+$(GLSRC)gxclpath.h:$(GLSRC)gsbittab.h
$(GLSRC)gxclpath.h:$(GLSRC)gstypes.h
+$(GLSRC)gxclpath.h:$(GLSRC)std.h
$(GLSRC)gxclpath.h:$(GLSRC)stdpre.h
$(GLSRC)gxclpath.h:$(GLGEN)arch.h
+$(GLSRC)gxclpath.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxclmem.h:$(GLSRC)strimpl.h
$(GLSRC)gxclmem.h:$(GLSRC)gxclio.h
$(GLSRC)gxclmem.h:$(GLSRC)gp.h
+$(GLSRC)gxclmem.h:$(GLSRC)memory_.h
$(GLSRC)gxclmem.h:$(GLSRC)gsstruct.h
$(GLSRC)gxclmem.h:$(GLSRC)srdline.h
$(GLSRC)gxclmem.h:$(GLSRC)scommon.h
-$(GLSRC)gxclmem.h:$(GLSRC)gsstype.h
$(GLSRC)gxclmem.h:$(GLSRC)stat_.h
+$(GLSRC)gxclmem.h:$(GLSRC)gsstype.h
$(GLSRC)gxclmem.h:$(GLSRC)gsmemory.h
-$(GLSRC)gxclmem.h:$(GLSRC)memory_.h
$(GLSRC)gxclmem.h:$(GLSRC)gpgetenv.h
-$(GLSRC)gxclmem.h:$(GLSRC)gslibctx.h
$(GLSRC)gxclmem.h:$(GLSRC)gscdefs.h
-$(GLSRC)gxclmem.h:$(GLSRC)gs_dll_call.h
+$(GLSRC)gxclmem.h:$(GLSRC)gslibctx.h
$(GLSRC)gxclmem.h:$(GLSRC)stdio_.h
$(GLSRC)gxclmem.h:$(GLSRC)stdint_.h
$(GLSRC)gxclmem.h:$(GLSRC)gssprintf.h
-$(GLSRC)gxclmem.h:$(GLSRC)std.h
$(GLSRC)gxclmem.h:$(GLSRC)gstypes.h
+$(GLSRC)gxclmem.h:$(GLSRC)std.h
$(GLSRC)gxclmem.h:$(GLSRC)stdpre.h
$(GLSRC)gxclmem.h:$(GLGEN)arch.h
+$(GLSRC)gxclmem.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gdevvec.h:$(GLSRC)gxgstate.h
-$(GLSRC)gdevvec.h:$(GLSRC)gxline.h
$(GLSRC)gdevvec.h:$(GLSRC)gstrans.h
+$(GLSRC)gdevvec.h:$(GLSRC)gdevp14.h
+$(GLSRC)gdevvec.h:$(GLSRC)gxline.h
$(GLSRC)gdevvec.h:$(GLSRC)gsht1.h
-$(GLSRC)gdevvec.h:$(GLSRC)gdevbbox.h
+$(GLSRC)gdevvec.h:$(GLSRC)gxcomp.h
$(GLSRC)gdevvec.h:$(GLSRC)math_.h
-$(GLSRC)gdevvec.h:$(GLSRC)gdevp14.h
+$(GLSRC)gdevvec.h:$(GLSRC)gdevbbox.h
$(GLSRC)gdevvec.h:$(GLSRC)gxcolor2.h
$(GLSRC)gdevvec.h:$(GLSRC)gxpcolor.h
+$(GLSRC)gdevvec.h:$(GLSRC)gxdevmem.h
$(GLSRC)gdevvec.h:$(GLSRC)gdevdevn.h
-$(GLSRC)gdevvec.h:$(GLSRC)gsequivc.h
-$(GLSRC)gdevvec.h:$(GLSRC)gxblend.h
$(GLSRC)gdevvec.h:$(GLSRC)gxclipsr.h
-$(GLSRC)gdevvec.h:$(GLSRC)gxcomp.h
$(GLSRC)gdevvec.h:$(GLSRC)gxdcolor.h
-$(GLSRC)gdevvec.h:$(GLSRC)gxmatrix.h
-$(GLSRC)gdevvec.h:$(GLSRC)gxbitfmt.h
+$(GLSRC)gdevvec.h:$(GLSRC)gxblend.h
$(GLSRC)gdevvec.h:$(GLSRC)gscolor2.h
-$(GLSRC)gdevvec.h:$(GLSRC)gscindex.h
+$(GLSRC)gdevvec.h:$(GLSRC)gxmatrix.h
$(GLSRC)gdevvec.h:$(GLSRC)gxdevice.h
-$(GLSRC)gdevvec.h:$(GLSRC)gsht.h
$(GLSRC)gdevvec.h:$(GLSRC)gxcpath.h
+$(GLSRC)gdevvec.h:$(GLSRC)gsht.h
$(GLSRC)gdevvec.h:$(GLSRC)gxiparam.h
-$(GLSRC)gdevvec.h:$(GLSRC)gxdevmem.h
+$(GLSRC)gdevvec.h:$(GLSRC)gsequivc.h
$(GLSRC)gdevvec.h:$(GLSRC)gxdevcli.h
$(GLSRC)gdevvec.h:$(GLSRC)gxpcache.h
+$(GLSRC)gdevvec.h:$(GLSRC)gscindex.h
+$(GLSRC)gdevvec.h:$(GLSRC)gxcmap.h
$(GLSRC)gdevvec.h:$(GLSRC)gsptype1.h
-$(GLSRC)gdevvec.h:$(GLSRC)gxtext.h
$(GLSRC)gdevvec.h:$(GLSRC)gscie.h
+$(GLSRC)gdevvec.h:$(GLSRC)gxtext.h
$(GLSRC)gdevvec.h:$(GLSRC)gstext.h
+$(GLSRC)gdevvec.h:$(GLSRC)gxstate.h
$(GLSRC)gdevvec.h:$(GLSRC)gsnamecl.h
$(GLSRC)gdevvec.h:$(GLSRC)gstparam.h
-$(GLSRC)gdevvec.h:$(GLSRC)gxstate.h
$(GLSRC)gdevvec.h:$(GLSRC)gspcolor.h
-$(GLSRC)gdevvec.h:$(GLSRC)gxfcache.h
+$(GLSRC)gdevvec.h:$(GLSRC)gxfmap.h
$(GLSRC)gdevvec.h:$(GLSRC)stream.h
-$(GLSRC)gdevvec.h:$(GLSRC)gxcspace.h
-$(GLSRC)gdevvec.h:$(GLSRC)gsropt.h
-$(GLSRC)gdevvec.h:$(GLSRC)gsfunc.h
$(GLSRC)gdevvec.h:$(GLSRC)gsmalloc.h
-$(GLSRC)gdevvec.h:$(GLSRC)gxrplane.h
+$(GLSRC)gdevvec.h:$(GLSRC)gsfunc.h
+$(GLSRC)gdevvec.h:$(GLSRC)gxcspace.h
+$(GLSRC)gdevvec.h:$(GLSRC)gxhldevc.h
$(GLSRC)gdevvec.h:$(GLSRC)gxctable.h
$(GLSRC)gdevvec.h:$(GLSRC)gxiodev.h
-$(GLSRC)gdevvec.h:$(GLSRC)gsuid.h
-$(GLSRC)gdevvec.h:$(GLSRC)gxcmap.h
-$(GLSRC)gdevvec.h:$(GLSRC)gxhldevc.h
+$(GLSRC)gdevvec.h:$(GLSRC)gxrplane.h
+$(GLSRC)gdevvec.h:$(GLSRC)gscsel.h
+$(GLSRC)gdevvec.h:$(GLSRC)gxfcache.h
+$(GLSRC)gdevvec.h:$(GLSRC)gsfont.h
$(GLSRC)gdevvec.h:$(GLSRC)gsimage.h
$(GLSRC)gdevvec.h:$(GLSRC)gsdcolor.h
-$(GLSRC)gdevvec.h:$(GLSRC)gxdda.h
$(GLSRC)gdevvec.h:$(GLSRC)gxcvalue.h
-$(GLSRC)gdevvec.h:$(GLSRC)gsfont.h
-$(GLSRC)gdevvec.h:$(GLSRC)gxfmap.h
+$(GLSRC)gdevvec.h:$(GLSRC)gxbcache.h
+$(GLSRC)gdevvec.h:$(GLSRC)gsropt.h
+$(GLSRC)gdevvec.h:$(GLSRC)gxdda.h
+$(GLSRC)gdevvec.h:$(GLSRC)gxpath.h
$(GLSRC)gdevvec.h:$(GLSRC)gxiclass.h
-$(GLSRC)gdevvec.h:$(GLSRC)gxftype.h
$(GLSRC)gdevvec.h:$(GLSRC)gxfrac.h
+$(GLSRC)gdevvec.h:$(GLSRC)gxtmap.h
+$(GLSRC)gdevvec.h:$(GLSRC)gxftype.h
$(GLSRC)gdevvec.h:$(GLSRC)gscms.h
-$(GLSRC)gdevvec.h:$(GLSRC)gscspace.h
-$(GLSRC)gdevvec.h:$(GLSRC)gxpath.h
-$(GLSRC)gdevvec.h:$(GLSRC)gxbcache.h
-$(GLSRC)gdevvec.h:$(GLSRC)gsdevice.h
-$(GLSRC)gdevvec.h:$(GLSRC)gxarith.h
-$(GLSRC)gdevvec.h:$(GLSRC)gxstdio.h
-$(GLSRC)gdevvec.h:$(GLSRC)gspenum.h
-$(GLSRC)gdevvec.h:$(GLSRC)gxhttile.h
$(GLSRC)gdevvec.h:$(GLSRC)gsrect.h
$(GLSRC)gdevvec.h:$(GLSRC)gslparam.h
+$(GLSRC)gdevvec.h:$(GLSRC)gsdevice.h
+$(GLSRC)gdevvec.h:$(GLSRC)gxbitfmt.h
+$(GLSRC)gdevvec.h:$(GLSRC)gscpm.h
+$(GLSRC)gdevvec.h:$(GLSRC)gscspace.h
+$(GLSRC)gdevvec.h:$(GLSRC)gsgstate.h
+$(GLSRC)gdevvec.h:$(GLSRC)gxstdio.h
$(GLSRC)gdevvec.h:$(GLSRC)gsxfont.h
-$(GLSRC)gdevvec.h:$(GLSRC)gsiparam.h
$(GLSRC)gdevvec.h:$(GLSRC)gsdsrc.h
$(GLSRC)gdevvec.h:$(GLSRC)gsio.h
-$(GLSRC)gdevvec.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gdevvec.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gdevvec.h:$(GLSRC)gscpm.h
+$(GLSRC)gdevvec.h:$(GLSRC)gsiparam.h
$(GLSRC)gdevvec.h:$(GLSRC)gxfixed.h
-$(GLSRC)gdevvec.h:$(GLSRC)gsrefct.h
+$(GLSRC)gdevvec.h:$(GLSRC)gscompt.h
+$(GLSRC)gdevvec.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gdevvec.h:$(GLSRC)gspenum.h
+$(GLSRC)gdevvec.h:$(GLSRC)gxhttile.h
$(GLSRC)gdevvec.h:$(GLSRC)gsparam.h
+$(GLSRC)gdevvec.h:$(GLSRC)gsrefct.h
$(GLSRC)gdevvec.h:$(GLSRC)gp.h
-$(GLSRC)gdevvec.h:$(GLSRC)gsccolor.h
+$(GLSRC)gdevvec.h:$(GLSRC)memento.h
+$(GLSRC)gdevvec.h:$(GLSRC)memory_.h
+$(GLSRC)gdevvec.h:$(GLSRC)gsuid.h
$(GLSRC)gdevvec.h:$(GLSRC)gsstruct.h
$(GLSRC)gdevvec.h:$(GLSRC)gxsync.h
+$(GLSRC)gdevvec.h:$(GLSRC)gxbitmap.h
+$(GLSRC)gdevvec.h:$(GLSRC)vmsmath.h
$(GLSRC)gdevvec.h:$(GLSRC)srdline.h
$(GLSRC)gdevvec.h:$(GLSRC)scommon.h
-$(GLSRC)gdevvec.h:$(GLSRC)memento.h
-$(GLSRC)gdevvec.h:$(GLSRC)vmsmath.h
-$(GLSRC)gdevvec.h:$(GLSRC)gscsel.h
-$(GLSRC)gdevvec.h:$(GLSRC)gsbitmap.h
$(GLSRC)gdevvec.h:$(GLSRC)gsfname.h
-$(GLSRC)gdevvec.h:$(GLSRC)gsstype.h
+$(GLSRC)gdevvec.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gdevvec.h:$(GLSRC)gsccolor.h
+$(GLSRC)gdevvec.h:$(GLSRC)gxarith.h
$(GLSRC)gdevvec.h:$(GLSRC)stat_.h
-$(GLSRC)gdevvec.h:$(GLSRC)gxtmap.h
-$(GLSRC)gdevvec.h:$(GLSRC)gsmemory.h
$(GLSRC)gdevvec.h:$(GLSRC)gpsync.h
-$(GLSRC)gdevvec.h:$(GLSRC)memory_.h
+$(GLSRC)gdevvec.h:$(GLSRC)gsstype.h
+$(GLSRC)gdevvec.h:$(GLSRC)gsmemory.h
$(GLSRC)gdevvec.h:$(GLSRC)gpgetenv.h
-$(GLSRC)gdevvec.h:$(GLSRC)gslibctx.h
$(GLSRC)gdevvec.h:$(GLSRC)gscdefs.h
-$(GLSRC)gdevvec.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gdevvec.h:$(GLSRC)stdio_.h
-$(GLSRC)gdevvec.h:$(GLSRC)gscompt.h
+$(GLSRC)gdevvec.h:$(GLSRC)gslibctx.h
$(GLSRC)gdevvec.h:$(GLSRC)gxcindex.h
-$(GLSRC)gdevvec.h:$(GLSRC)gsgstate.h
+$(GLSRC)gdevvec.h:$(GLSRC)stdio_.h
+$(GLSRC)gdevvec.h:$(GLSRC)gsccode.h
$(GLSRC)gdevvec.h:$(GLSRC)stdint_.h
$(GLSRC)gdevvec.h:$(GLSRC)gssprintf.h
-$(GLSRC)gdevvec.h:$(GLSRC)gsccode.h
-$(GLSRC)gdevvec.h:$(GLSRC)std.h
$(GLSRC)gdevvec.h:$(GLSRC)gstypes.h
+$(GLSRC)gdevvec.h:$(GLSRC)std.h
$(GLSRC)gdevvec.h:$(GLSRC)stdpre.h
$(GLSRC)gdevvec.h:$(GLGEN)arch.h
+$(GLSRC)gdevvec.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gshtx.h:$(GLSRC)gsht1.h
$(GLSRC)gshtx.h:$(GLSRC)gsht.h
+$(GLSRC)gshtx.h:$(GLSRC)gxtmap.h
$(GLSRC)gshtx.h:$(GLSRC)gscspace.h
+$(GLSRC)gshtx.h:$(GLSRC)gsgstate.h
$(GLSRC)gshtx.h:$(GLSRC)gsiparam.h
-$(GLSRC)gshtx.h:$(GLSRC)gxbitmap.h
$(GLSRC)gshtx.h:$(GLSRC)gsmatrix.h
$(GLSRC)gshtx.h:$(GLSRC)gsrefct.h
-$(GLSRC)gshtx.h:$(GLSRC)gsccolor.h
-$(GLSRC)gshtx.h:$(GLSRC)scommon.h
$(GLSRC)gshtx.h:$(GLSRC)memento.h
+$(GLSRC)gshtx.h:$(GLSRC)gxbitmap.h
+$(GLSRC)gshtx.h:$(GLSRC)scommon.h
$(GLSRC)gshtx.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gshtx.h:$(GLSRC)gsccolor.h
$(GLSRC)gshtx.h:$(GLSRC)gsstype.h
-$(GLSRC)gshtx.h:$(GLSRC)gxtmap.h
$(GLSRC)gshtx.h:$(GLSRC)gsmemory.h
$(GLSRC)gshtx.h:$(GLSRC)gslibctx.h
-$(GLSRC)gshtx.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gshtx.h:$(GLSRC)stdio_.h
-$(GLSRC)gshtx.h:$(GLSRC)gsgstate.h
$(GLSRC)gshtx.h:$(GLSRC)stdint_.h
$(GLSRC)gshtx.h:$(GLSRC)gssprintf.h
-$(GLSRC)gshtx.h:$(GLSRC)std.h
$(GLSRC)gshtx.h:$(GLSRC)gstypes.h
+$(GLSRC)gshtx.h:$(GLSRC)std.h
$(GLSRC)gshtx.h:$(GLSRC)stdpre.h
$(GLSRC)gshtx.h:$(GLGEN)arch.h
+$(GLSRC)gshtx.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxttf.h:$(GLSRC)stdpre.h
$(GLSRC)ttfsfnt.h:$(GLSRC)tttypes.h
$(GLSRC)ttfsfnt.h:$(GLSRC)ttconfig.h
@@ -11383,40 +11396,40 @@ $(GLSRC)ttfinp.h:$(GLSRC)ttfoutl.h
$(GLSRC)ttfinp.h:$(GLSRC)malloc_.h
$(GLSRC)ttfinp.h:$(GLSRC)bobbin.h
$(GLSRC)ttfinp.h:$(GLSRC)gxfcache.h
-$(GLSRC)ttfinp.h:$(GLSRC)gsuid.h
$(GLSRC)ttfinp.h:$(GLSRC)gsfont.h
-$(GLSRC)ttfinp.h:$(GLSRC)gxftype.h
$(GLSRC)ttfinp.h:$(GLSRC)gxbcache.h
+$(GLSRC)ttfinp.h:$(GLSRC)gxftype.h
+$(GLSRC)ttfinp.h:$(GLSRC)gsgstate.h
$(GLSRC)ttfinp.h:$(GLSRC)gsxfont.h
-$(GLSRC)ttfinp.h:$(GLSRC)gxbitmap.h
-$(GLSRC)ttfinp.h:$(GLSRC)gsmatrix.h
$(GLSRC)ttfinp.h:$(GLSRC)gxfixed.h
-$(GLSRC)ttfinp.h:$(GLSRC)scommon.h
+$(GLSRC)ttfinp.h:$(GLSRC)gsmatrix.h
$(GLSRC)ttfinp.h:$(GLSRC)memento.h
+$(GLSRC)ttfinp.h:$(GLSRC)gsuid.h
+$(GLSRC)ttfinp.h:$(GLSRC)gxbitmap.h
+$(GLSRC)ttfinp.h:$(GLSRC)scommon.h
$(GLSRC)ttfinp.h:$(GLSRC)gsbitmap.h
$(GLSRC)ttfinp.h:$(GLSRC)gsstype.h
$(GLSRC)ttfinp.h:$(GLSRC)gsmemory.h
$(GLSRC)ttfinp.h:$(GLSRC)gslibctx.h
-$(GLSRC)ttfinp.h:$(GLSRC)gs_dll_call.h
$(GLSRC)ttfinp.h:$(GLSRC)stdio_.h
-$(GLSRC)ttfinp.h:$(GLSRC)gsgstate.h
+$(GLSRC)ttfinp.h:$(GLSRC)gsccode.h
$(GLSRC)ttfinp.h:$(GLSRC)stdint_.h
$(GLSRC)ttfinp.h:$(GLSRC)gssprintf.h
-$(GLSRC)ttfinp.h:$(GLSRC)gsccode.h
-$(GLSRC)ttfinp.h:$(GLSRC)std.h
$(GLSRC)ttfinp.h:$(GLSRC)gstypes.h
+$(GLSRC)ttfinp.h:$(GLSRC)std.h
$(GLSRC)ttfinp.h:$(GLSRC)stdpre.h
$(GLSRC)ttfinp.h:$(GLGEN)arch.h
+$(GLSRC)ttfinp.h:$(GLSRC)gs_dll_call.h
$(GLSRC)ttfmemd.h:$(GLSRC)gsstype.h
$(GLSRC)ttfmemd.h:$(GLSRC)gsmemory.h
$(GLSRC)ttfmemd.h:$(GLSRC)gslibctx.h
-$(GLSRC)ttfmemd.h:$(GLSRC)gs_dll_call.h
$(GLSRC)ttfmemd.h:$(GLSRC)stdio_.h
$(GLSRC)ttfmemd.h:$(GLSRC)gssprintf.h
-$(GLSRC)ttfmemd.h:$(GLSRC)std.h
$(GLSRC)ttfmemd.h:$(GLSRC)gstypes.h
+$(GLSRC)ttfmemd.h:$(GLSRC)std.h
$(GLSRC)ttfmemd.h:$(GLSRC)stdpre.h
$(GLSRC)ttfmemd.h:$(GLGEN)arch.h
+$(GLSRC)ttfmemd.h:$(GLSRC)gs_dll_call.h
$(GLSRC)tttype.h:$(GLSRC)std.h
$(GLSRC)tttype.h:$(GLSRC)stdpre.h
$(GLSRC)tttype.h:$(GLGEN)arch.h
@@ -11436,6 +11449,7 @@ $(GLSRC)ttmisc.h:$(GLSRC)tttype.h
$(GLSRC)ttmisc.h:$(GLSRC)gx.h
$(GLSRC)ttmisc.h:$(GLSRC)ttconf.h
$(GLSRC)ttmisc.h:$(GLSRC)gdebug.h
+$(GLSRC)ttmisc.h:$(GLSRC)gsgstate.h
$(GLSRC)ttmisc.h:$(GLSRC)gsio.h
$(GLSRC)ttmisc.h:$(GLSRC)gsstrl.h
$(GLSRC)ttmisc.h:$(GLSRC)gdbflags.h
@@ -11443,14 +11457,13 @@ $(GLSRC)ttmisc.h:$(GLSRC)gserrors.h
$(GLSRC)ttmisc.h:$(GLSRC)vmsmath.h
$(GLSRC)ttmisc.h:$(GLSRC)gsmemory.h
$(GLSRC)ttmisc.h:$(GLSRC)gslibctx.h
-$(GLSRC)ttmisc.h:$(GLSRC)gs_dll_call.h
$(GLSRC)ttmisc.h:$(GLSRC)stdio_.h
-$(GLSRC)ttmisc.h:$(GLSRC)gsgstate.h
$(GLSRC)ttmisc.h:$(GLSRC)gssprintf.h
-$(GLSRC)ttmisc.h:$(GLSRC)std.h
$(GLSRC)ttmisc.h:$(GLSRC)gstypes.h
+$(GLSRC)ttmisc.h:$(GLSRC)std.h
$(GLSRC)ttmisc.h:$(GLSRC)stdpre.h
$(GLSRC)ttmisc.h:$(GLGEN)arch.h
+$(GLSRC)ttmisc.h:$(GLSRC)gs_dll_call.h
$(GLSRC)tttables.h:$(GLSRC)tttypes.h
$(GLSRC)tttables.h:$(GLSRC)ttconfig.h
$(GLSRC)tttables.h:$(GLSRC)tttype.h
@@ -11469,30 +11482,30 @@ $(GLSRC)ttobjs.h:$(GLSRC)ttconfig.h
$(GLSRC)ttobjs.h:$(GLSRC)tttype.h
$(GLSRC)ttobjs.h:$(GLSRC)ttconf.h
$(GLSRC)ttobjs.h:$(GLSRC)gxfcache.h
-$(GLSRC)ttobjs.h:$(GLSRC)gsuid.h
$(GLSRC)ttobjs.h:$(GLSRC)gsfont.h
-$(GLSRC)ttobjs.h:$(GLSRC)gxftype.h
$(GLSRC)ttobjs.h:$(GLSRC)gxbcache.h
+$(GLSRC)ttobjs.h:$(GLSRC)gxftype.h
+$(GLSRC)ttobjs.h:$(GLSRC)gsgstate.h
$(GLSRC)ttobjs.h:$(GLSRC)gsxfont.h
-$(GLSRC)ttobjs.h:$(GLSRC)gxbitmap.h
-$(GLSRC)ttobjs.h:$(GLSRC)gsmatrix.h
$(GLSRC)ttobjs.h:$(GLSRC)gxfixed.h
-$(GLSRC)ttobjs.h:$(GLSRC)scommon.h
+$(GLSRC)ttobjs.h:$(GLSRC)gsmatrix.h
$(GLSRC)ttobjs.h:$(GLSRC)memento.h
+$(GLSRC)ttobjs.h:$(GLSRC)gsuid.h
+$(GLSRC)ttobjs.h:$(GLSRC)gxbitmap.h
+$(GLSRC)ttobjs.h:$(GLSRC)scommon.h
$(GLSRC)ttobjs.h:$(GLSRC)gsbitmap.h
$(GLSRC)ttobjs.h:$(GLSRC)gsstype.h
$(GLSRC)ttobjs.h:$(GLSRC)gsmemory.h
$(GLSRC)ttobjs.h:$(GLSRC)gslibctx.h
-$(GLSRC)ttobjs.h:$(GLSRC)gs_dll_call.h
$(GLSRC)ttobjs.h:$(GLSRC)stdio_.h
-$(GLSRC)ttobjs.h:$(GLSRC)gsgstate.h
+$(GLSRC)ttobjs.h:$(GLSRC)gsccode.h
$(GLSRC)ttobjs.h:$(GLSRC)stdint_.h
$(GLSRC)ttobjs.h:$(GLSRC)gssprintf.h
-$(GLSRC)ttobjs.h:$(GLSRC)gsccode.h
-$(GLSRC)ttobjs.h:$(GLSRC)std.h
$(GLSRC)ttobjs.h:$(GLSRC)gstypes.h
+$(GLSRC)ttobjs.h:$(GLSRC)std.h
$(GLSRC)ttobjs.h:$(GLSRC)stdpre.h
$(GLSRC)ttobjs.h:$(GLGEN)arch.h
+$(GLSRC)ttobjs.h:$(GLSRC)gs_dll_call.h
$(GLSRC)ttcalc.h:$(GLSRC)ttcommon.h
$(GLSRC)ttcalc.h:$(GLSRC)tttypes.h
$(GLSRC)ttcalc.h:$(GLSRC)ttconfig.h
@@ -11513,30 +11526,30 @@ $(GLSRC)ttinterp.h:$(GLSRC)ttconfig.h
$(GLSRC)ttinterp.h:$(GLSRC)tttype.h
$(GLSRC)ttinterp.h:$(GLSRC)ttconf.h
$(GLSRC)ttinterp.h:$(GLSRC)gxfcache.h
-$(GLSRC)ttinterp.h:$(GLSRC)gsuid.h
$(GLSRC)ttinterp.h:$(GLSRC)gsfont.h
-$(GLSRC)ttinterp.h:$(GLSRC)gxftype.h
$(GLSRC)ttinterp.h:$(GLSRC)gxbcache.h
+$(GLSRC)ttinterp.h:$(GLSRC)gxftype.h
+$(GLSRC)ttinterp.h:$(GLSRC)gsgstate.h
$(GLSRC)ttinterp.h:$(GLSRC)gsxfont.h
-$(GLSRC)ttinterp.h:$(GLSRC)gxbitmap.h
-$(GLSRC)ttinterp.h:$(GLSRC)gsmatrix.h
$(GLSRC)ttinterp.h:$(GLSRC)gxfixed.h
-$(GLSRC)ttinterp.h:$(GLSRC)scommon.h
+$(GLSRC)ttinterp.h:$(GLSRC)gsmatrix.h
$(GLSRC)ttinterp.h:$(GLSRC)memento.h
+$(GLSRC)ttinterp.h:$(GLSRC)gsuid.h
+$(GLSRC)ttinterp.h:$(GLSRC)gxbitmap.h
+$(GLSRC)ttinterp.h:$(GLSRC)scommon.h
$(GLSRC)ttinterp.h:$(GLSRC)gsbitmap.h
$(GLSRC)ttinterp.h:$(GLSRC)gsstype.h
$(GLSRC)ttinterp.h:$(GLSRC)gsmemory.h
$(GLSRC)ttinterp.h:$(GLSRC)gslibctx.h
-$(GLSRC)ttinterp.h:$(GLSRC)gs_dll_call.h
$(GLSRC)ttinterp.h:$(GLSRC)stdio_.h
-$(GLSRC)ttinterp.h:$(GLSRC)gsgstate.h
+$(GLSRC)ttinterp.h:$(GLSRC)gsccode.h
$(GLSRC)ttinterp.h:$(GLSRC)stdint_.h
$(GLSRC)ttinterp.h:$(GLSRC)gssprintf.h
-$(GLSRC)ttinterp.h:$(GLSRC)gsccode.h
-$(GLSRC)ttinterp.h:$(GLSRC)std.h
$(GLSRC)ttinterp.h:$(GLSRC)gstypes.h
+$(GLSRC)ttinterp.h:$(GLSRC)std.h
$(GLSRC)ttinterp.h:$(GLSRC)stdpre.h
$(GLSRC)ttinterp.h:$(GLGEN)arch.h
+$(GLSRC)ttinterp.h:$(GLSRC)gs_dll_call.h
$(GLSRC)ttload.h:$(GLSRC)ttobjs.h
$(GLSRC)ttload.h:$(GLSRC)ttfoutl.h
$(GLSRC)ttload.h:$(GLSRC)malloc_.h
@@ -11549,308 +11562,310 @@ $(GLSRC)ttload.h:$(GLSRC)ttconfig.h
$(GLSRC)ttload.h:$(GLSRC)tttype.h
$(GLSRC)ttload.h:$(GLSRC)ttconf.h
$(GLSRC)ttload.h:$(GLSRC)gxfcache.h
-$(GLSRC)ttload.h:$(GLSRC)gsuid.h
$(GLSRC)ttload.h:$(GLSRC)gsfont.h
-$(GLSRC)ttload.h:$(GLSRC)gxftype.h
$(GLSRC)ttload.h:$(GLSRC)gxbcache.h
+$(GLSRC)ttload.h:$(GLSRC)gxftype.h
+$(GLSRC)ttload.h:$(GLSRC)gsgstate.h
$(GLSRC)ttload.h:$(GLSRC)gsxfont.h
-$(GLSRC)ttload.h:$(GLSRC)gxbitmap.h
-$(GLSRC)ttload.h:$(GLSRC)gsmatrix.h
$(GLSRC)ttload.h:$(GLSRC)gxfixed.h
-$(GLSRC)ttload.h:$(GLSRC)scommon.h
+$(GLSRC)ttload.h:$(GLSRC)gsmatrix.h
$(GLSRC)ttload.h:$(GLSRC)memento.h
+$(GLSRC)ttload.h:$(GLSRC)gsuid.h
+$(GLSRC)ttload.h:$(GLSRC)gxbitmap.h
+$(GLSRC)ttload.h:$(GLSRC)scommon.h
$(GLSRC)ttload.h:$(GLSRC)gsbitmap.h
$(GLSRC)ttload.h:$(GLSRC)gsstype.h
$(GLSRC)ttload.h:$(GLSRC)gsmemory.h
$(GLSRC)ttload.h:$(GLSRC)gslibctx.h
-$(GLSRC)ttload.h:$(GLSRC)gs_dll_call.h
$(GLSRC)ttload.h:$(GLSRC)stdio_.h
-$(GLSRC)ttload.h:$(GLSRC)gsgstate.h
+$(GLSRC)ttload.h:$(GLSRC)gsccode.h
$(GLSRC)ttload.h:$(GLSRC)stdint_.h
$(GLSRC)ttload.h:$(GLSRC)gssprintf.h
-$(GLSRC)ttload.h:$(GLSRC)gsccode.h
-$(GLSRC)ttload.h:$(GLSRC)std.h
$(GLSRC)ttload.h:$(GLSRC)gstypes.h
+$(GLSRC)ttload.h:$(GLSRC)std.h
$(GLSRC)ttload.h:$(GLSRC)stdpre.h
$(GLSRC)ttload.h:$(GLGEN)arch.h
+$(GLSRC)ttload.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxhintn.h:$(GLSRC)gxfont1.h
$(GLSRC)gxhintn.h:$(GLSRC)gstype1.h
$(GLSRC)gxhintn.h:$(GLSRC)gxfont42.h
$(GLSRC)gxhintn.h:$(GLSRC)gxfont.h
$(GLSRC)gxhintn.h:$(GLSRC)gspath.h
-$(GLSRC)gxhintn.h:$(GLSRC)gxmatrix.h
$(GLSRC)gxhintn.h:$(GLSRC)gsgdata.h
-$(GLSRC)gxhintn.h:$(GLSRC)gsgcache.h
+$(GLSRC)gxhintn.h:$(GLSRC)gxmatrix.h
$(GLSRC)gxhintn.h:$(GLSRC)gxfapi.h
-$(GLSRC)gxhintn.h:$(GLSRC)gsnotify.h
$(GLSRC)gxhintn.h:$(GLSRC)gsfcmap.h
$(GLSRC)gxhintn.h:$(GLSRC)gstext.h
$(GLSRC)gxhintn.h:$(GLSRC)gxfcache.h
-$(GLSRC)gxhintn.h:$(GLSRC)gsuid.h
-$(GLSRC)gxhintn.h:$(GLSRC)gsdcolor.h
$(GLSRC)gxhintn.h:$(GLSRC)gsfont.h
+$(GLSRC)gxhintn.h:$(GLSRC)gsdcolor.h
+$(GLSRC)gxhintn.h:$(GLSRC)gxbcache.h
+$(GLSRC)gxhintn.h:$(GLSRC)gxpath.h
$(GLSRC)gxhintn.h:$(GLSRC)gxftype.h
$(GLSRC)gxhintn.h:$(GLSRC)gscms.h
-$(GLSRC)gxhintn.h:$(GLSRC)gscspace.h
-$(GLSRC)gxhintn.h:$(GLSRC)gxpath.h
-$(GLSRC)gxhintn.h:$(GLSRC)gxbcache.h
-$(GLSRC)gxhintn.h:$(GLSRC)gsdevice.h
-$(GLSRC)gxhintn.h:$(GLSRC)gxarith.h
-$(GLSRC)gxhintn.h:$(GLSRC)gspenum.h
-$(GLSRC)gxhintn.h:$(GLSRC)gxhttile.h
$(GLSRC)gxhintn.h:$(GLSRC)gsrect.h
$(GLSRC)gxhintn.h:$(GLSRC)gslparam.h
+$(GLSRC)gxhintn.h:$(GLSRC)gsdevice.h
+$(GLSRC)gxhintn.h:$(GLSRC)gscpm.h
+$(GLSRC)gxhintn.h:$(GLSRC)gsgcache.h
+$(GLSRC)gxhintn.h:$(GLSRC)gscspace.h
+$(GLSRC)gxhintn.h:$(GLSRC)gsgstate.h
+$(GLSRC)gxhintn.h:$(GLSRC)gsnotify.h
$(GLSRC)gxhintn.h:$(GLSRC)gsxfont.h
$(GLSRC)gxhintn.h:$(GLSRC)gsiparam.h
-$(GLSRC)gxhintn.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gxhintn.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gxhintn.h:$(GLSRC)gscpm.h
$(GLSRC)gxhintn.h:$(GLSRC)gxfixed.h
-$(GLSRC)gxhintn.h:$(GLSRC)gsrefct.h
+$(GLSRC)gxhintn.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gxhintn.h:$(GLSRC)gspenum.h
+$(GLSRC)gxhintn.h:$(GLSRC)gxhttile.h
$(GLSRC)gxhintn.h:$(GLSRC)gsparam.h
-$(GLSRC)gxhintn.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxhintn.h:$(GLSRC)gsrefct.h
+$(GLSRC)gxhintn.h:$(GLSRC)memento.h
+$(GLSRC)gxhintn.h:$(GLSRC)gsuid.h
$(GLSRC)gxhintn.h:$(GLSRC)gxsync.h
+$(GLSRC)gxhintn.h:$(GLSRC)gxbitmap.h
$(GLSRC)gxhintn.h:$(GLSRC)scommon.h
-$(GLSRC)gxhintn.h:$(GLSRC)memento.h
$(GLSRC)gxhintn.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gxhintn.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxhintn.h:$(GLSRC)gxarith.h
+$(GLSRC)gxhintn.h:$(GLSRC)gpsync.h
$(GLSRC)gxhintn.h:$(GLSRC)gsstype.h
$(GLSRC)gxhintn.h:$(GLSRC)gsmemory.h
-$(GLSRC)gxhintn.h:$(GLSRC)gpsync.h
$(GLSRC)gxhintn.h:$(GLSRC)gslibctx.h
-$(GLSRC)gxhintn.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gxhintn.h:$(GLSRC)stdio_.h
$(GLSRC)gxhintn.h:$(GLSRC)gxcindex.h
-$(GLSRC)gxhintn.h:$(GLSRC)gsgstate.h
+$(GLSRC)gxhintn.h:$(GLSRC)stdio_.h
+$(GLSRC)gxhintn.h:$(GLSRC)gsccode.h
$(GLSRC)gxhintn.h:$(GLSRC)stdint_.h
$(GLSRC)gxhintn.h:$(GLSRC)gssprintf.h
-$(GLSRC)gxhintn.h:$(GLSRC)gsccode.h
-$(GLSRC)gxhintn.h:$(GLSRC)std.h
$(GLSRC)gxhintn.h:$(GLSRC)gstypes.h
+$(GLSRC)gxhintn.h:$(GLSRC)std.h
$(GLSRC)gxhintn.h:$(GLSRC)stdpre.h
$(GLSRC)gxhintn.h:$(GLGEN)arch.h
+$(GLSRC)gxhintn.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxcid.h:$(GLSRC)gsstype.h
$(GLSRC)gxcid.h:$(GLSRC)gsmemory.h
$(GLSRC)gxcid.h:$(GLSRC)gslibctx.h
-$(GLSRC)gxcid.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxcid.h:$(GLSRC)stdio_.h
$(GLSRC)gxcid.h:$(GLSRC)gssprintf.h
-$(GLSRC)gxcid.h:$(GLSRC)std.h
$(GLSRC)gxcid.h:$(GLSRC)gstypes.h
+$(GLSRC)gxcid.h:$(GLSRC)std.h
$(GLSRC)gxcid.h:$(GLSRC)stdpre.h
$(GLSRC)gxcid.h:$(GLGEN)arch.h
+$(GLSRC)gxcid.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxfcid.h:$(GLSRC)gstype1.h
$(GLSRC)gxfcid.h:$(GLSRC)gxfont42.h
$(GLSRC)gxfcid.h:$(GLSRC)gxfont.h
$(GLSRC)gxfcid.h:$(GLSRC)gspath.h
-$(GLSRC)gxfcid.h:$(GLSRC)gxcid.h
-$(GLSRC)gxfcid.h:$(GLSRC)gxmatrix.h
$(GLSRC)gxfcid.h:$(GLSRC)gsgdata.h
-$(GLSRC)gxfcid.h:$(GLSRC)gsgcache.h
+$(GLSRC)gxfcid.h:$(GLSRC)gxmatrix.h
$(GLSRC)gxfcid.h:$(GLSRC)gxfapi.h
-$(GLSRC)gxfcid.h:$(GLSRC)gsnotify.h
$(GLSRC)gxfcid.h:$(GLSRC)gsfcmap.h
$(GLSRC)gxfcid.h:$(GLSRC)gstext.h
$(GLSRC)gxfcid.h:$(GLSRC)gxfcache.h
-$(GLSRC)gxfcid.h:$(GLSRC)gsuid.h
-$(GLSRC)gxfcid.h:$(GLSRC)gsdcolor.h
$(GLSRC)gxfcid.h:$(GLSRC)gsfont.h
+$(GLSRC)gxfcid.h:$(GLSRC)gsdcolor.h
+$(GLSRC)gxfcid.h:$(GLSRC)gxbcache.h
+$(GLSRC)gxfcid.h:$(GLSRC)gxpath.h
$(GLSRC)gxfcid.h:$(GLSRC)gxftype.h
$(GLSRC)gxfcid.h:$(GLSRC)gscms.h
-$(GLSRC)gxfcid.h:$(GLSRC)gscspace.h
-$(GLSRC)gxfcid.h:$(GLSRC)gxpath.h
-$(GLSRC)gxfcid.h:$(GLSRC)gxbcache.h
-$(GLSRC)gxfcid.h:$(GLSRC)gsdevice.h
-$(GLSRC)gxfcid.h:$(GLSRC)gxarith.h
-$(GLSRC)gxfcid.h:$(GLSRC)gspenum.h
-$(GLSRC)gxfcid.h:$(GLSRC)gxhttile.h
$(GLSRC)gxfcid.h:$(GLSRC)gsrect.h
$(GLSRC)gxfcid.h:$(GLSRC)gslparam.h
+$(GLSRC)gxfcid.h:$(GLSRC)gsdevice.h
+$(GLSRC)gxfcid.h:$(GLSRC)gscpm.h
+$(GLSRC)gxfcid.h:$(GLSRC)gsgcache.h
+$(GLSRC)gxfcid.h:$(GLSRC)gscspace.h
+$(GLSRC)gxfcid.h:$(GLSRC)gsgstate.h
+$(GLSRC)gxfcid.h:$(GLSRC)gsnotify.h
$(GLSRC)gxfcid.h:$(GLSRC)gsxfont.h
+$(GLSRC)gxfcid.h:$(GLSRC)gxcid.h
$(GLSRC)gxfcid.h:$(GLSRC)gsiparam.h
-$(GLSRC)gxfcid.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gxfcid.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gxfcid.h:$(GLSRC)gscpm.h
$(GLSRC)gxfcid.h:$(GLSRC)gxfixed.h
-$(GLSRC)gxfcid.h:$(GLSRC)gsrefct.h
+$(GLSRC)gxfcid.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gxfcid.h:$(GLSRC)gspenum.h
+$(GLSRC)gxfcid.h:$(GLSRC)gxhttile.h
$(GLSRC)gxfcid.h:$(GLSRC)gsparam.h
-$(GLSRC)gxfcid.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxfcid.h:$(GLSRC)gsrefct.h
+$(GLSRC)gxfcid.h:$(GLSRC)memento.h
+$(GLSRC)gxfcid.h:$(GLSRC)gsuid.h
$(GLSRC)gxfcid.h:$(GLSRC)gxsync.h
+$(GLSRC)gxfcid.h:$(GLSRC)gxbitmap.h
$(GLSRC)gxfcid.h:$(GLSRC)scommon.h
-$(GLSRC)gxfcid.h:$(GLSRC)memento.h
$(GLSRC)gxfcid.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gxfcid.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxfcid.h:$(GLSRC)gxarith.h
+$(GLSRC)gxfcid.h:$(GLSRC)gpsync.h
$(GLSRC)gxfcid.h:$(GLSRC)gsstype.h
$(GLSRC)gxfcid.h:$(GLSRC)gsmemory.h
-$(GLSRC)gxfcid.h:$(GLSRC)gpsync.h
$(GLSRC)gxfcid.h:$(GLSRC)gslibctx.h
-$(GLSRC)gxfcid.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gxfcid.h:$(GLSRC)stdio_.h
$(GLSRC)gxfcid.h:$(GLSRC)gxcindex.h
-$(GLSRC)gxfcid.h:$(GLSRC)gsgstate.h
+$(GLSRC)gxfcid.h:$(GLSRC)stdio_.h
+$(GLSRC)gxfcid.h:$(GLSRC)gsccode.h
$(GLSRC)gxfcid.h:$(GLSRC)stdint_.h
$(GLSRC)gxfcid.h:$(GLSRC)gssprintf.h
-$(GLSRC)gxfcid.h:$(GLSRC)gsccode.h
-$(GLSRC)gxfcid.h:$(GLSRC)std.h
$(GLSRC)gxfcid.h:$(GLSRC)gstypes.h
+$(GLSRC)gxfcid.h:$(GLSRC)std.h
$(GLSRC)gxfcid.h:$(GLSRC)stdpre.h
$(GLSRC)gxfcid.h:$(GLGEN)arch.h
-$(GLSRC)gxfcmap.h:$(GLSRC)gxcid.h
+$(GLSRC)gxfcid.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxfcmap.h:$(GLSRC)gsfcmap.h
+$(GLSRC)gxfcmap.h:$(GLSRC)gxcid.h
$(GLSRC)gxfcmap.h:$(GLSRC)gsuid.h
$(GLSRC)gxfcmap.h:$(GLSRC)gsstype.h
$(GLSRC)gxfcmap.h:$(GLSRC)gsmemory.h
$(GLSRC)gxfcmap.h:$(GLSRC)gslibctx.h
-$(GLSRC)gxfcmap.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxfcmap.h:$(GLSRC)stdio_.h
-$(GLSRC)gxfcmap.h:$(GLSRC)gssprintf.h
$(GLSRC)gxfcmap.h:$(GLSRC)gsccode.h
-$(GLSRC)gxfcmap.h:$(GLSRC)std.h
+$(GLSRC)gxfcmap.h:$(GLSRC)stdint_.h
+$(GLSRC)gxfcmap.h:$(GLSRC)gssprintf.h
$(GLSRC)gxfcmap.h:$(GLSRC)gstypes.h
+$(GLSRC)gxfcmap.h:$(GLSRC)std.h
$(GLSRC)gxfcmap.h:$(GLSRC)stdpre.h
$(GLSRC)gxfcmap.h:$(GLGEN)arch.h
+$(GLSRC)gxfcmap.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxfcmap1.h:$(GLSRC)gxfcmap.h
-$(GLSRC)gxfcmap1.h:$(GLSRC)gxcid.h
$(GLSRC)gxfcmap1.h:$(GLSRC)gsfcmap.h
+$(GLSRC)gxfcmap1.h:$(GLSRC)gxcid.h
$(GLSRC)gxfcmap1.h:$(GLSRC)gsuid.h
$(GLSRC)gxfcmap1.h:$(GLSRC)gsstype.h
$(GLSRC)gxfcmap1.h:$(GLSRC)gsmemory.h
$(GLSRC)gxfcmap1.h:$(GLSRC)gslibctx.h
-$(GLSRC)gxfcmap1.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxfcmap1.h:$(GLSRC)stdio_.h
-$(GLSRC)gxfcmap1.h:$(GLSRC)gssprintf.h
$(GLSRC)gxfcmap1.h:$(GLSRC)gsccode.h
-$(GLSRC)gxfcmap1.h:$(GLSRC)std.h
+$(GLSRC)gxfcmap1.h:$(GLSRC)stdint_.h
+$(GLSRC)gxfcmap1.h:$(GLSRC)gssprintf.h
$(GLSRC)gxfcmap1.h:$(GLSRC)gstypes.h
+$(GLSRC)gxfcmap1.h:$(GLSRC)std.h
$(GLSRC)gxfcmap1.h:$(GLSRC)stdpre.h
$(GLSRC)gxfcmap1.h:$(GLGEN)arch.h
+$(GLSRC)gxfcmap1.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxfont0c.h:$(GLSRC)gxfont0.h
$(GLSRC)gxfont0c.h:$(GLSRC)gxfcid.h
$(GLSRC)gxfont0c.h:$(GLSRC)gstype1.h
$(GLSRC)gxfont0c.h:$(GLSRC)gxfont42.h
$(GLSRC)gxfont0c.h:$(GLSRC)gxfont.h
$(GLSRC)gxfont0c.h:$(GLSRC)gspath.h
-$(GLSRC)gxfont0c.h:$(GLSRC)gxcid.h
-$(GLSRC)gxfont0c.h:$(GLSRC)gxmatrix.h
$(GLSRC)gxfont0c.h:$(GLSRC)gsgdata.h
-$(GLSRC)gxfont0c.h:$(GLSRC)gsgcache.h
+$(GLSRC)gxfont0c.h:$(GLSRC)gxmatrix.h
$(GLSRC)gxfont0c.h:$(GLSRC)gxfapi.h
-$(GLSRC)gxfont0c.h:$(GLSRC)gsnotify.h
$(GLSRC)gxfont0c.h:$(GLSRC)gsfcmap.h
$(GLSRC)gxfont0c.h:$(GLSRC)gstext.h
$(GLSRC)gxfont0c.h:$(GLSRC)gxfcache.h
-$(GLSRC)gxfont0c.h:$(GLSRC)gsuid.h
-$(GLSRC)gxfont0c.h:$(GLSRC)gsdcolor.h
$(GLSRC)gxfont0c.h:$(GLSRC)gsfont.h
+$(GLSRC)gxfont0c.h:$(GLSRC)gsdcolor.h
+$(GLSRC)gxfont0c.h:$(GLSRC)gxbcache.h
+$(GLSRC)gxfont0c.h:$(GLSRC)gxpath.h
$(GLSRC)gxfont0c.h:$(GLSRC)gxftype.h
$(GLSRC)gxfont0c.h:$(GLSRC)gscms.h
-$(GLSRC)gxfont0c.h:$(GLSRC)gscspace.h
-$(GLSRC)gxfont0c.h:$(GLSRC)gxpath.h
-$(GLSRC)gxfont0c.h:$(GLSRC)gxbcache.h
-$(GLSRC)gxfont0c.h:$(GLSRC)gsdevice.h
-$(GLSRC)gxfont0c.h:$(GLSRC)gxarith.h
-$(GLSRC)gxfont0c.h:$(GLSRC)gspenum.h
-$(GLSRC)gxfont0c.h:$(GLSRC)gxhttile.h
$(GLSRC)gxfont0c.h:$(GLSRC)gsrect.h
$(GLSRC)gxfont0c.h:$(GLSRC)gslparam.h
+$(GLSRC)gxfont0c.h:$(GLSRC)gsdevice.h
+$(GLSRC)gxfont0c.h:$(GLSRC)gscpm.h
+$(GLSRC)gxfont0c.h:$(GLSRC)gsgcache.h
+$(GLSRC)gxfont0c.h:$(GLSRC)gscspace.h
+$(GLSRC)gxfont0c.h:$(GLSRC)gsgstate.h
+$(GLSRC)gxfont0c.h:$(GLSRC)gsnotify.h
$(GLSRC)gxfont0c.h:$(GLSRC)gsxfont.h
+$(GLSRC)gxfont0c.h:$(GLSRC)gxcid.h
$(GLSRC)gxfont0c.h:$(GLSRC)gsiparam.h
-$(GLSRC)gxfont0c.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gxfont0c.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gxfont0c.h:$(GLSRC)gscpm.h
$(GLSRC)gxfont0c.h:$(GLSRC)gxfixed.h
-$(GLSRC)gxfont0c.h:$(GLSRC)gsrefct.h
+$(GLSRC)gxfont0c.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gxfont0c.h:$(GLSRC)gspenum.h
+$(GLSRC)gxfont0c.h:$(GLSRC)gxhttile.h
$(GLSRC)gxfont0c.h:$(GLSRC)gsparam.h
-$(GLSRC)gxfont0c.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxfont0c.h:$(GLSRC)gsrefct.h
+$(GLSRC)gxfont0c.h:$(GLSRC)memento.h
+$(GLSRC)gxfont0c.h:$(GLSRC)gsuid.h
$(GLSRC)gxfont0c.h:$(GLSRC)gxsync.h
+$(GLSRC)gxfont0c.h:$(GLSRC)gxbitmap.h
$(GLSRC)gxfont0c.h:$(GLSRC)scommon.h
-$(GLSRC)gxfont0c.h:$(GLSRC)memento.h
$(GLSRC)gxfont0c.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gxfont0c.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxfont0c.h:$(GLSRC)gxarith.h
+$(GLSRC)gxfont0c.h:$(GLSRC)gpsync.h
$(GLSRC)gxfont0c.h:$(GLSRC)gsstype.h
$(GLSRC)gxfont0c.h:$(GLSRC)gsmemory.h
-$(GLSRC)gxfont0c.h:$(GLSRC)gpsync.h
$(GLSRC)gxfont0c.h:$(GLSRC)gslibctx.h
-$(GLSRC)gxfont0c.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gxfont0c.h:$(GLSRC)stdio_.h
$(GLSRC)gxfont0c.h:$(GLSRC)gxcindex.h
-$(GLSRC)gxfont0c.h:$(GLSRC)gsgstate.h
+$(GLSRC)gxfont0c.h:$(GLSRC)stdio_.h
+$(GLSRC)gxfont0c.h:$(GLSRC)gsccode.h
$(GLSRC)gxfont0c.h:$(GLSRC)stdint_.h
$(GLSRC)gxfont0c.h:$(GLSRC)gssprintf.h
-$(GLSRC)gxfont0c.h:$(GLSRC)gsccode.h
-$(GLSRC)gxfont0c.h:$(GLSRC)std.h
$(GLSRC)gxfont0c.h:$(GLSRC)gstypes.h
+$(GLSRC)gxfont0c.h:$(GLSRC)std.h
$(GLSRC)gxfont0c.h:$(GLSRC)stdpre.h
$(GLSRC)gxfont0c.h:$(GLGEN)arch.h
+$(GLSRC)gxfont0c.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gscrypt1.h:$(GLSRC)stdpre.h
$(GLSRC)gstype1.h:$(GLSRC)gspath.h
-$(GLSRC)gstype1.h:$(GLSRC)gxmatrix.h
$(GLSRC)gstype1.h:$(GLSRC)gsgdata.h
-$(GLSRC)gstype1.h:$(GLSRC)gsgcache.h
+$(GLSRC)gstype1.h:$(GLSRC)gxmatrix.h
$(GLSRC)gstype1.h:$(GLSRC)gsfont.h
-$(GLSRC)gstype1.h:$(GLSRC)gspenum.h
-$(GLSRC)gstype1.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gstype1.h:$(GLSRC)gsgcache.h
+$(GLSRC)gstype1.h:$(GLSRC)gsgstate.h
$(GLSRC)gstype1.h:$(GLSRC)gxfixed.h
+$(GLSRC)gstype1.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gstype1.h:$(GLSRC)gspenum.h
$(GLSRC)gstype1.h:$(GLSRC)scommon.h
$(GLSRC)gstype1.h:$(GLSRC)gsstype.h
$(GLSRC)gstype1.h:$(GLSRC)gsmemory.h
$(GLSRC)gstype1.h:$(GLSRC)gslibctx.h
-$(GLSRC)gstype1.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gstype1.h:$(GLSRC)stdio_.h
-$(GLSRC)gstype1.h:$(GLSRC)gsgstate.h
$(GLSRC)gstype1.h:$(GLSRC)stdint_.h
$(GLSRC)gstype1.h:$(GLSRC)gssprintf.h
-$(GLSRC)gstype1.h:$(GLSRC)std.h
$(GLSRC)gstype1.h:$(GLSRC)gstypes.h
+$(GLSRC)gstype1.h:$(GLSRC)std.h
$(GLSRC)gstype1.h:$(GLSRC)stdpre.h
$(GLSRC)gstype1.h:$(GLGEN)arch.h
+$(GLSRC)gstype1.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxfont1.h:$(GLSRC)gstype1.h
$(GLSRC)gxfont1.h:$(GLSRC)gxfont.h
$(GLSRC)gxfont1.h:$(GLSRC)gspath.h
-$(GLSRC)gxfont1.h:$(GLSRC)gxmatrix.h
$(GLSRC)gxfont1.h:$(GLSRC)gsgdata.h
-$(GLSRC)gxfont1.h:$(GLSRC)gsgcache.h
+$(GLSRC)gxfont1.h:$(GLSRC)gxmatrix.h
$(GLSRC)gxfont1.h:$(GLSRC)gxfapi.h
-$(GLSRC)gxfont1.h:$(GLSRC)gsnotify.h
$(GLSRC)gxfont1.h:$(GLSRC)gsfcmap.h
$(GLSRC)gxfont1.h:$(GLSRC)gstext.h
-$(GLSRC)gxfont1.h:$(GLSRC)gsuid.h
-$(GLSRC)gxfont1.h:$(GLSRC)gsdcolor.h
$(GLSRC)gxfont1.h:$(GLSRC)gsfont.h
+$(GLSRC)gxfont1.h:$(GLSRC)gsdcolor.h
+$(GLSRC)gxfont1.h:$(GLSRC)gxpath.h
$(GLSRC)gxfont1.h:$(GLSRC)gxftype.h
$(GLSRC)gxfont1.h:$(GLSRC)gscms.h
-$(GLSRC)gxfont1.h:$(GLSRC)gscspace.h
-$(GLSRC)gxfont1.h:$(GLSRC)gxpath.h
-$(GLSRC)gxfont1.h:$(GLSRC)gsdevice.h
-$(GLSRC)gxfont1.h:$(GLSRC)gxarith.h
-$(GLSRC)gxfont1.h:$(GLSRC)gspenum.h
-$(GLSRC)gxfont1.h:$(GLSRC)gxhttile.h
$(GLSRC)gxfont1.h:$(GLSRC)gsrect.h
$(GLSRC)gxfont1.h:$(GLSRC)gslparam.h
-$(GLSRC)gxfont1.h:$(GLSRC)gsiparam.h
-$(GLSRC)gxfont1.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gxfont1.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gxfont1.h:$(GLSRC)gsdevice.h
$(GLSRC)gxfont1.h:$(GLSRC)gscpm.h
+$(GLSRC)gxfont1.h:$(GLSRC)gsgcache.h
+$(GLSRC)gxfont1.h:$(GLSRC)gscspace.h
+$(GLSRC)gxfont1.h:$(GLSRC)gsgstate.h
+$(GLSRC)gxfont1.h:$(GLSRC)gsnotify.h
+$(GLSRC)gxfont1.h:$(GLSRC)gsiparam.h
$(GLSRC)gxfont1.h:$(GLSRC)gxfixed.h
-$(GLSRC)gxfont1.h:$(GLSRC)gsrefct.h
+$(GLSRC)gxfont1.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gxfont1.h:$(GLSRC)gspenum.h
+$(GLSRC)gxfont1.h:$(GLSRC)gxhttile.h
$(GLSRC)gxfont1.h:$(GLSRC)gsparam.h
-$(GLSRC)gxfont1.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxfont1.h:$(GLSRC)gsrefct.h
+$(GLSRC)gxfont1.h:$(GLSRC)memento.h
+$(GLSRC)gxfont1.h:$(GLSRC)gsuid.h
$(GLSRC)gxfont1.h:$(GLSRC)gxsync.h
+$(GLSRC)gxfont1.h:$(GLSRC)gxbitmap.h
$(GLSRC)gxfont1.h:$(GLSRC)scommon.h
-$(GLSRC)gxfont1.h:$(GLSRC)memento.h
$(GLSRC)gxfont1.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gxfont1.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxfont1.h:$(GLSRC)gxarith.h
+$(GLSRC)gxfont1.h:$(GLSRC)gpsync.h
$(GLSRC)gxfont1.h:$(GLSRC)gsstype.h
$(GLSRC)gxfont1.h:$(GLSRC)gsmemory.h
-$(GLSRC)gxfont1.h:$(GLSRC)gpsync.h
$(GLSRC)gxfont1.h:$(GLSRC)gslibctx.h
-$(GLSRC)gxfont1.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gxfont1.h:$(GLSRC)stdio_.h
$(GLSRC)gxfont1.h:$(GLSRC)gxcindex.h
-$(GLSRC)gxfont1.h:$(GLSRC)gsgstate.h
+$(GLSRC)gxfont1.h:$(GLSRC)stdio_.h
+$(GLSRC)gxfont1.h:$(GLSRC)gsccode.h
$(GLSRC)gxfont1.h:$(GLSRC)stdint_.h
$(GLSRC)gxfont1.h:$(GLSRC)gssprintf.h
-$(GLSRC)gxfont1.h:$(GLSRC)gsccode.h
-$(GLSRC)gxfont1.h:$(GLSRC)std.h
$(GLSRC)gxfont1.h:$(GLSRC)gstypes.h
+$(GLSRC)gxfont1.h:$(GLSRC)std.h
$(GLSRC)gxfont1.h:$(GLSRC)stdpre.h
$(GLSRC)gxfont1.h:$(GLGEN)arch.h
+$(GLSRC)gxfont1.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxtype1.h:$(GLSRC)gxhintn.h
$(GLSRC)gxtype1.h:$(GLSRC)gxfont1.h
$(GLSRC)gxtype1.h:$(GLSRC)gzpath.h
@@ -11859,558 +11874,558 @@ $(GLSRC)gxtype1.h:$(GLSRC)gxfont42.h
$(GLSRC)gxtype1.h:$(GLSRC)gscrypt1.h
$(GLSRC)gxtype1.h:$(GLSRC)gxfont.h
$(GLSRC)gxtype1.h:$(GLSRC)gspath.h
-$(GLSRC)gxtype1.h:$(GLSRC)gxmatrix.h
$(GLSRC)gxtype1.h:$(GLSRC)gsgdata.h
-$(GLSRC)gxtype1.h:$(GLSRC)gsgcache.h
+$(GLSRC)gxtype1.h:$(GLSRC)gxmatrix.h
$(GLSRC)gxtype1.h:$(GLSRC)gxfapi.h
-$(GLSRC)gxtype1.h:$(GLSRC)gsnotify.h
$(GLSRC)gxtype1.h:$(GLSRC)gsfcmap.h
$(GLSRC)gxtype1.h:$(GLSRC)gstext.h
$(GLSRC)gxtype1.h:$(GLSRC)gxfcache.h
-$(GLSRC)gxtype1.h:$(GLSRC)gsuid.h
-$(GLSRC)gxtype1.h:$(GLSRC)gsdcolor.h
$(GLSRC)gxtype1.h:$(GLSRC)gsfont.h
+$(GLSRC)gxtype1.h:$(GLSRC)gsdcolor.h
+$(GLSRC)gxtype1.h:$(GLSRC)gxbcache.h
+$(GLSRC)gxtype1.h:$(GLSRC)gxpath.h
$(GLSRC)gxtype1.h:$(GLSRC)gxftype.h
$(GLSRC)gxtype1.h:$(GLSRC)gscms.h
-$(GLSRC)gxtype1.h:$(GLSRC)gscspace.h
-$(GLSRC)gxtype1.h:$(GLSRC)gxpath.h
-$(GLSRC)gxtype1.h:$(GLSRC)gxbcache.h
-$(GLSRC)gxtype1.h:$(GLSRC)gsdevice.h
-$(GLSRC)gxtype1.h:$(GLSRC)gxarith.h
-$(GLSRC)gxtype1.h:$(GLSRC)gspenum.h
-$(GLSRC)gxtype1.h:$(GLSRC)gxhttile.h
$(GLSRC)gxtype1.h:$(GLSRC)gsrect.h
$(GLSRC)gxtype1.h:$(GLSRC)gslparam.h
+$(GLSRC)gxtype1.h:$(GLSRC)gsdevice.h
+$(GLSRC)gxtype1.h:$(GLSRC)gscpm.h
+$(GLSRC)gxtype1.h:$(GLSRC)gsgcache.h
+$(GLSRC)gxtype1.h:$(GLSRC)gscspace.h
+$(GLSRC)gxtype1.h:$(GLSRC)gsgstate.h
+$(GLSRC)gxtype1.h:$(GLSRC)gsnotify.h
$(GLSRC)gxtype1.h:$(GLSRC)gsxfont.h
$(GLSRC)gxtype1.h:$(GLSRC)gsiparam.h
-$(GLSRC)gxtype1.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gxtype1.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gxtype1.h:$(GLSRC)gscpm.h
$(GLSRC)gxtype1.h:$(GLSRC)gxfixed.h
-$(GLSRC)gxtype1.h:$(GLSRC)gsrefct.h
+$(GLSRC)gxtype1.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gxtype1.h:$(GLSRC)gspenum.h
+$(GLSRC)gxtype1.h:$(GLSRC)gxhttile.h
$(GLSRC)gxtype1.h:$(GLSRC)gsparam.h
-$(GLSRC)gxtype1.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxtype1.h:$(GLSRC)gsrefct.h
+$(GLSRC)gxtype1.h:$(GLSRC)memento.h
+$(GLSRC)gxtype1.h:$(GLSRC)gsuid.h
$(GLSRC)gxtype1.h:$(GLSRC)gxsync.h
+$(GLSRC)gxtype1.h:$(GLSRC)gxbitmap.h
$(GLSRC)gxtype1.h:$(GLSRC)scommon.h
-$(GLSRC)gxtype1.h:$(GLSRC)memento.h
$(GLSRC)gxtype1.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gxtype1.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxtype1.h:$(GLSRC)gxarith.h
+$(GLSRC)gxtype1.h:$(GLSRC)gpsync.h
$(GLSRC)gxtype1.h:$(GLSRC)gsstype.h
$(GLSRC)gxtype1.h:$(GLSRC)gsmemory.h
-$(GLSRC)gxtype1.h:$(GLSRC)gpsync.h
$(GLSRC)gxtype1.h:$(GLSRC)gslibctx.h
-$(GLSRC)gxtype1.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gxtype1.h:$(GLSRC)stdio_.h
$(GLSRC)gxtype1.h:$(GLSRC)gxcindex.h
-$(GLSRC)gxtype1.h:$(GLSRC)gsgstate.h
+$(GLSRC)gxtype1.h:$(GLSRC)stdio_.h
+$(GLSRC)gxtype1.h:$(GLSRC)gsccode.h
$(GLSRC)gxtype1.h:$(GLSRC)stdint_.h
$(GLSRC)gxtype1.h:$(GLSRC)gssprintf.h
-$(GLSRC)gxtype1.h:$(GLSRC)gsccode.h
-$(GLSRC)gxtype1.h:$(GLSRC)std.h
$(GLSRC)gxtype1.h:$(GLSRC)gstypes.h
+$(GLSRC)gxtype1.h:$(GLSRC)std.h
$(GLSRC)gxtype1.h:$(GLSRC)stdpre.h
$(GLSRC)gxtype1.h:$(GLGEN)arch.h
+$(GLSRC)gxtype1.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gsdsrc.h:$(GLSRC)gsstruct.h
$(GLSRC)gsdsrc.h:$(GLSRC)scommon.h
$(GLSRC)gsdsrc.h:$(GLSRC)gsstype.h
$(GLSRC)gsdsrc.h:$(GLSRC)gsmemory.h
$(GLSRC)gsdsrc.h:$(GLSRC)gslibctx.h
-$(GLSRC)gsdsrc.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gsdsrc.h:$(GLSRC)stdio_.h
$(GLSRC)gsdsrc.h:$(GLSRC)stdint_.h
$(GLSRC)gsdsrc.h:$(GLSRC)gssprintf.h
-$(GLSRC)gsdsrc.h:$(GLSRC)std.h
$(GLSRC)gsdsrc.h:$(GLSRC)gstypes.h
+$(GLSRC)gsdsrc.h:$(GLSRC)std.h
$(GLSRC)gsdsrc.h:$(GLSRC)stdpre.h
$(GLSRC)gsdsrc.h:$(GLGEN)arch.h
+$(GLSRC)gsdsrc.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gsfunc.h:$(GLSRC)gsdsrc.h
$(GLSRC)gsfunc.h:$(GLSRC)gsparam.h
+$(GLSRC)gsfunc.h:$(GLSRC)memento.h
$(GLSRC)gsfunc.h:$(GLSRC)gsstruct.h
$(GLSRC)gsfunc.h:$(GLSRC)scommon.h
-$(GLSRC)gsfunc.h:$(GLSRC)memento.h
$(GLSRC)gsfunc.h:$(GLSRC)gsstype.h
$(GLSRC)gsfunc.h:$(GLSRC)gsmemory.h
$(GLSRC)gsfunc.h:$(GLSRC)gslibctx.h
-$(GLSRC)gsfunc.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gsfunc.h:$(GLSRC)stdio_.h
$(GLSRC)gsfunc.h:$(GLSRC)stdint_.h
$(GLSRC)gsfunc.h:$(GLSRC)gssprintf.h
-$(GLSRC)gsfunc.h:$(GLSRC)std.h
$(GLSRC)gsfunc.h:$(GLSRC)gstypes.h
+$(GLSRC)gsfunc.h:$(GLSRC)std.h
$(GLSRC)gsfunc.h:$(GLSRC)stdpre.h
$(GLSRC)gsfunc.h:$(GLGEN)arch.h
+$(GLSRC)gsfunc.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gsfunc0.h:$(GLSRC)gsfunc.h
$(GLSRC)gsfunc0.h:$(GLSRC)gsdsrc.h
$(GLSRC)gsfunc0.h:$(GLSRC)gsparam.h
+$(GLSRC)gsfunc0.h:$(GLSRC)memento.h
$(GLSRC)gsfunc0.h:$(GLSRC)gsstruct.h
$(GLSRC)gsfunc0.h:$(GLSRC)scommon.h
-$(GLSRC)gsfunc0.h:$(GLSRC)memento.h
$(GLSRC)gsfunc0.h:$(GLSRC)gsstype.h
$(GLSRC)gsfunc0.h:$(GLSRC)gsmemory.h
$(GLSRC)gsfunc0.h:$(GLSRC)gslibctx.h
-$(GLSRC)gsfunc0.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gsfunc0.h:$(GLSRC)stdio_.h
$(GLSRC)gsfunc0.h:$(GLSRC)stdint_.h
$(GLSRC)gsfunc0.h:$(GLSRC)gssprintf.h
-$(GLSRC)gsfunc0.h:$(GLSRC)std.h
$(GLSRC)gsfunc0.h:$(GLSRC)gstypes.h
+$(GLSRC)gsfunc0.h:$(GLSRC)std.h
$(GLSRC)gsfunc0.h:$(GLSRC)stdpre.h
$(GLSRC)gsfunc0.h:$(GLGEN)arch.h
+$(GLSRC)gsfunc0.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxfunc.h:$(GLSRC)gsfunc.h
$(GLSRC)gxfunc.h:$(GLSRC)gsdsrc.h
$(GLSRC)gxfunc.h:$(GLSRC)gsparam.h
+$(GLSRC)gxfunc.h:$(GLSRC)memento.h
$(GLSRC)gxfunc.h:$(GLSRC)gsstruct.h
$(GLSRC)gxfunc.h:$(GLSRC)scommon.h
-$(GLSRC)gxfunc.h:$(GLSRC)memento.h
$(GLSRC)gxfunc.h:$(GLSRC)gsstype.h
$(GLSRC)gxfunc.h:$(GLSRC)gsmemory.h
$(GLSRC)gxfunc.h:$(GLSRC)gslibctx.h
-$(GLSRC)gxfunc.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxfunc.h:$(GLSRC)stdio_.h
$(GLSRC)gxfunc.h:$(GLSRC)stdint_.h
$(GLSRC)gxfunc.h:$(GLSRC)gssprintf.h
-$(GLSRC)gxfunc.h:$(GLSRC)std.h
$(GLSRC)gxfunc.h:$(GLSRC)gstypes.h
+$(GLSRC)gxfunc.h:$(GLSRC)std.h
$(GLSRC)gxfunc.h:$(GLSRC)stdpre.h
$(GLSRC)gxfunc.h:$(GLGEN)arch.h
+$(GLSRC)gxfunc.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gsfunc4.h:$(GLSRC)gsfunc.h
$(GLSRC)gsfunc4.h:$(GLSRC)gsdsrc.h
$(GLSRC)gsfunc4.h:$(GLSRC)gsparam.h
+$(GLSRC)gsfunc4.h:$(GLSRC)memento.h
$(GLSRC)gsfunc4.h:$(GLSRC)gsstruct.h
$(GLSRC)gsfunc4.h:$(GLSRC)scommon.h
-$(GLSRC)gsfunc4.h:$(GLSRC)memento.h
$(GLSRC)gsfunc4.h:$(GLSRC)gsstype.h
$(GLSRC)gsfunc4.h:$(GLSRC)gsmemory.h
$(GLSRC)gsfunc4.h:$(GLSRC)gslibctx.h
-$(GLSRC)gsfunc4.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gsfunc4.h:$(GLSRC)stdio_.h
$(GLSRC)gsfunc4.h:$(GLSRC)stdint_.h
$(GLSRC)gsfunc4.h:$(GLSRC)gssprintf.h
-$(GLSRC)gsfunc4.h:$(GLSRC)std.h
$(GLSRC)gsfunc4.h:$(GLSRC)gstypes.h
+$(GLSRC)gsfunc4.h:$(GLSRC)std.h
$(GLSRC)gsfunc4.h:$(GLSRC)stdpre.h
$(GLSRC)gsfunc4.h:$(GLGEN)arch.h
+$(GLSRC)gsfunc4.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gscpixel.h:$(GLSRC)gscspace.h
+$(GLSRC)gscpixel.h:$(GLSRC)gsgstate.h
$(GLSRC)gscpixel.h:$(GLSRC)gsiparam.h
-$(GLSRC)gscpixel.h:$(GLSRC)gxbitmap.h
$(GLSRC)gscpixel.h:$(GLSRC)gsmatrix.h
$(GLSRC)gscpixel.h:$(GLSRC)gsrefct.h
-$(GLSRC)gscpixel.h:$(GLSRC)gsccolor.h
-$(GLSRC)gscpixel.h:$(GLSRC)scommon.h
$(GLSRC)gscpixel.h:$(GLSRC)memento.h
+$(GLSRC)gscpixel.h:$(GLSRC)gxbitmap.h
+$(GLSRC)gscpixel.h:$(GLSRC)scommon.h
$(GLSRC)gscpixel.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gscpixel.h:$(GLSRC)gsccolor.h
$(GLSRC)gscpixel.h:$(GLSRC)gsstype.h
$(GLSRC)gscpixel.h:$(GLSRC)gsmemory.h
$(GLSRC)gscpixel.h:$(GLSRC)gslibctx.h
-$(GLSRC)gscpixel.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gscpixel.h:$(GLSRC)stdio_.h
-$(GLSRC)gscpixel.h:$(GLSRC)gsgstate.h
$(GLSRC)gscpixel.h:$(GLSRC)stdint_.h
$(GLSRC)gscpixel.h:$(GLSRC)gssprintf.h
-$(GLSRC)gscpixel.h:$(GLSRC)std.h
$(GLSRC)gscpixel.h:$(GLSRC)gstypes.h
+$(GLSRC)gscpixel.h:$(GLSRC)std.h
$(GLSRC)gscpixel.h:$(GLSRC)stdpre.h
$(GLSRC)gscpixel.h:$(GLGEN)arch.h
-$(GLSRC)gscms.h:$(GLSRC)gscspace.h
+$(GLSRC)gscpixel.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gscms.h:$(GLSRC)gsdevice.h
+$(GLSRC)gscms.h:$(GLSRC)gscspace.h
+$(GLSRC)gscms.h:$(GLSRC)gsgstate.h
$(GLSRC)gscms.h:$(GLSRC)gsiparam.h
-$(GLSRC)gscms.h:$(GLSRC)gxbitmap.h
$(GLSRC)gscms.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gscms.h:$(GLSRC)gsrefct.h
$(GLSRC)gscms.h:$(GLSRC)gsparam.h
-$(GLSRC)gscms.h:$(GLSRC)gsccolor.h
+$(GLSRC)gscms.h:$(GLSRC)gsrefct.h
+$(GLSRC)gscms.h:$(GLSRC)memento.h
$(GLSRC)gscms.h:$(GLSRC)gxsync.h
+$(GLSRC)gscms.h:$(GLSRC)gxbitmap.h
$(GLSRC)gscms.h:$(GLSRC)scommon.h
-$(GLSRC)gscms.h:$(GLSRC)memento.h
$(GLSRC)gscms.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gscms.h:$(GLSRC)gsccolor.h
+$(GLSRC)gscms.h:$(GLSRC)gpsync.h
$(GLSRC)gscms.h:$(GLSRC)gsstype.h
$(GLSRC)gscms.h:$(GLSRC)gsmemory.h
-$(GLSRC)gscms.h:$(GLSRC)gpsync.h
$(GLSRC)gscms.h:$(GLSRC)gslibctx.h
-$(GLSRC)gscms.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gscms.h:$(GLSRC)stdio_.h
-$(GLSRC)gscms.h:$(GLSRC)gsgstate.h
$(GLSRC)gscms.h:$(GLSRC)stdint_.h
$(GLSRC)gscms.h:$(GLSRC)gssprintf.h
-$(GLSRC)gscms.h:$(GLSRC)std.h
$(GLSRC)gscms.h:$(GLSRC)gstypes.h
+$(GLSRC)gscms.h:$(GLSRC)std.h
$(GLSRC)gscms.h:$(GLSRC)stdpre.h
$(GLSRC)gscms.h:$(GLGEN)arch.h
+$(GLSRC)gscms.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gsicc_cms.h:$(GLSRC)gxcvalue.h
$(GLSRC)gsicc_cms.h:$(GLSRC)gscms.h
-$(GLSRC)gsicc_cms.h:$(GLSRC)gscspace.h
$(GLSRC)gsicc_cms.h:$(GLSRC)gsdevice.h
+$(GLSRC)gsicc_cms.h:$(GLSRC)gscspace.h
+$(GLSRC)gsicc_cms.h:$(GLSRC)gsgstate.h
$(GLSRC)gsicc_cms.h:$(GLSRC)gsiparam.h
-$(GLSRC)gsicc_cms.h:$(GLSRC)gxbitmap.h
$(GLSRC)gsicc_cms.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gsicc_cms.h:$(GLSRC)gsrefct.h
$(GLSRC)gsicc_cms.h:$(GLSRC)gsparam.h
-$(GLSRC)gsicc_cms.h:$(GLSRC)gsccolor.h
+$(GLSRC)gsicc_cms.h:$(GLSRC)gsrefct.h
+$(GLSRC)gsicc_cms.h:$(GLSRC)memento.h
$(GLSRC)gsicc_cms.h:$(GLSRC)gxsync.h
+$(GLSRC)gsicc_cms.h:$(GLSRC)gxbitmap.h
$(GLSRC)gsicc_cms.h:$(GLSRC)scommon.h
-$(GLSRC)gsicc_cms.h:$(GLSRC)memento.h
$(GLSRC)gsicc_cms.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gsicc_cms.h:$(GLSRC)gsccolor.h
+$(GLSRC)gsicc_cms.h:$(GLSRC)gpsync.h
$(GLSRC)gsicc_cms.h:$(GLSRC)gsstype.h
$(GLSRC)gsicc_cms.h:$(GLSRC)gsmemory.h
-$(GLSRC)gsicc_cms.h:$(GLSRC)gpsync.h
$(GLSRC)gsicc_cms.h:$(GLSRC)gslibctx.h
-$(GLSRC)gsicc_cms.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gsicc_cms.h:$(GLSRC)stdio_.h
-$(GLSRC)gsicc_cms.h:$(GLSRC)gsgstate.h
$(GLSRC)gsicc_cms.h:$(GLSRC)stdint_.h
$(GLSRC)gsicc_cms.h:$(GLSRC)gssprintf.h
-$(GLSRC)gsicc_cms.h:$(GLSRC)std.h
$(GLSRC)gsicc_cms.h:$(GLSRC)gstypes.h
+$(GLSRC)gsicc_cms.h:$(GLSRC)std.h
$(GLSRC)gsicc_cms.h:$(GLSRC)stdpre.h
$(GLSRC)gsicc_cms.h:$(GLGEN)arch.h
+$(GLSRC)gsicc_cms.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gsicc_manage.h:$(GLSRC)gsicc_cms.h
$(GLSRC)gsicc_manage.h:$(GLSRC)gxcvalue.h
$(GLSRC)gsicc_manage.h:$(GLSRC)gscms.h
-$(GLSRC)gsicc_manage.h:$(GLSRC)gscspace.h
$(GLSRC)gsicc_manage.h:$(GLSRC)gsdevice.h
+$(GLSRC)gsicc_manage.h:$(GLSRC)gscspace.h
+$(GLSRC)gsicc_manage.h:$(GLSRC)gsgstate.h
$(GLSRC)gsicc_manage.h:$(GLSRC)gsiparam.h
-$(GLSRC)gsicc_manage.h:$(GLSRC)gxbitmap.h
$(GLSRC)gsicc_manage.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gsicc_manage.h:$(GLSRC)gsrefct.h
$(GLSRC)gsicc_manage.h:$(GLSRC)gsparam.h
-$(GLSRC)gsicc_manage.h:$(GLSRC)gsccolor.h
+$(GLSRC)gsicc_manage.h:$(GLSRC)gsrefct.h
+$(GLSRC)gsicc_manage.h:$(GLSRC)memento.h
$(GLSRC)gsicc_manage.h:$(GLSRC)gxsync.h
+$(GLSRC)gsicc_manage.h:$(GLSRC)gxbitmap.h
$(GLSRC)gsicc_manage.h:$(GLSRC)scommon.h
-$(GLSRC)gsicc_manage.h:$(GLSRC)memento.h
$(GLSRC)gsicc_manage.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gsicc_manage.h:$(GLSRC)gsccolor.h
+$(GLSRC)gsicc_manage.h:$(GLSRC)gpsync.h
$(GLSRC)gsicc_manage.h:$(GLSRC)gsstype.h
$(GLSRC)gsicc_manage.h:$(GLSRC)gsmemory.h
-$(GLSRC)gsicc_manage.h:$(GLSRC)gpsync.h
$(GLSRC)gsicc_manage.h:$(GLSRC)gslibctx.h
-$(GLSRC)gsicc_manage.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gsicc_manage.h:$(GLSRC)stdio_.h
-$(GLSRC)gsicc_manage.h:$(GLSRC)gsgstate.h
$(GLSRC)gsicc_manage.h:$(GLSRC)stdint_.h
$(GLSRC)gsicc_manage.h:$(GLSRC)gssprintf.h
-$(GLSRC)gsicc_manage.h:$(GLSRC)std.h
$(GLSRC)gsicc_manage.h:$(GLSRC)gstypes.h
+$(GLSRC)gsicc_manage.h:$(GLSRC)std.h
$(GLSRC)gsicc_manage.h:$(GLSRC)stdpre.h
$(GLSRC)gsicc_manage.h:$(GLGEN)arch.h
+$(GLSRC)gsicc_manage.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gsicc_cache.h:$(GLSRC)gxcvalue.h
$(GLSRC)gsicc_cache.h:$(GLSRC)gscms.h
-$(GLSRC)gsicc_cache.h:$(GLSRC)gscspace.h
$(GLSRC)gsicc_cache.h:$(GLSRC)gsdevice.h
+$(GLSRC)gsicc_cache.h:$(GLSRC)gscspace.h
+$(GLSRC)gsicc_cache.h:$(GLSRC)gsgstate.h
$(GLSRC)gsicc_cache.h:$(GLSRC)gsiparam.h
-$(GLSRC)gsicc_cache.h:$(GLSRC)gxbitmap.h
$(GLSRC)gsicc_cache.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gsicc_cache.h:$(GLSRC)gsrefct.h
$(GLSRC)gsicc_cache.h:$(GLSRC)gsparam.h
-$(GLSRC)gsicc_cache.h:$(GLSRC)gsccolor.h
+$(GLSRC)gsicc_cache.h:$(GLSRC)gsrefct.h
+$(GLSRC)gsicc_cache.h:$(GLSRC)memento.h
$(GLSRC)gsicc_cache.h:$(GLSRC)gxsync.h
+$(GLSRC)gsicc_cache.h:$(GLSRC)gxbitmap.h
$(GLSRC)gsicc_cache.h:$(GLSRC)scommon.h
-$(GLSRC)gsicc_cache.h:$(GLSRC)memento.h
$(GLSRC)gsicc_cache.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gsicc_cache.h:$(GLSRC)gsccolor.h
+$(GLSRC)gsicc_cache.h:$(GLSRC)gpsync.h
$(GLSRC)gsicc_cache.h:$(GLSRC)gsstype.h
$(GLSRC)gsicc_cache.h:$(GLSRC)gsmemory.h
-$(GLSRC)gsicc_cache.h:$(GLSRC)gpsync.h
$(GLSRC)gsicc_cache.h:$(GLSRC)gslibctx.h
-$(GLSRC)gsicc_cache.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gsicc_cache.h:$(GLSRC)stdio_.h
-$(GLSRC)gsicc_cache.h:$(GLSRC)gsgstate.h
$(GLSRC)gsicc_cache.h:$(GLSRC)stdint_.h
$(GLSRC)gsicc_cache.h:$(GLSRC)gssprintf.h
-$(GLSRC)gsicc_cache.h:$(GLSRC)std.h
$(GLSRC)gsicc_cache.h:$(GLSRC)gstypes.h
+$(GLSRC)gsicc_cache.h:$(GLSRC)std.h
$(GLSRC)gsicc_cache.h:$(GLSRC)stdpre.h
$(GLSRC)gsicc_cache.h:$(GLGEN)arch.h
+$(GLSRC)gsicc_cache.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gsicc_profilecache.h:$(GLSRC)gscms.h
-$(GLSRC)gsicc_profilecache.h:$(GLSRC)gscspace.h
$(GLSRC)gsicc_profilecache.h:$(GLSRC)gsdevice.h
+$(GLSRC)gsicc_profilecache.h:$(GLSRC)gscspace.h
+$(GLSRC)gsicc_profilecache.h:$(GLSRC)gsgstate.h
$(GLSRC)gsicc_profilecache.h:$(GLSRC)gsiparam.h
-$(GLSRC)gsicc_profilecache.h:$(GLSRC)gxbitmap.h
$(GLSRC)gsicc_profilecache.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gsicc_profilecache.h:$(GLSRC)gsrefct.h
$(GLSRC)gsicc_profilecache.h:$(GLSRC)gsparam.h
-$(GLSRC)gsicc_profilecache.h:$(GLSRC)gsccolor.h
+$(GLSRC)gsicc_profilecache.h:$(GLSRC)gsrefct.h
+$(GLSRC)gsicc_profilecache.h:$(GLSRC)memento.h
$(GLSRC)gsicc_profilecache.h:$(GLSRC)gxsync.h
+$(GLSRC)gsicc_profilecache.h:$(GLSRC)gxbitmap.h
$(GLSRC)gsicc_profilecache.h:$(GLSRC)scommon.h
-$(GLSRC)gsicc_profilecache.h:$(GLSRC)memento.h
$(GLSRC)gsicc_profilecache.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gsicc_profilecache.h:$(GLSRC)gsccolor.h
+$(GLSRC)gsicc_profilecache.h:$(GLSRC)gpsync.h
$(GLSRC)gsicc_profilecache.h:$(GLSRC)gsstype.h
$(GLSRC)gsicc_profilecache.h:$(GLSRC)gsmemory.h
-$(GLSRC)gsicc_profilecache.h:$(GLSRC)gpsync.h
$(GLSRC)gsicc_profilecache.h:$(GLSRC)gslibctx.h
-$(GLSRC)gsicc_profilecache.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gsicc_profilecache.h:$(GLSRC)stdio_.h
-$(GLSRC)gsicc_profilecache.h:$(GLSRC)gsgstate.h
$(GLSRC)gsicc_profilecache.h:$(GLSRC)stdint_.h
$(GLSRC)gsicc_profilecache.h:$(GLSRC)gssprintf.h
-$(GLSRC)gsicc_profilecache.h:$(GLSRC)std.h
$(GLSRC)gsicc_profilecache.h:$(GLSRC)gstypes.h
+$(GLSRC)gsicc_profilecache.h:$(GLSRC)std.h
$(GLSRC)gsicc_profilecache.h:$(GLSRC)stdpre.h
$(GLSRC)gsicc_profilecache.h:$(GLGEN)arch.h
+$(GLSRC)gsicc_profilecache.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gstrap.h:$(GLSRC)gspath.h
$(GLSRC)gstrap.h:$(GLSRC)gxmatrix.h
-$(GLSRC)gstrap.h:$(GLSRC)gspenum.h
-$(GLSRC)gstrap.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gstrap.h:$(GLSRC)gsgstate.h
$(GLSRC)gstrap.h:$(GLSRC)gxfixed.h
+$(GLSRC)gstrap.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gstrap.h:$(GLSRC)gspenum.h
$(GLSRC)gstrap.h:$(GLSRC)gsparam.h
$(GLSRC)gstrap.h:$(GLSRC)scommon.h
$(GLSRC)gstrap.h:$(GLSRC)gsstype.h
$(GLSRC)gstrap.h:$(GLSRC)gsmemory.h
$(GLSRC)gstrap.h:$(GLSRC)gslibctx.h
-$(GLSRC)gstrap.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gstrap.h:$(GLSRC)stdio_.h
-$(GLSRC)gstrap.h:$(GLSRC)gsgstate.h
$(GLSRC)gstrap.h:$(GLSRC)stdint_.h
$(GLSRC)gstrap.h:$(GLSRC)gssprintf.h
-$(GLSRC)gstrap.h:$(GLSRC)std.h
$(GLSRC)gstrap.h:$(GLSRC)gstypes.h
+$(GLSRC)gstrap.h:$(GLSRC)std.h
$(GLSRC)gstrap.h:$(GLSRC)stdpre.h
$(GLSRC)gstrap.h:$(GLGEN)arch.h
+$(GLSRC)gstrap.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gsipar3x.h:$(GLSRC)gsiparm3.h
$(GLSRC)gsipar3x.h:$(GLSRC)gsiparam.h
-$(GLSRC)gsipar3x.h:$(GLSRC)gxbitmap.h
$(GLSRC)gsipar3x.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gsipar3x.h:$(GLSRC)gsccolor.h
+$(GLSRC)gsipar3x.h:$(GLSRC)gxbitmap.h
$(GLSRC)gsipar3x.h:$(GLSRC)scommon.h
$(GLSRC)gsipar3x.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gsipar3x.h:$(GLSRC)gsccolor.h
$(GLSRC)gsipar3x.h:$(GLSRC)gsstype.h
$(GLSRC)gsipar3x.h:$(GLSRC)gsmemory.h
$(GLSRC)gsipar3x.h:$(GLSRC)gslibctx.h
-$(GLSRC)gsipar3x.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gsipar3x.h:$(GLSRC)stdio_.h
$(GLSRC)gsipar3x.h:$(GLSRC)stdint_.h
$(GLSRC)gsipar3x.h:$(GLSRC)gssprintf.h
-$(GLSRC)gsipar3x.h:$(GLSRC)std.h
$(GLSRC)gsipar3x.h:$(GLSRC)gstypes.h
+$(GLSRC)gsipar3x.h:$(GLSRC)std.h
$(GLSRC)gsipar3x.h:$(GLSRC)stdpre.h
$(GLSRC)gsipar3x.h:$(GLGEN)arch.h
+$(GLSRC)gsipar3x.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gximag3x.h:$(GLSRC)gsipar3x.h
$(GLSRC)gximag3x.h:$(GLSRC)gsiparm3.h
$(GLSRC)gximag3x.h:$(GLSRC)gxiparam.h
$(GLSRC)gximag3x.h:$(GLSRC)gxdevcli.h
+$(GLSRC)gximag3x.h:$(GLSRC)gxcmap.h
$(GLSRC)gximag3x.h:$(GLSRC)gxtext.h
$(GLSRC)gximag3x.h:$(GLSRC)gstext.h
$(GLSRC)gximag3x.h:$(GLSRC)gsnamecl.h
$(GLSRC)gximag3x.h:$(GLSRC)gstparam.h
-$(GLSRC)gximag3x.h:$(GLSRC)gxfcache.h
-$(GLSRC)gximag3x.h:$(GLSRC)gxcspace.h
-$(GLSRC)gximag3x.h:$(GLSRC)gsropt.h
+$(GLSRC)gximag3x.h:$(GLSRC)gxfmap.h
$(GLSRC)gximag3x.h:$(GLSRC)gsfunc.h
+$(GLSRC)gximag3x.h:$(GLSRC)gxcspace.h
$(GLSRC)gximag3x.h:$(GLSRC)gxrplane.h
-$(GLSRC)gximag3x.h:$(GLSRC)gsuid.h
-$(GLSRC)gximag3x.h:$(GLSRC)gxcmap.h
+$(GLSRC)gximag3x.h:$(GLSRC)gscsel.h
+$(GLSRC)gximag3x.h:$(GLSRC)gxfcache.h
+$(GLSRC)gximag3x.h:$(GLSRC)gsfont.h
$(GLSRC)gximag3x.h:$(GLSRC)gsimage.h
$(GLSRC)gximag3x.h:$(GLSRC)gsdcolor.h
-$(GLSRC)gximag3x.h:$(GLSRC)gxdda.h
$(GLSRC)gximag3x.h:$(GLSRC)gxcvalue.h
-$(GLSRC)gximag3x.h:$(GLSRC)gsfont.h
-$(GLSRC)gximag3x.h:$(GLSRC)gxfmap.h
-$(GLSRC)gximag3x.h:$(GLSRC)gxftype.h
+$(GLSRC)gximag3x.h:$(GLSRC)gxbcache.h
+$(GLSRC)gximag3x.h:$(GLSRC)gsropt.h
+$(GLSRC)gximag3x.h:$(GLSRC)gxdda.h
+$(GLSRC)gximag3x.h:$(GLSRC)gxpath.h
$(GLSRC)gximag3x.h:$(GLSRC)gxfrac.h
+$(GLSRC)gximag3x.h:$(GLSRC)gxtmap.h
+$(GLSRC)gximag3x.h:$(GLSRC)gxftype.h
$(GLSRC)gximag3x.h:$(GLSRC)gscms.h
-$(GLSRC)gximag3x.h:$(GLSRC)gscspace.h
-$(GLSRC)gximag3x.h:$(GLSRC)gxpath.h
-$(GLSRC)gximag3x.h:$(GLSRC)gxbcache.h
-$(GLSRC)gximag3x.h:$(GLSRC)gsdevice.h
-$(GLSRC)gximag3x.h:$(GLSRC)gxarith.h
-$(GLSRC)gximag3x.h:$(GLSRC)gspenum.h
-$(GLSRC)gximag3x.h:$(GLSRC)gxhttile.h
$(GLSRC)gximag3x.h:$(GLSRC)gsrect.h
$(GLSRC)gximag3x.h:$(GLSRC)gslparam.h
+$(GLSRC)gximag3x.h:$(GLSRC)gsdevice.h
+$(GLSRC)gximag3x.h:$(GLSRC)gscpm.h
+$(GLSRC)gximag3x.h:$(GLSRC)gscspace.h
+$(GLSRC)gximag3x.h:$(GLSRC)gsgstate.h
$(GLSRC)gximag3x.h:$(GLSRC)gsxfont.h
-$(GLSRC)gximag3x.h:$(GLSRC)gsiparam.h
$(GLSRC)gximag3x.h:$(GLSRC)gsdsrc.h
-$(GLSRC)gximag3x.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gximag3x.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gximag3x.h:$(GLSRC)gscpm.h
+$(GLSRC)gximag3x.h:$(GLSRC)gsiparam.h
$(GLSRC)gximag3x.h:$(GLSRC)gxfixed.h
-$(GLSRC)gximag3x.h:$(GLSRC)gsrefct.h
+$(GLSRC)gximag3x.h:$(GLSRC)gscompt.h
+$(GLSRC)gximag3x.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gximag3x.h:$(GLSRC)gspenum.h
+$(GLSRC)gximag3x.h:$(GLSRC)gxhttile.h
$(GLSRC)gximag3x.h:$(GLSRC)gsparam.h
+$(GLSRC)gximag3x.h:$(GLSRC)gsrefct.h
$(GLSRC)gximag3x.h:$(GLSRC)gp.h
-$(GLSRC)gximag3x.h:$(GLSRC)gsccolor.h
+$(GLSRC)gximag3x.h:$(GLSRC)memento.h
+$(GLSRC)gximag3x.h:$(GLSRC)memory_.h
+$(GLSRC)gximag3x.h:$(GLSRC)gsuid.h
$(GLSRC)gximag3x.h:$(GLSRC)gsstruct.h
$(GLSRC)gximag3x.h:$(GLSRC)gxsync.h
+$(GLSRC)gximag3x.h:$(GLSRC)gxbitmap.h
$(GLSRC)gximag3x.h:$(GLSRC)srdline.h
$(GLSRC)gximag3x.h:$(GLSRC)scommon.h
-$(GLSRC)gximag3x.h:$(GLSRC)memento.h
-$(GLSRC)gximag3x.h:$(GLSRC)gscsel.h
$(GLSRC)gximag3x.h:$(GLSRC)gsbitmap.h
-$(GLSRC)gximag3x.h:$(GLSRC)gsstype.h
+$(GLSRC)gximag3x.h:$(GLSRC)gsccolor.h
+$(GLSRC)gximag3x.h:$(GLSRC)gxarith.h
$(GLSRC)gximag3x.h:$(GLSRC)stat_.h
-$(GLSRC)gximag3x.h:$(GLSRC)gxtmap.h
-$(GLSRC)gximag3x.h:$(GLSRC)gsmemory.h
$(GLSRC)gximag3x.h:$(GLSRC)gpsync.h
-$(GLSRC)gximag3x.h:$(GLSRC)memory_.h
+$(GLSRC)gximag3x.h:$(GLSRC)gsstype.h
+$(GLSRC)gximag3x.h:$(GLSRC)gsmemory.h
$(GLSRC)gximag3x.h:$(GLSRC)gpgetenv.h
-$(GLSRC)gximag3x.h:$(GLSRC)gslibctx.h
$(GLSRC)gximag3x.h:$(GLSRC)gscdefs.h
-$(GLSRC)gximag3x.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gximag3x.h:$(GLSRC)stdio_.h
-$(GLSRC)gximag3x.h:$(GLSRC)gscompt.h
+$(GLSRC)gximag3x.h:$(GLSRC)gslibctx.h
$(GLSRC)gximag3x.h:$(GLSRC)gxcindex.h
-$(GLSRC)gximag3x.h:$(GLSRC)gsgstate.h
+$(GLSRC)gximag3x.h:$(GLSRC)stdio_.h
+$(GLSRC)gximag3x.h:$(GLSRC)gsccode.h
$(GLSRC)gximag3x.h:$(GLSRC)stdint_.h
$(GLSRC)gximag3x.h:$(GLSRC)gssprintf.h
-$(GLSRC)gximag3x.h:$(GLSRC)gsccode.h
-$(GLSRC)gximag3x.h:$(GLSRC)std.h
$(GLSRC)gximag3x.h:$(GLSRC)gstypes.h
+$(GLSRC)gximag3x.h:$(GLSRC)std.h
$(GLSRC)gximag3x.h:$(GLSRC)stdpre.h
$(GLSRC)gximag3x.h:$(GLGEN)arch.h
+$(GLSRC)gximag3x.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxblend.h:$(GLSRC)gxdevcli.h
+$(GLSRC)gxblend.h:$(GLSRC)gxcmap.h
$(GLSRC)gxblend.h:$(GLSRC)gxtext.h
$(GLSRC)gxblend.h:$(GLSRC)gstext.h
$(GLSRC)gxblend.h:$(GLSRC)gsnamecl.h
$(GLSRC)gxblend.h:$(GLSRC)gstparam.h
-$(GLSRC)gxblend.h:$(GLSRC)gxfcache.h
-$(GLSRC)gxblend.h:$(GLSRC)gxcspace.h
-$(GLSRC)gxblend.h:$(GLSRC)gsropt.h
+$(GLSRC)gxblend.h:$(GLSRC)gxfmap.h
$(GLSRC)gxblend.h:$(GLSRC)gsfunc.h
+$(GLSRC)gxblend.h:$(GLSRC)gxcspace.h
$(GLSRC)gxblend.h:$(GLSRC)gxrplane.h
-$(GLSRC)gxblend.h:$(GLSRC)gsuid.h
-$(GLSRC)gxblend.h:$(GLSRC)gxcmap.h
+$(GLSRC)gxblend.h:$(GLSRC)gscsel.h
+$(GLSRC)gxblend.h:$(GLSRC)gxfcache.h
+$(GLSRC)gxblend.h:$(GLSRC)gsfont.h
$(GLSRC)gxblend.h:$(GLSRC)gsimage.h
$(GLSRC)gxblend.h:$(GLSRC)gsdcolor.h
-$(GLSRC)gxblend.h:$(GLSRC)gxdda.h
$(GLSRC)gxblend.h:$(GLSRC)gxcvalue.h
-$(GLSRC)gxblend.h:$(GLSRC)gsfont.h
-$(GLSRC)gxblend.h:$(GLSRC)gxfmap.h
-$(GLSRC)gxblend.h:$(GLSRC)gxftype.h
+$(GLSRC)gxblend.h:$(GLSRC)gxbcache.h
+$(GLSRC)gxblend.h:$(GLSRC)gsropt.h
+$(GLSRC)gxblend.h:$(GLSRC)gxdda.h
+$(GLSRC)gxblend.h:$(GLSRC)gxpath.h
$(GLSRC)gxblend.h:$(GLSRC)gxfrac.h
+$(GLSRC)gxblend.h:$(GLSRC)gxtmap.h
+$(GLSRC)gxblend.h:$(GLSRC)gxftype.h
$(GLSRC)gxblend.h:$(GLSRC)gscms.h
-$(GLSRC)gxblend.h:$(GLSRC)gscspace.h
-$(GLSRC)gxblend.h:$(GLSRC)gxpath.h
-$(GLSRC)gxblend.h:$(GLSRC)gxbcache.h
-$(GLSRC)gxblend.h:$(GLSRC)gsdevice.h
-$(GLSRC)gxblend.h:$(GLSRC)gxarith.h
-$(GLSRC)gxblend.h:$(GLSRC)gspenum.h
-$(GLSRC)gxblend.h:$(GLSRC)gxhttile.h
$(GLSRC)gxblend.h:$(GLSRC)gsrect.h
$(GLSRC)gxblend.h:$(GLSRC)gslparam.h
+$(GLSRC)gxblend.h:$(GLSRC)gsdevice.h
+$(GLSRC)gxblend.h:$(GLSRC)gscpm.h
+$(GLSRC)gxblend.h:$(GLSRC)gscspace.h
+$(GLSRC)gxblend.h:$(GLSRC)gsgstate.h
$(GLSRC)gxblend.h:$(GLSRC)gsxfont.h
-$(GLSRC)gxblend.h:$(GLSRC)gsiparam.h
$(GLSRC)gxblend.h:$(GLSRC)gsdsrc.h
-$(GLSRC)gxblend.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gxblend.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gxblend.h:$(GLSRC)gscpm.h
+$(GLSRC)gxblend.h:$(GLSRC)gsiparam.h
$(GLSRC)gxblend.h:$(GLSRC)gxfixed.h
-$(GLSRC)gxblend.h:$(GLSRC)gsrefct.h
+$(GLSRC)gxblend.h:$(GLSRC)gscompt.h
+$(GLSRC)gxblend.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gxblend.h:$(GLSRC)gspenum.h
+$(GLSRC)gxblend.h:$(GLSRC)gxhttile.h
$(GLSRC)gxblend.h:$(GLSRC)gsparam.h
+$(GLSRC)gxblend.h:$(GLSRC)gsrefct.h
$(GLSRC)gxblend.h:$(GLSRC)gp.h
-$(GLSRC)gxblend.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxblend.h:$(GLSRC)memento.h
+$(GLSRC)gxblend.h:$(GLSRC)memory_.h
+$(GLSRC)gxblend.h:$(GLSRC)gsuid.h
$(GLSRC)gxblend.h:$(GLSRC)gsstruct.h
$(GLSRC)gxblend.h:$(GLSRC)gxsync.h
+$(GLSRC)gxblend.h:$(GLSRC)gxbitmap.h
$(GLSRC)gxblend.h:$(GLSRC)srdline.h
$(GLSRC)gxblend.h:$(GLSRC)scommon.h
-$(GLSRC)gxblend.h:$(GLSRC)memento.h
-$(GLSRC)gxblend.h:$(GLSRC)gscsel.h
$(GLSRC)gxblend.h:$(GLSRC)gsbitmap.h
-$(GLSRC)gxblend.h:$(GLSRC)gsstype.h
+$(GLSRC)gxblend.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxblend.h:$(GLSRC)gxarith.h
$(GLSRC)gxblend.h:$(GLSRC)stat_.h
-$(GLSRC)gxblend.h:$(GLSRC)gxtmap.h
-$(GLSRC)gxblend.h:$(GLSRC)gsmemory.h
$(GLSRC)gxblend.h:$(GLSRC)gpsync.h
-$(GLSRC)gxblend.h:$(GLSRC)memory_.h
+$(GLSRC)gxblend.h:$(GLSRC)gsstype.h
+$(GLSRC)gxblend.h:$(GLSRC)gsmemory.h
$(GLSRC)gxblend.h:$(GLSRC)gpgetenv.h
-$(GLSRC)gxblend.h:$(GLSRC)gslibctx.h
$(GLSRC)gxblend.h:$(GLSRC)gscdefs.h
-$(GLSRC)gxblend.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gxblend.h:$(GLSRC)stdio_.h
-$(GLSRC)gxblend.h:$(GLSRC)gscompt.h
+$(GLSRC)gxblend.h:$(GLSRC)gslibctx.h
$(GLSRC)gxblend.h:$(GLSRC)gxcindex.h
-$(GLSRC)gxblend.h:$(GLSRC)gsgstate.h
+$(GLSRC)gxblend.h:$(GLSRC)stdio_.h
+$(GLSRC)gxblend.h:$(GLSRC)gsccode.h
$(GLSRC)gxblend.h:$(GLSRC)stdint_.h
$(GLSRC)gxblend.h:$(GLSRC)gssprintf.h
-$(GLSRC)gxblend.h:$(GLSRC)gsccode.h
-$(GLSRC)gxblend.h:$(GLSRC)std.h
$(GLSRC)gxblend.h:$(GLSRC)gstypes.h
+$(GLSRC)gxblend.h:$(GLSRC)std.h
$(GLSRC)gxblend.h:$(GLSRC)stdpre.h
$(GLSRC)gxblend.h:$(GLGEN)arch.h
+$(GLSRC)gxblend.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gdevp14.h:$(GLSRC)gxcolor2.h
$(GLSRC)gdevp14.h:$(GLSRC)gxpcolor.h
+$(GLSRC)gdevp14.h:$(GLSRC)gxdevmem.h
$(GLSRC)gdevp14.h:$(GLSRC)gdevdevn.h
-$(GLSRC)gdevp14.h:$(GLSRC)gsequivc.h
-$(GLSRC)gdevp14.h:$(GLSRC)gxblend.h
$(GLSRC)gdevp14.h:$(GLSRC)gxdcolor.h
+$(GLSRC)gdevp14.h:$(GLSRC)gxblend.h
$(GLSRC)gdevp14.h:$(GLSRC)gscolor2.h
-$(GLSRC)gdevp14.h:$(GLSRC)gscindex.h
$(GLSRC)gdevp14.h:$(GLSRC)gxdevice.h
$(GLSRC)gdevp14.h:$(GLSRC)gxcpath.h
-$(GLSRC)gdevp14.h:$(GLSRC)gxdevmem.h
+$(GLSRC)gdevp14.h:$(GLSRC)gsequivc.h
$(GLSRC)gdevp14.h:$(GLSRC)gxdevcli.h
$(GLSRC)gdevp14.h:$(GLSRC)gxpcache.h
+$(GLSRC)gdevp14.h:$(GLSRC)gscindex.h
+$(GLSRC)gdevp14.h:$(GLSRC)gxcmap.h
$(GLSRC)gdevp14.h:$(GLSRC)gsptype1.h
-$(GLSRC)gdevp14.h:$(GLSRC)gxtext.h
$(GLSRC)gdevp14.h:$(GLSRC)gscie.h
+$(GLSRC)gdevp14.h:$(GLSRC)gxtext.h
$(GLSRC)gdevp14.h:$(GLSRC)gstext.h
$(GLSRC)gdevp14.h:$(GLSRC)gsnamecl.h
$(GLSRC)gdevp14.h:$(GLSRC)gstparam.h
$(GLSRC)gdevp14.h:$(GLSRC)gspcolor.h
-$(GLSRC)gdevp14.h:$(GLSRC)gxfcache.h
-$(GLSRC)gdevp14.h:$(GLSRC)gxcspace.h
-$(GLSRC)gdevp14.h:$(GLSRC)gsropt.h
-$(GLSRC)gdevp14.h:$(GLSRC)gsfunc.h
+$(GLSRC)gdevp14.h:$(GLSRC)gxfmap.h
$(GLSRC)gdevp14.h:$(GLSRC)gsmalloc.h
-$(GLSRC)gdevp14.h:$(GLSRC)gxrplane.h
+$(GLSRC)gdevp14.h:$(GLSRC)gsfunc.h
+$(GLSRC)gdevp14.h:$(GLSRC)gxcspace.h
$(GLSRC)gdevp14.h:$(GLSRC)gxctable.h
-$(GLSRC)gdevp14.h:$(GLSRC)gsuid.h
-$(GLSRC)gdevp14.h:$(GLSRC)gxcmap.h
+$(GLSRC)gdevp14.h:$(GLSRC)gxrplane.h
+$(GLSRC)gdevp14.h:$(GLSRC)gscsel.h
+$(GLSRC)gdevp14.h:$(GLSRC)gxfcache.h
+$(GLSRC)gdevp14.h:$(GLSRC)gsfont.h
$(GLSRC)gdevp14.h:$(GLSRC)gsimage.h
$(GLSRC)gdevp14.h:$(GLSRC)gsdcolor.h
-$(GLSRC)gdevp14.h:$(GLSRC)gxdda.h
$(GLSRC)gdevp14.h:$(GLSRC)gxcvalue.h
-$(GLSRC)gdevp14.h:$(GLSRC)gsfont.h
-$(GLSRC)gdevp14.h:$(GLSRC)gxfmap.h
+$(GLSRC)gdevp14.h:$(GLSRC)gxbcache.h
+$(GLSRC)gdevp14.h:$(GLSRC)gsropt.h
+$(GLSRC)gdevp14.h:$(GLSRC)gxdda.h
+$(GLSRC)gdevp14.h:$(GLSRC)gxpath.h
$(GLSRC)gdevp14.h:$(GLSRC)gxiclass.h
-$(GLSRC)gdevp14.h:$(GLSRC)gxftype.h
$(GLSRC)gdevp14.h:$(GLSRC)gxfrac.h
+$(GLSRC)gdevp14.h:$(GLSRC)gxtmap.h
+$(GLSRC)gdevp14.h:$(GLSRC)gxftype.h
$(GLSRC)gdevp14.h:$(GLSRC)gscms.h
-$(GLSRC)gdevp14.h:$(GLSRC)gscspace.h
-$(GLSRC)gdevp14.h:$(GLSRC)gxpath.h
-$(GLSRC)gdevp14.h:$(GLSRC)gxbcache.h
-$(GLSRC)gdevp14.h:$(GLSRC)gsdevice.h
-$(GLSRC)gdevp14.h:$(GLSRC)gxarith.h
-$(GLSRC)gdevp14.h:$(GLSRC)gxstdio.h
-$(GLSRC)gdevp14.h:$(GLSRC)gspenum.h
-$(GLSRC)gdevp14.h:$(GLSRC)gxhttile.h
$(GLSRC)gdevp14.h:$(GLSRC)gsrect.h
$(GLSRC)gdevp14.h:$(GLSRC)gslparam.h
+$(GLSRC)gdevp14.h:$(GLSRC)gsdevice.h
+$(GLSRC)gdevp14.h:$(GLSRC)gscpm.h
+$(GLSRC)gdevp14.h:$(GLSRC)gscspace.h
+$(GLSRC)gdevp14.h:$(GLSRC)gsgstate.h
+$(GLSRC)gdevp14.h:$(GLSRC)gxstdio.h
$(GLSRC)gdevp14.h:$(GLSRC)gsxfont.h
-$(GLSRC)gdevp14.h:$(GLSRC)gsiparam.h
$(GLSRC)gdevp14.h:$(GLSRC)gsdsrc.h
$(GLSRC)gdevp14.h:$(GLSRC)gsio.h
-$(GLSRC)gdevp14.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gdevp14.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gdevp14.h:$(GLSRC)gscpm.h
+$(GLSRC)gdevp14.h:$(GLSRC)gsiparam.h
$(GLSRC)gdevp14.h:$(GLSRC)gxfixed.h
-$(GLSRC)gdevp14.h:$(GLSRC)gsrefct.h
+$(GLSRC)gdevp14.h:$(GLSRC)gscompt.h
+$(GLSRC)gdevp14.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gdevp14.h:$(GLSRC)gspenum.h
+$(GLSRC)gdevp14.h:$(GLSRC)gxhttile.h
$(GLSRC)gdevp14.h:$(GLSRC)gsparam.h
+$(GLSRC)gdevp14.h:$(GLSRC)gsrefct.h
$(GLSRC)gdevp14.h:$(GLSRC)gp.h
-$(GLSRC)gdevp14.h:$(GLSRC)gsccolor.h
+$(GLSRC)gdevp14.h:$(GLSRC)memento.h
+$(GLSRC)gdevp14.h:$(GLSRC)memory_.h
+$(GLSRC)gdevp14.h:$(GLSRC)gsuid.h
$(GLSRC)gdevp14.h:$(GLSRC)gsstruct.h
$(GLSRC)gdevp14.h:$(GLSRC)gxsync.h
+$(GLSRC)gdevp14.h:$(GLSRC)gxbitmap.h
$(GLSRC)gdevp14.h:$(GLSRC)srdline.h
$(GLSRC)gdevp14.h:$(GLSRC)scommon.h
-$(GLSRC)gdevp14.h:$(GLSRC)memento.h
-$(GLSRC)gdevp14.h:$(GLSRC)gscsel.h
-$(GLSRC)gdevp14.h:$(GLSRC)gsbitmap.h
$(GLSRC)gdevp14.h:$(GLSRC)gsfname.h
-$(GLSRC)gdevp14.h:$(GLSRC)gsstype.h
+$(GLSRC)gdevp14.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gdevp14.h:$(GLSRC)gsccolor.h
+$(GLSRC)gdevp14.h:$(GLSRC)gxarith.h
$(GLSRC)gdevp14.h:$(GLSRC)stat_.h
-$(GLSRC)gdevp14.h:$(GLSRC)gxtmap.h
-$(GLSRC)gdevp14.h:$(GLSRC)gsmemory.h
$(GLSRC)gdevp14.h:$(GLSRC)gpsync.h
-$(GLSRC)gdevp14.h:$(GLSRC)memory_.h
+$(GLSRC)gdevp14.h:$(GLSRC)gsstype.h
+$(GLSRC)gdevp14.h:$(GLSRC)gsmemory.h
$(GLSRC)gdevp14.h:$(GLSRC)gpgetenv.h
-$(GLSRC)gdevp14.h:$(GLSRC)gslibctx.h
$(GLSRC)gdevp14.h:$(GLSRC)gscdefs.h
-$(GLSRC)gdevp14.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gdevp14.h:$(GLSRC)stdio_.h
-$(GLSRC)gdevp14.h:$(GLSRC)gscompt.h
+$(GLSRC)gdevp14.h:$(GLSRC)gslibctx.h
$(GLSRC)gdevp14.h:$(GLSRC)gxcindex.h
-$(GLSRC)gdevp14.h:$(GLSRC)gsgstate.h
+$(GLSRC)gdevp14.h:$(GLSRC)stdio_.h
+$(GLSRC)gdevp14.h:$(GLSRC)gsccode.h
$(GLSRC)gdevp14.h:$(GLSRC)stdint_.h
$(GLSRC)gdevp14.h:$(GLSRC)gssprintf.h
-$(GLSRC)gdevp14.h:$(GLSRC)gsccode.h
-$(GLSRC)gdevp14.h:$(GLSRC)std.h
$(GLSRC)gdevp14.h:$(GLSRC)gstypes.h
+$(GLSRC)gdevp14.h:$(GLSRC)std.h
$(GLSRC)gdevp14.h:$(GLSRC)stdpre.h
$(GLSRC)gdevp14.h:$(GLGEN)arch.h
+$(GLSRC)gdevp14.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gscolor3.h:$(GLSRC)gsshade.h
$(GLSRC)gscolor3.h:$(GLSRC)gspath.h
$(GLSRC)gscolor3.h:$(GLSRC)gxmatrix.h
@@ -12418,83 +12433,83 @@ $(GLSRC)gscolor3.h:$(GLSRC)gscie.h
$(GLSRC)gscolor3.h:$(GLSRC)gsfunc.h
$(GLSRC)gscolor3.h:$(GLSRC)gxctable.h
$(GLSRC)gscolor3.h:$(GLSRC)gxfrac.h
-$(GLSRC)gscolor3.h:$(GLSRC)gscspace.h
$(GLSRC)gscolor3.h:$(GLSRC)gsdevice.h
-$(GLSRC)gscolor3.h:$(GLSRC)gspenum.h
-$(GLSRC)gscolor3.h:$(GLSRC)gsiparam.h
+$(GLSRC)gscolor3.h:$(GLSRC)gscspace.h
+$(GLSRC)gscolor3.h:$(GLSRC)gsgstate.h
$(GLSRC)gscolor3.h:$(GLSRC)gsdsrc.h
-$(GLSRC)gscolor3.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gscolor3.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gscolor3.h:$(GLSRC)gsiparam.h
$(GLSRC)gscolor3.h:$(GLSRC)gxfixed.h
-$(GLSRC)gscolor3.h:$(GLSRC)gsrefct.h
+$(GLSRC)gscolor3.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gscolor3.h:$(GLSRC)gspenum.h
$(GLSRC)gscolor3.h:$(GLSRC)gsparam.h
-$(GLSRC)gscolor3.h:$(GLSRC)gsccolor.h
+$(GLSRC)gscolor3.h:$(GLSRC)gsrefct.h
+$(GLSRC)gscolor3.h:$(GLSRC)memento.h
$(GLSRC)gscolor3.h:$(GLSRC)gsstruct.h
+$(GLSRC)gscolor3.h:$(GLSRC)gxbitmap.h
$(GLSRC)gscolor3.h:$(GLSRC)scommon.h
-$(GLSRC)gscolor3.h:$(GLSRC)memento.h
$(GLSRC)gscolor3.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gscolor3.h:$(GLSRC)gsccolor.h
$(GLSRC)gscolor3.h:$(GLSRC)gsstype.h
$(GLSRC)gscolor3.h:$(GLSRC)gsmemory.h
$(GLSRC)gscolor3.h:$(GLSRC)gslibctx.h
-$(GLSRC)gscolor3.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gscolor3.h:$(GLSRC)stdio_.h
-$(GLSRC)gscolor3.h:$(GLSRC)gsgstate.h
$(GLSRC)gscolor3.h:$(GLSRC)stdint_.h
$(GLSRC)gscolor3.h:$(GLSRC)gssprintf.h
-$(GLSRC)gscolor3.h:$(GLSRC)std.h
$(GLSRC)gscolor3.h:$(GLSRC)gstypes.h
+$(GLSRC)gscolor3.h:$(GLSRC)std.h
$(GLSRC)gscolor3.h:$(GLSRC)stdpre.h
$(GLSRC)gscolor3.h:$(GLGEN)arch.h
+$(GLSRC)gscolor3.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gsfunc3.h:$(GLSRC)gsfunc.h
$(GLSRC)gsfunc3.h:$(GLSRC)gsdsrc.h
$(GLSRC)gsfunc3.h:$(GLSRC)gsparam.h
+$(GLSRC)gsfunc3.h:$(GLSRC)memento.h
$(GLSRC)gsfunc3.h:$(GLSRC)gsstruct.h
$(GLSRC)gsfunc3.h:$(GLSRC)scommon.h
-$(GLSRC)gsfunc3.h:$(GLSRC)memento.h
$(GLSRC)gsfunc3.h:$(GLSRC)gsstype.h
$(GLSRC)gsfunc3.h:$(GLSRC)gsmemory.h
$(GLSRC)gsfunc3.h:$(GLSRC)gslibctx.h
-$(GLSRC)gsfunc3.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gsfunc3.h:$(GLSRC)stdio_.h
$(GLSRC)gsfunc3.h:$(GLSRC)stdint_.h
$(GLSRC)gsfunc3.h:$(GLSRC)gssprintf.h
-$(GLSRC)gsfunc3.h:$(GLSRC)std.h
$(GLSRC)gsfunc3.h:$(GLSRC)gstypes.h
+$(GLSRC)gsfunc3.h:$(GLSRC)std.h
$(GLSRC)gsfunc3.h:$(GLSRC)stdpre.h
$(GLSRC)gsfunc3.h:$(GLGEN)arch.h
+$(GLSRC)gsfunc3.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gsshade.h:$(GLSRC)gspath.h
$(GLSRC)gsshade.h:$(GLSRC)gxmatrix.h
$(GLSRC)gsshade.h:$(GLSRC)gscie.h
$(GLSRC)gsshade.h:$(GLSRC)gsfunc.h
$(GLSRC)gsshade.h:$(GLSRC)gxctable.h
$(GLSRC)gsshade.h:$(GLSRC)gxfrac.h
-$(GLSRC)gsshade.h:$(GLSRC)gscspace.h
$(GLSRC)gsshade.h:$(GLSRC)gsdevice.h
-$(GLSRC)gsshade.h:$(GLSRC)gspenum.h
-$(GLSRC)gsshade.h:$(GLSRC)gsiparam.h
+$(GLSRC)gsshade.h:$(GLSRC)gscspace.h
+$(GLSRC)gsshade.h:$(GLSRC)gsgstate.h
$(GLSRC)gsshade.h:$(GLSRC)gsdsrc.h
-$(GLSRC)gsshade.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gsshade.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gsshade.h:$(GLSRC)gsiparam.h
$(GLSRC)gsshade.h:$(GLSRC)gxfixed.h
-$(GLSRC)gsshade.h:$(GLSRC)gsrefct.h
+$(GLSRC)gsshade.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gsshade.h:$(GLSRC)gspenum.h
$(GLSRC)gsshade.h:$(GLSRC)gsparam.h
-$(GLSRC)gsshade.h:$(GLSRC)gsccolor.h
+$(GLSRC)gsshade.h:$(GLSRC)gsrefct.h
+$(GLSRC)gsshade.h:$(GLSRC)memento.h
$(GLSRC)gsshade.h:$(GLSRC)gsstruct.h
+$(GLSRC)gsshade.h:$(GLSRC)gxbitmap.h
$(GLSRC)gsshade.h:$(GLSRC)scommon.h
-$(GLSRC)gsshade.h:$(GLSRC)memento.h
$(GLSRC)gsshade.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gsshade.h:$(GLSRC)gsccolor.h
$(GLSRC)gsshade.h:$(GLSRC)gsstype.h
$(GLSRC)gsshade.h:$(GLSRC)gsmemory.h
$(GLSRC)gsshade.h:$(GLSRC)gslibctx.h
-$(GLSRC)gsshade.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gsshade.h:$(GLSRC)stdio_.h
-$(GLSRC)gsshade.h:$(GLSRC)gsgstate.h
$(GLSRC)gsshade.h:$(GLSRC)stdint_.h
$(GLSRC)gsshade.h:$(GLSRC)gssprintf.h
-$(GLSRC)gsshade.h:$(GLSRC)std.h
$(GLSRC)gsshade.h:$(GLSRC)gstypes.h
+$(GLSRC)gsshade.h:$(GLSRC)std.h
$(GLSRC)gsshade.h:$(GLSRC)stdpre.h
$(GLSRC)gsshade.h:$(GLGEN)arch.h
+$(GLSRC)gsshade.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxshade.h:$(GLSRC)gsshade.h
$(GLSRC)gxshade.h:$(GLSRC)gspath.h
$(GLSRC)gxshade.h:$(GLSRC)gxmatrix.h
@@ -12506,121 +12521,121 @@ $(GLSRC)gxshade.h:$(GLSRC)gxiodev.h
$(GLSRC)gxshade.h:$(GLSRC)gsdcolor.h
$(GLSRC)gxshade.h:$(GLSRC)gxfrac.h
$(GLSRC)gxshade.h:$(GLSRC)gscms.h
-$(GLSRC)gxshade.h:$(GLSRC)gscspace.h
$(GLSRC)gxshade.h:$(GLSRC)gsdevice.h
-$(GLSRC)gxshade.h:$(GLSRC)gxarith.h
-$(GLSRC)gxshade.h:$(GLSRC)gspenum.h
-$(GLSRC)gxshade.h:$(GLSRC)gxhttile.h
-$(GLSRC)gxshade.h:$(GLSRC)gsiparam.h
+$(GLSRC)gxshade.h:$(GLSRC)gscspace.h
+$(GLSRC)gxshade.h:$(GLSRC)gsgstate.h
$(GLSRC)gxshade.h:$(GLSRC)gsdsrc.h
-$(GLSRC)gxshade.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gxshade.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gxshade.h:$(GLSRC)gsiparam.h
$(GLSRC)gxshade.h:$(GLSRC)gxfixed.h
-$(GLSRC)gxshade.h:$(GLSRC)gsrefct.h
+$(GLSRC)gxshade.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gxshade.h:$(GLSRC)gspenum.h
+$(GLSRC)gxshade.h:$(GLSRC)gxhttile.h
$(GLSRC)gxshade.h:$(GLSRC)gsparam.h
+$(GLSRC)gxshade.h:$(GLSRC)gsrefct.h
$(GLSRC)gxshade.h:$(GLSRC)gp.h
-$(GLSRC)gxshade.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxshade.h:$(GLSRC)memento.h
+$(GLSRC)gxshade.h:$(GLSRC)memory_.h
$(GLSRC)gxshade.h:$(GLSRC)gsstruct.h
$(GLSRC)gxshade.h:$(GLSRC)gxsync.h
+$(GLSRC)gxshade.h:$(GLSRC)gxbitmap.h
$(GLSRC)gxshade.h:$(GLSRC)srdline.h
$(GLSRC)gxshade.h:$(GLSRC)scommon.h
-$(GLSRC)gxshade.h:$(GLSRC)memento.h
-$(GLSRC)gxshade.h:$(GLSRC)gsbitmap.h
$(GLSRC)gxshade.h:$(GLSRC)gsfname.h
-$(GLSRC)gxshade.h:$(GLSRC)gsstype.h
+$(GLSRC)gxshade.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gxshade.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxshade.h:$(GLSRC)gxarith.h
$(GLSRC)gxshade.h:$(GLSRC)stat_.h
-$(GLSRC)gxshade.h:$(GLSRC)gsmemory.h
$(GLSRC)gxshade.h:$(GLSRC)gpsync.h
-$(GLSRC)gxshade.h:$(GLSRC)memory_.h
+$(GLSRC)gxshade.h:$(GLSRC)gsstype.h
+$(GLSRC)gxshade.h:$(GLSRC)gsmemory.h
$(GLSRC)gxshade.h:$(GLSRC)gpgetenv.h
-$(GLSRC)gxshade.h:$(GLSRC)gslibctx.h
$(GLSRC)gxshade.h:$(GLSRC)gscdefs.h
-$(GLSRC)gxshade.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gxshade.h:$(GLSRC)stdio_.h
+$(GLSRC)gxshade.h:$(GLSRC)gslibctx.h
$(GLSRC)gxshade.h:$(GLSRC)gxcindex.h
-$(GLSRC)gxshade.h:$(GLSRC)gsgstate.h
+$(GLSRC)gxshade.h:$(GLSRC)stdio_.h
$(GLSRC)gxshade.h:$(GLSRC)stdint_.h
$(GLSRC)gxshade.h:$(GLSRC)gssprintf.h
-$(GLSRC)gxshade.h:$(GLSRC)std.h
$(GLSRC)gxshade.h:$(GLSRC)gstypes.h
+$(GLSRC)gxshade.h:$(GLSRC)std.h
$(GLSRC)gxshade.h:$(GLSRC)stdpre.h
$(GLSRC)gxshade.h:$(GLGEN)arch.h
+$(GLSRC)gxshade.h:$(GLSRC)gs_dll_call.h
$(GLSRC)gxshade4.h:$(GLSRC)gxshade.h
$(GLSRC)gxshade4.h:$(GLSRC)gsshade.h
$(GLSRC)gxshade4.h:$(GLSRC)gscicach.h
$(GLSRC)gxshade4.h:$(GLSRC)gspath.h
$(GLSRC)gxshade4.h:$(GLSRC)gxmatrix.h
$(GLSRC)gxshade4.h:$(GLSRC)gxdevcli.h
-$(GLSRC)gxshade4.h:$(GLSRC)gxtext.h
+$(GLSRC)gxshade4.h:$(GLSRC)gxcmap.h
$(GLSRC)gxshade4.h:$(GLSRC)gscie.h
+$(GLSRC)gxshade4.h:$(GLSRC)gxtext.h
$(GLSRC)gxshade4.h:$(GLSRC)gstext.h
$(GLSRC)gxshade4.h:$(GLSRC)gsnamecl.h
$(GLSRC)gxshade4.h:$(GLSRC)gstparam.h
-$(GLSRC)gxshade4.h:$(GLSRC)gxfcache.h
+$(GLSRC)gxshade4.h:$(GLSRC)gxfmap.h
$(GLSRC)gxshade4.h:$(GLSRC)stream.h
-$(GLSRC)gxshade4.h:$(GLSRC)gxcspace.h
-$(GLSRC)gxshade4.h:$(GLSRC)gsropt.h
$(GLSRC)gxshade4.h:$(GLSRC)gsfunc.h
-$(GLSRC)gxshade4.h:$(GLSRC)gxrplane.h
+$(GLSRC)gxshade4.h:$(GLSRC)gxcspace.h
$(GLSRC)gxshade4.h:$(GLSRC)gxctable.h
$(GLSRC)gxshade4.h:$(GLSRC)gxiodev.h
-$(GLSRC)gxshade4.h:$(GLSRC)gsuid.h
-$(GLSRC)gxshade4.h:$(GLSRC)gxcmap.h
+$(GLSRC)gxshade4.h:$(GLSRC)gxrplane.h
+$(GLSRC)gxshade4.h:$(GLSRC)gscsel.h
+$(GLSRC)gxshade4.h:$(GLSRC)gxfcache.h
+$(GLSRC)gxshade4.h:$(GLSRC)gsfont.h
$(GLSRC)gxshade4.h:$(GLSRC)gsimage.h
$(GLSRC)gxshade4.h:$(GLSRC)gsdcolor.h
-$(GLSRC)gxshade4.h:$(GLSRC)gxdda.h
$(GLSRC)gxshade4.h:$(GLSRC)gxcvalue.h
-$(GLSRC)gxshade4.h:$(GLSRC)gsfont.h
-$(GLSRC)gxshade4.h:$(GLSRC)gxfmap.h
-$(GLSRC)gxshade4.h:$(GLSRC)gxftype.h
+$(GLSRC)gxshade4.h:$(GLSRC)gxbcache.h
+$(GLSRC)gxshade4.h:$(GLSRC)gsropt.h
+$(GLSRC)gxshade4.h:$(GLSRC)gxdda.h
+$(GLSRC)gxshade4.h:$(GLSRC)gxpath.h
$(GLSRC)gxshade4.h:$(GLSRC)gxfrac.h
+$(GLSRC)gxshade4.h:$(GLSRC)gxtmap.h
+$(GLSRC)gxshade4.h:$(GLSRC)gxftype.h
$(GLSRC)gxshade4.h:$(GLSRC)gscms.h
-$(GLSRC)gxshade4.h:$(GLSRC)gscspace.h
-$(GLSRC)gxshade4.h:$(GLSRC)gxpath.h
-$(GLSRC)gxshade4.h:$(GLSRC)gxbcache.h
-$(GLSRC)gxshade4.h:$(GLSRC)gsdevice.h
-$(GLSRC)gxshade4.h:$(GLSRC)gxarith.h
-$(GLSRC)gxshade4.h:$(GLSRC)gspenum.h
-$(GLSRC)gxshade4.h:$(GLSRC)gxhttile.h
$(GLSRC)gxshade4.h:$(GLSRC)gsrect.h
$(GLSRC)gxshade4.h:$(GLSRC)gslparam.h
+$(GLSRC)gxshade4.h:$(GLSRC)gsdevice.h
+$(GLSRC)gxshade4.h:$(GLSRC)gscpm.h
+$(GLSRC)gxshade4.h:$(GLSRC)gscspace.h
+$(GLSRC)gxshade4.h:$(GLSRC)gsgstate.h
$(GLSRC)gxshade4.h:$(GLSRC)gsxfont.h
-$(GLSRC)gxshade4.h:$(GLSRC)gsiparam.h
$(GLSRC)gxshade4.h:$(GLSRC)gsdsrc.h
-$(GLSRC)gxshade4.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gxshade4.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gxshade4.h:$(GLSRC)gscpm.h
+$(GLSRC)gxshade4.h:$(GLSRC)gsiparam.h
$(GLSRC)gxshade4.h:$(GLSRC)gxfixed.h
-$(GLSRC)gxshade4.h:$(GLSRC)gsrefct.h
+$(GLSRC)gxshade4.h:$(GLSRC)gscompt.h
+$(GLSRC)gxshade4.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gxshade4.h:$(GLSRC)gspenum.h
+$(GLSRC)gxshade4.h:$(GLSRC)gxhttile.h
$(GLSRC)gxshade4.h:$(GLSRC)gsparam.h
+$(GLSRC)gxshade4.h:$(GLSRC)gsrefct.h
$(GLSRC)gxshade4.h:$(GLSRC)gp.h
-$(GLSRC)gxshade4.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxshade4.h:$(GLSRC)memento.h
+$(GLSRC)gxshade4.h:$(GLSRC)memory_.h
+$(GLSRC)gxshade4.h:$(GLSRC)gsuid.h
$(GLSRC)gxshade4.h:$(GLSRC)gsstruct.h
$(GLSRC)gxshade4.h:$(GLSRC)gxsync.h
+$(GLSRC)gxshade4.h:$(GLSRC)gxbitmap.h
$(GLSRC)gxshade4.h:$(GLSRC)srdline.h
$(GLSRC)gxshade4.h:$(GLSRC)scommon.h
-$(GLSRC)gxshade4.h:$(GLSRC)memento.h
-$(GLSRC)gxshade4.h:$(GLSRC)gscsel.h
-$(GLSRC)gxshade4.h:$(GLSRC)gsbitmap.h
$(GLSRC)gxshade4.h:$(GLSRC)gsfname.h
-$(GLSRC)gxshade4.h:$(GLSRC)gsstype.h
+$(GLSRC)gxshade4.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gxshade4.h:$(GLSRC)gsccolor.h
+$(GLSRC)gxshade4.h:$(GLSRC)gxarith.h
$(GLSRC)gxshade4.h:$(GLSRC)stat_.h
-$(GLSRC)gxshade4.h:$(GLSRC)gxtmap.h
-$(GLSRC)gxshade4.h:$(GLSRC)gsmemory.h
$(GLSRC)gxshade4.h:$(GLSRC)gpsync.h
-$(GLSRC)gxshade4.h:$(GLSRC)memory_.h
+$(GLSRC)gxshade4.h:$(GLSRC)gsstype.h
+$(GLSRC)gxshade4.h:$(GLSRC)gsmemory.h
$(GLSRC)gxshade4.h:$(GLSRC)gpgetenv.h
-$(GLSRC)gxshade4.h:$(GLSRC)gslibctx.h
$(GLSRC)gxshade4.h:$(GLSRC)gscdefs.h
-$(GLSRC)gxshade4.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gxshade4.h:$(GLSRC)stdio_.h
-$(GLSRC)gxshade4.h:$(GLSRC)gscompt.h
+$(GLSRC)gxshade4.h:$(GLSRC)gslibctx.h
$(GLSRC)gxshade4.h:$(GLSRC)gxcindex.h
-$(GLSRC)gxshade4.h:$(GLSRC)gsgstate.h
+$(GLSRC)gxshade4.h:$(GLSRC)stdio_.h
+$(GLSRC)gxshade4.h:$(GLSRC)gsccode.h
$(GLSRC)gxshade4.h:$(GLSRC)stdint_.h
$(GLSRC)gxshade4.h:$(GLSRC)gssprintf.h
-$(GLSRC)gxshade4.h:$(GLSRC)gsccode.h
-$(GLSRC)gxshade4.h:$(GLSRC)std.h
$(GLSRC)gxshade4.h:$(GLSRC)gstypes.h
+$(GLSRC)gxshade4.h:$(GLSRC)std.h
$(GLSRC)gxshade4.h:$(GLSRC)stdpre.h
$(GLSRC)gxshade4.h:$(GLGEN)arch.h
+$(GLSRC)gxshade4.h:$(GLSRC)gs_dll_call.h
diff --git a/base/locale_.h b/base/locale_.h
index 832935f3..9bfeaf9a 100644
--- a/base/locale_.h
+++ b/base/locale_.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/lwf_jp2.mak b/base/lwf_jp2.mak
index 0905efca..bfe67747 100644
--- a/base/lwf_jp2.mak
+++ b/base/lwf_jp2.mak
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2019 Artifex Software, Inc.
+# Copyright (C) 2001-2020 Artifex Software, Inc.
# All Rights Reserved.
#
# This software is provided AS-IS with no warranty, either express or
diff --git a/base/malloc_.h b/base/malloc_.h
index 86493a4d..0bc61776 100644
--- a/base/malloc_.h
+++ b/base/malloc_.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -27,25 +27,21 @@
#include "bobbin.h"
#include "memento.h"
-#ifdef __TURBOC__
-# include <alloc.h>
-#else
-# if defined(BSD4_2) || defined(apollo) || defined(vax) || defined(sequent) || defined(UTEK)
-# if defined(_POSIX_SOURCE) || (defined(__STDC__) && (!defined(sun) || defined(__svr4__))) /* >>> */
-# include <stdlib.h>
-# else /* Ancient breakage */
+#if defined(BSD4_2) || defined(apollo) || defined(vax) || defined(sequent) || defined(UTEK)
+# if defined(_POSIX_SOURCE) || (defined(__STDC__) && (!defined(sun) || defined(__svr4__))) /* >>> */
+# include <stdlib.h>
+# else /* Ancient breakage */
extern char *malloc();
extern void free();
-# endif
+# endif
+#else
+# if defined(_HPUX_SOURCE) || defined(__CONVEX__) || defined(__convex__) || defined(__OSF__) || defined(__386BSD__) || defined(_POSIX_SOURCE) || defined(__STDC__) || defined(VMS)
+# include <stdlib.h>
# else
-# if defined(_HPUX_SOURCE) || defined(__CONVEX__) || defined(__convex__) || defined(__OSF__) || defined(__386BSD__) || defined(_POSIX_SOURCE) || defined(__STDC__) || defined(VMS)
-# include <stdlib.h>
-# else
-# include <malloc.h>
-# endif /* !_HPUX_SOURCE, ... */
-# endif /* !BSD4_2, ... */
-#endif /* !__TURBOC__ */
+# include <malloc.h>
+# endif /* !_HPUX_SOURCE, ... */
+#endif /* !BSD4_2, ... */
/* (At least some versions of) Linux don't have a working realloc.... */
#ifdef linux
diff --git a/base/math_.h b/base/math_.h
index 0b6c8b1b..34af3f8d 100644
--- a/base/math_.h
+++ b/base/math_.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/memento.c b/base/memento.c
index 50eed104..ff37b492 100644
--- a/base/memento.c
+++ b/base/memento.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2018 Artifex Software, Inc.
+/* Copyright (C) 2009-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/memento.h b/base/memento.h
index b822479f..d4ff811d 100644
--- a/base/memento.h
+++ b/base/memento.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2018 Artifex Software, Inc.
+/* Copyright (C) 2009-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/memory_.h b/base/memory_.h
index a9a1d829..7fb6f7ab 100644
--- a/base/memory_.h
+++ b/base/memory_.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -27,53 +27,44 @@
****** unlike memcmp which returns -1, 0, or 1.
******/
-#ifdef __TURBOC__
-/* Define inline functions */
-# ifdef __WIN32__
-# define memcmp_inline(b1,b2,len) memcmp(b1,b2,len)
-# else
-# define memcmp_inline(b1,b2,len) __memcmp__(b1,b2,len)
-# endif
-# include <mem.h>
+#define memcmp_inline(b1,b2,len) memcmp(b1,b2,len)
+
+/*
+ * Apparently the newer VMS compilers include prototypes
+ * for the mem... routines in <string.h>. Unfortunately,
+ * gcc lies on Sun systems: it defines __STDC__ even if
+ * the header files in /usr/include are broken.
+ * However, Solaris systems, which define __svr4__, do have
+ * correct header files.
+ */
+/*
+ * The exceptions vastly outnumber the BSD4_2 "rule":
+ * these tests should be the other way around....
+ */
+
+#if defined(VMS) || defined(_POSIX_SOURCE) || (defined(__STDC__) && (!defined(sun) || defined(__svr4__))) || defined(_HPUX_SOURCE) || defined(__WATCOMC__) || defined(THINK_C) || defined(bsdi) || defined(__FreeBSD) || (defined(_MSC_VER) && _MSC_VER >= 1000)
+# include <string.h>
#else
- /* Not Turbo C, no inline functions */
-# define memcmp_inline(b1,b2,len) memcmp(b1,b2,len)
- /*
- * Apparently the newer VMS compilers include prototypes
- * for the mem... routines in <string.h>. Unfortunately,
- * gcc lies on Sun systems: it defines __STDC__ even if
- * the header files in /usr/include are broken.
- * However, Solaris systems, which define __svr4__, do have
- * correct header files.
- */
- /*
- * The exceptions vastly outnumber the BSD4_2 "rule":
- * these tests should be the other way around....
- */
-# if defined(VMS) || defined(_POSIX_SOURCE) || (defined(__STDC__) && (!defined(sun) || defined(__svr4__))) || defined(_HPUX_SOURCE) || defined(__WATCOMC__) || defined(THINK_C) || defined(bsdi) || defined(__FreeBSD) || (defined(_MSC_VER) && _MSC_VER >= 1000)
-# include <string.h>
-# else
-# if defined(BSD4_2) || defined(UTEK)
+# if defined(BSD4_2) || defined(UTEK)
extern bcopy(), bcmp(), bzero();
-# define memcpy(dest,src,len) bcopy(src,dest,len)
-# define memcmp(b1,b2,len) bcmp(b1,b2,len)
- /* Define our own versions of missing routines (in gsmisc.c). */
-# define MEMORY__NEED_MEMMOVE
-# include <sys/types.h> /* for size_t */
-# define MEMORY__NEED_MEMSET
-# if defined(UTEK)
-# define MEMORY__NEED_MEMCHR
-# endif /* UTEK */
-# else
-# include <memory.h>
-# if defined(__SVR3) || defined(sun) /* Not sure this is right.... */
-# define MEMORY__NEED_MEMMOVE
-# include <sys/types.h> /* for size_t */
-# endif /* __SVR3 or sun */
-# endif /* BSD4_2 or UTEK */
-# endif /* VMS, POSIX, ... */
-#endif /* !__TURBOC__ */
+# define memcpy(dest,src,len) bcopy(src,dest,len)
+# define memcmp(b1,b2,len) bcmp(b1,b2,len)
+ /* Define our own versions of missing routines (in gsmisc.c). */
+# define MEMORY__NEED_MEMMOVE
+# include <sys/types.h> /* for size_t */
+# define MEMORY__NEED_MEMSET
+# if defined(UTEK)
+# define MEMORY__NEED_MEMCHR
+# endif /* UTEK */
+# else
+# include <memory.h>
+# if defined(__SVR3) || defined(sun) /* Not sure this is right.... */
+# define MEMORY__NEED_MEMMOVE
+# include <sys/types.h> /* for size_t */
+# endif /* __SVR3 or sun */
+# endif /* BSD4_2 or UTEK */
+#endif /* VMS, POSIX, ... */
/*
* If we are profiling, substitute our own versions of memset, memcpy,
diff --git a/base/mkromfs.c b/base/mkromfs.c
index 54e33f28..7a04139e 100644
--- a/base/mkromfs.c
+++ b/base/mkromfs.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -161,6 +161,18 @@ int gp_stat_impl(const gs_memory_t *mem, const char *path, struct _stat64 *buf)
}
#endif
+int
+gs_add_control_path_flags(const gs_memory_t *mem, gs_path_control_t type, const char *path, int flags)
+{
+ return 0;
+}
+
+int
+gs_remove_control_path_flags(const gs_memory_t *mem, gs_path_control_t type, const char *path, int flags)
+{
+ return 0;
+}
+
/*******************************************************************************
* The following are non-redirected printing functions to avoid the need for
* these included from gsmisc.c (unix gp_ functions, among others, use if_debug).
@@ -178,7 +190,7 @@ int outprintf(const gs_memory_t *mem, const char *fmt, ...)
va_start(args, fmt);
count = vsnprintf(buf, sizeof(buf), fmt, args);
- if (count >= sizeof(buf) || count < 0) { /* C99 || MSVC */
+ if (count < 0 || count >= sizeof(buf)) { /* MSVC || C99 */
fwrite(buf, 1, sizeof(buf) - 1, stdout);
fwrite(msg_truncated, 1, sizeof(msg_truncated) - 1, stdout);
} else {
@@ -197,7 +209,7 @@ int errprintf_nomem(const char *fmt, ...)
va_start(args, fmt);
count = vsnprintf(buf, sizeof(buf), fmt, args);
- if (count >= sizeof(buf) || count < 0) { /* C99 || MSVC */
+ if (count < 0 || count >= sizeof(buf)) { /* MSVC || C99 */
fwrite(buf, 1, sizeof(buf) - 1, stderr);
fwrite(msg_truncated, 1, sizeof(msg_truncated) - 1, stderr);
} else {
@@ -216,7 +228,7 @@ int errprintf(const gs_memory_t *mem, const char *fmt, ...)
va_start(args, fmt);
count = vsnprintf(buf, sizeof(buf), fmt, args);
- if (count >= sizeof(buf) || count < 0) { /* C99 || MSVC */
+ if (count < 0 || count >= sizeof(buf)) { /* MSVC || C99 */
fwrite(buf, 1, sizeof(buf) - 1, stderr);
fwrite(msg_truncated, 1, sizeof(msg_truncated) - 1, stderr);
} else {
@@ -521,6 +533,9 @@ static void
prepare_splits(split_data *splits)
{
if (splits->num_splits) {
+ /* Limit splits->num_splits to something merely insane to avoid overflow. */
+ if (splits->num_splits > (1<<(8*sizeof(int)-2))/sizeof(unsigned long))
+ splits->num_splits = (1<<(8*sizeof(int)-2))/sizeof(unsigned long);
/* Make sure we have a properly sized size array. */
if (splits->num_splits > splits->max_splits) {
unsigned long *sizes = realloc(splits->sizes, sizeof(unsigned long) * splits->num_splits);
@@ -1139,8 +1154,8 @@ static unsigned long pscompact_getcompactedblock(pscompstate *psc, unsigned char
switch (psc->state) {
case PSC_BufferIn:
c = psc->pgetc(psc->file);
- if ((c <= 32) || (c == EOF)) {
- /* Whitespace */
+ if (c <= 32) {
+ /* Whitespace (or EOF) */
if (psc->inpos == 0) {
/* Leading whitespace, just bin it */
break;
@@ -1393,6 +1408,7 @@ static unsigned long pscompact_getcompactedblock(pscompstate *psc, unsigned char
{
unsigned char c = psc->bufferout[psc->outpos++];
if (psc->noescape) {
+ /* No change */
} else if ((c == 10) && (psc->outpos < psc->outend)) {
if (!psc->escaping) {
c = '\\';
diff --git a/base/msvccmd.mak b/base/msvccmd.mak
index da0d8c2c..7d5980e8 100644
--- a/base/msvccmd.mak
+++ b/base/msvccmd.mak
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2019 Artifex Software, Inc.
+# Copyright (C) 2001-2020 Artifex Software, Inc.
# All Rights Reserved.
#
# This software is provided AS-IS with no warranty, either express or
@@ -234,6 +234,7 @@ GENOPT=$(CP) $(CD) $(CT) $(CS) $(WARNOPT) $(VC8WARN) /nologo $(CMT)
CCFLAGS=$(PLATOPT) $(FPFLAGS) $(CPFLAGS) $(CFLAGS) $(XCFLAGS) $(MSINCFLAGS) $(SBRFLAGS)
CC=$(COMP) /c $(CCFLAGS) $(COMPILE_FULL_OPTIMIZED) @$(GLGENDIR)\ccf32.tr
+CXX=$(CXX) /c $(CCFLAGS) $(COMPILE_FULL_OPTIMIZED) @$(GLGENDIR)\ccf32.tr
CPP=$(COMPCPP) /c $(CCFLAGS) @$(GLGENDIR)\ccf32.tr
!if $(MAKEDLL)
WX=$(COMPILE_FOR_DLL)
diff --git a/base/msvclib.mak b/base/msvclib.mak
index 5b1894b2..c0396232 100644
--- a/base/msvclib.mak
+++ b/base/msvclib.mak
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2019 Artifex Software, Inc.
+# Copyright (C) 2001-2020 Artifex Software, Inc.
# All Rights Reserved.
#
# This software is provided AS-IS with no warranty, either express or
@@ -584,6 +584,35 @@ MSVC_VERSION=15
# VS2019 (Toolset v142)
MSVC_VERSION=16
!endif
+!if "$(_NMAKE_VER)" == "14.24.28315.0"
+# VS2019 (Toolset v142 - update)
+MSVC_VERSION=16
+MS_TOOLSET_VERSION=14.24.28315
+!endif
+!if "$(_NMAKE_VER)" == "14.24.28316.0"
+# VS2019 (Toolset v142 - update)
+MSVC_VERSION=16
+MS_TOOLSET_VERSION=14.24.28316
+!endif
+!if "$(_NMAKE_VER)" == "14.25.28614.0"
+# VS2019 (Toolset v142 - update)
+MSVC_VERSION=16
+MS_TOOLSET_VERSION=14.25.28614
+!endif
+!if "$(_NMAKE_VER)" == "14.26.28805.0"
+# VS2019 (Toolset v142 - update)
+MSVC_VERSION=16
+MS_TOOLSET_VERSION=14.26.28805
+!endif
+!if "$(_NMAKE_VER)" == "14.26.28806.0"
+# VS2019 (Toolset v142 - update)
+MSVC_VERSION=16
+MS_TOOLSET_VERSION=14.26.28806
+!endif
+!if "$(_NMAKE_VER)" == "14.27.29111.0"
+# VS2019 (Toolset v142)
+MSVC_VERSION=16
+!endif
!endif
!ifndef MSVC_VERSION
diff --git a/base/msvctail.mak b/base/msvctail.mak
index 4650eaa2..9f6f2c5e 100644
--- a/base/msvctail.mak
+++ b/base/msvctail.mak
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2019 Artifex Software, Inc.
+# Copyright (C) 2001-2020 Artifex Software, Inc.
# All Rights Reserved.
#
# This software is provided AS-IS with no warranty, either express or
diff --git a/base/ocr.mak b/base/ocr.mak
new file mode 100644
index 00000000..9d58d008
--- /dev/null
+++ b/base/ocr.mak
@@ -0,0 +1,46 @@
+# Copyright (C) 2001-2020 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., 1305 Grant Avenue - Suite 200, Novato,
+# CA 94945, U.S.A., +1(415)492-9861, for further information.
+#
+# makefile for OCR code.
+# Users of this makefile must define the following:
+# LEPTONICALIBDIR - the leptonica source directory
+# TESSERACTLIBDIR - the tesseract source directory
+# OCR_VERSION - which OCR implementation are we using.
+
+# Define the name of this makefile.
+LIBOCR_MAK=$(GLSRC)ocr.mak $(TOP_MAKEFILES)
+
+$(GLGEN)libocr.dev : $(LIBOCR_MAK) $(ECHOGS_XE)$(MAKEDIRS)\
+ $(GLGEN)libocr_$(OCR_VERSION).dev
+ $(CP_) $(GLGEN)libocr_$(OCR_VERSION).dev $(GLGEN)libocr.dev
+
+# Tesseract veneer.
+$(GLGEN)tessocr.$(OBJ) : $(GLSRC)tessocr.cpp $(GLSRC)tessocr.h $(LIBOCR_MAK) \
+ $(gsmemory_h) $(gxiodev_h) $(stream_h) $(TESSDEPS)
+ $(GLCC) $(D_)LEPTONICA_INTERCEPT_MALLOC=1$(_D) $(TESSINCLUDES) $(I_)$(LEPTONICADIR)$(D)src$(_I) $(GLO_)tessocr.$(OBJ) $(C_) $(GLSRC)tessocr.cpp
+
+# 0 = No version.
+
+# 1 = Tesseract/Leptonica
+$(GLGEN)libocr_1.dev : $(LIBOCR_MAK) $(ECHOGS_XE) $(MAKEDIRS) \
+ $(GLGEN)tessocr.$(OBJ) $(LEPTONICA_OBJS) $(TESSERACT_OBJS_1) \
+ $(TESSERACT_OBJS_2) $(TESSERACT_OBJS_3) $(TESSERACT_OBJS_4) \
+ $(TESSERACT_LEGACY)
+ $(SETMOD) $(GLGEN)libocr_1 $(GLGEN)tessocr.$(OBJ)
+ $(ADDMOD) $(GLGEN)libocr_1 $(LEPTONICA_OBJS)
+ $(ADDMOD) $(GLGEN)libocr_1 $(TESSERACT_OBJS_1)
+ $(ADDMOD) $(GLGEN)libocr_1 $(TESSERACT_OBJS_2)
+ $(ADDMOD) $(GLGEN)libocr_1 $(TESSERACT_OBJS_3)
+ $(ADDMOD) $(GLGEN)libocr_1 $(TESSERACT_OBJS_4)
+ $(ADDMOD) $(GLGEN)libocr_1 $(TESSERACT_LEGACY)
diff --git a/base/openjpeg.mak b/base/openjpeg.mak
index f02bd3fb..bb75f0f9 100644
--- a/base/openjpeg.mak
+++ b/base/openjpeg.mak
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2019 Artifex Software, Inc.
+# Copyright (C) 2001-2020 Artifex Software, Inc.
# All Rights Reserved.
#
# This software is provided AS-IS with no warranty, either express or
diff --git a/base/openvms.mak b/base/openvms.mak
index a3cab814..8152b944 100644
--- a/base/openvms.mak
+++ b/base/openvms.mak
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2019 Artifex Software, Inc.
+# Copyright (C) 2001-2020 Artifex Software, Inc.
# All Rights Reserved.
#
# This software is provided AS-IS with no warranty, either express or
diff --git a/base/openvms.mmk b/base/openvms.mmk
index 61c53821..65c2c65f 100644
--- a/base/openvms.mmk
+++ b/base/openvms.mmk
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2019 Artifex Software, Inc.
+# Copyright (C) 2001-2020 Artifex Software, Inc.
# All Rights Reserved.
#
# This software is provided AS-IS with no warranty, either express or
diff --git a/base/pack_ps.c b/base/pack_ps.c
index 764ae3b3..2ab4117c 100644
--- a/base/pack_ps.c
+++ b/base/pack_ps.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/pcwin.mak b/base/pcwin.mak
index 535b6403..462db460 100644
--- a/base/pcwin.mak
+++ b/base/pcwin.mak
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2019 Artifex Software, Inc.
+# Copyright (C) 2001-2020 Artifex Software, Inc.
# All Rights Reserved.
#
# This software is provided AS-IS with no warranty, either express or
diff --git a/base/pipe_.h b/base/pipe_.h
index 41a640a8..e6dce031 100644
--- a/base/pipe_.h
+++ b/base/pipe_.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/png.mak b/base/png.mak
index 899e1785..2d7b3806 100644
--- a/base/png.mak
+++ b/base/png.mak
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2019 Artifex Software, Inc.
+# Copyright (C) 2001-2020 Artifex Software, Inc.
# All Rights Reserved.
#
# This software is provided AS-IS with no warranty, either express or
diff --git a/base/png_.h b/base/png_.h
index c9933526..836f6e83 100644
--- a/base/png_.h
+++ b/base/png_.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/ramfs.c b/base/ramfs.c
index b8198b78..66893075 100644
--- a/base/ramfs.c
+++ b/base/ramfs.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/ramfs.h b/base/ramfs.h
index 4ff228b2..09816ba1 100644
--- a/base/ramfs.h
+++ b/base/ramfs.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/sa85d.c b/base/sa85d.c
index 659b4290..f9fa57fe 100644
--- a/base/sa85d.c
+++ b/base/sa85d.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/sa85d.h b/base/sa85d.h
index 6e746224..32efeb8d 100644
--- a/base/sa85d.h
+++ b/base/sa85d.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -41,7 +41,14 @@ typedef struct stream_A85D_state_s {
(ss)->min_left = 1; \
(ss)->word = 0; \
(ss)->odd = 0; \
- /* pdf_rules should not be initialized here */ \
+ /* pdf_rules should not be initialized here. This flag is initialised in\
+ * zA85D to either true or false, and this inline function is called *after*\
+ * that in s_A85D_init to do the remaining initialisation. However, this\
+ * inline function is also called from gs_scan_token to handle inline\
+ * ASCII85 strings. These are not to be interpreted using PDF rules\
+ * and so we must not set the flag here, but in the relevant calling\
+ * functions.\
+ */ \
(ss)->require_eod=false; \
END
extern const stream_template s_A85D_template;
diff --git a/base/sa85x.h b/base/sa85x.h
index 97abe27d..aec328c1 100644
--- a/base/sa85x.h
+++ b/base/sa85x.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/saes.c b/base/saes.c
index 31286d53..c580b849 100644
--- a/base/saes.c
+++ b/base/saes.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/saes.h b/base/saes.h
index 0c25ef63..7cf9a5b7 100644
--- a/base/saes.h
+++ b/base/saes.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/sarc4.c b/base/sarc4.c
index d9b80fce..12c9fe59 100644
--- a/base/sarc4.c
+++ b/base/sarc4.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/sarc4.h b/base/sarc4.h
index 0c4a86bc..75decd14 100644
--- a/base/sarc4.h
+++ b/base/sarc4.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/sbcp.c b/base/sbcp.c
index 6b0383ca..f61db1b1 100644
--- a/base/sbcp.c
+++ b/base/sbcp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/sbcp.h b/base/sbcp.h
index 60ae9ba6..2c20e1f1 100644
--- a/base/sbcp.h
+++ b/base/sbcp.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/sbtx.h b/base/sbtx.h
index 493eddb8..82850766 100644
--- a/base/sbtx.h
+++ b/base/sbtx.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/scanchar.h b/base/scanchar.h
index fe7b243d..ca5ec289 100644
--- a/base/scanchar.h
+++ b/base/scanchar.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/scantab.c b/base/scantab.c
index 1c275df8..7240d736 100644
--- a/base/scantab.c
+++ b/base/scantab.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/scf.h b/base/scf.h
index 14798439..9ee9fa45 100644
--- a/base/scf.h
+++ b/base/scf.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/scfd.c b/base/scfd.c
index 00a74205..97fa96b6 100644
--- a/base/scfd.c
+++ b/base/scfd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -305,9 +305,9 @@ s_CFD_process(stream_state * st, stream_cursor_read * pr,
(void)rlimit;
if_debug8m('w', ss->memory,
"[w]CFD_process top: eol_count=%d, k_left=%d, rows_left=%d\n"
- " bits=0x%lx, bits_left=%d, read %u, wrote %u%s\n",
+ " bits="PRI_INTPTR", bits_left=%d, read %u, wrote %u%s\n",
eol_count, k_left, rows_left,
- (ulong) bits, bits_left,
+ (intptr_t) bits, bits_left,
(uint) (p - rstart), (uint) (pw->ptr - wstart),
(ss->skipping_damage ? ", skipping damage" : ""));
}
diff --git a/base/scfdgen.c b/base/scfdgen.c
index f1ac37b6..ff67c6a5 100644
--- a/base/scfdgen.c
+++ b/base/scfdgen.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/scfdtab.c b/base/scfdtab.c
index 72e882ab..a3d14d2f 100644
--- a/base/scfdtab.c
+++ b/base/scfdtab.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/scfe.c b/base/scfe.c
index fbb3bde6..43723520 100644
--- a/base/scfe.c
+++ b/base/scfe.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -212,9 +212,9 @@ s_CFE_process(stream_state * st, stream_cursor_read * pr,
if_debug2m('w', ss->memory, "[w]CFE: read_count = %d, write_count=%d,\n",
ss->read_count, ss->write_count);
- if_debug6m('w', ss->memory, " pr = 0x%lx(%d)0x%lx, pw = 0x%lx(%d)0x%lx\n",
- (ulong) pr->ptr, (int)(rlimit - pr->ptr), (ulong) rlimit,
- (ulong) pw->ptr, (int)(wlimit - pw->ptr), (ulong) wlimit);
+ if_debug6m('w', ss->memory, " pr = "PRI_INTPTR"(%d)"PRI_INTPTR", pw = "PRI_INTPTR"(%d)"PRI_INTPTR"\n",
+ (intptr_t) pr->ptr, (int)(rlimit - pr->ptr), (intptr_t) rlimit,
+ (intptr_t) pw->ptr, (int)(wlimit - pw->ptr), (intptr_t) wlimit);
if (ss->write_count) {
/* Copy more of an encoded line to the caller. */
int wcount = wlimit - pw->ptr;
@@ -360,10 +360,11 @@ s_CFE_process(stream_state * st, stream_cursor_read * pr,
pw->ptr = hc_put_last_bits((stream_hc_state *) ss, q);
}
out:
- if_debug9m('w', ss->memory, "[w]CFE exit %d: read_count = %d, write_count = %d,\n pr = 0x%lx(%d)0x%lx; pw = 0x%lx(%d)0x%lx\n",
+ if_debug9m('w', ss->memory, "[w]CFE exit %d: read_count = %d, write_count = %d,\n"
+ " pr = "PRI_INTPTR"(%d)"PRI_INTPTR"; pw = "PRI_INTPTR"(%d)"PRI_INTPTR"\n",
status, ss->read_count, ss->write_count,
- (ulong) pr->ptr, (int)(rlimit - pr->ptr), (ulong) rlimit,
- (ulong) pw->ptr, (int)(wlimit - pw->ptr), (ulong) wlimit);
+ (intptr_t) pr->ptr, (int)(rlimit - pr->ptr), (intptr_t) rlimit,
+ (intptr_t) pw->ptr, (int)(wlimit - pw->ptr), (intptr_t) wlimit);
#if defined(DEBUG) && !defined(GS_THREADSAFE)
if (pr->ptr > rlimit || pw->ptr > wlimit) {
lprintf("Pointer overrun!\n");
diff --git a/base/scfetab.c b/base/scfetab.c
index 12377e9c..d0501030 100644
--- a/base/scfetab.c
+++ b/base/scfetab.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/scfparam.c b/base/scfparam.c
index 8f095233..559bbe51 100644
--- a/base/scfparam.c
+++ b/base/scfparam.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/scfx.h b/base/scfx.h
index 359967a0..5efd021a 100644
--- a/base/scfx.h
+++ b/base/scfx.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/scommon.h b/base/scommon.h
index c37b8b35..6e41259b 100644
--- a/base/scommon.h
+++ b/base/scommon.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/sdcparam.c b/base/sdcparam.c
index 3cca1893..a4ae9048 100644
--- a/base/sdcparam.c
+++ b/base/sdcparam.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/sdcparam.h b/base/sdcparam.h
index 6392378e..722a9eb2 100644
--- a/base/sdcparam.h
+++ b/base/sdcparam.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/sdct.h b/base/sdct.h
index 9e69663f..57e9e87a 100644
--- a/base/sdct.h
+++ b/base/sdct.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/sdctc.c b/base/sdctc.c
index 32525f4e..5a1679d3 100644
--- a/base/sdctc.c
+++ b/base/sdctc.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/sdctd.c b/base/sdctd.c
index 8fdf4c2c..ec54a9e2 100644
--- a/base/sdctd.c
+++ b/base/sdctd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/sdcte.c b/base/sdcte.c
index a9e43327..ecbaf655 100644
--- a/base/sdcte.c
+++ b/base/sdcte.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/sddparam.c b/base/sddparam.c
index d5b690dd..deff93b9 100644
--- a/base/sddparam.c
+++ b/base/sddparam.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/sdeparam.c b/base/sdeparam.c
index 8e591660..5d269028 100644
--- a/base/sdeparam.c
+++ b/base/sdeparam.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/seexec.c b/base/seexec.c
index 9729af0b..4f86d554 100644
--- a/base/seexec.c
+++ b/base/seexec.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -185,7 +185,7 @@ hp: r = *pr;
if (count) {
--p;
status = 0; /* reprocess error next time */
- } else if (*p == '%')
+ } else if (p > pr->ptr && p < pr->limit && *p == '%')
goto hp; /* ignore % */
}
p = q;
diff --git a/base/setjmp_.h b/base/setjmp_.h
index 07251b71..4ba2faa9 100644
--- a/base/setjmp_.h
+++ b/base/setjmp_.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/sfilter.h b/base/sfilter.h
index dc95fb0d..4ba8dd63 100644
--- a/base/sfilter.h
+++ b/base/sfilter.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/sfilter1.c b/base/sfilter1.c
index a7c237e4..c6fac79e 100644
--- a/base/sfilter1.c
+++ b/base/sfilter1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/sfilter2.c b/base/sfilter2.c
index ee348476..86be1d86 100644
--- a/base/sfilter2.c
+++ b/base/sfilter2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/sfxboth.c b/base/sfxboth.c
index f09a6f00..02982ab3 100644
--- a/base/sfxboth.c
+++ b/base/sfxboth.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/sfxcommon.c b/base/sfxcommon.c
index 002651ba..bc2285d9 100644
--- a/base/sfxcommon.c
+++ b/base/sfxcommon.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/sfxfd.c b/base/sfxfd.c
index 599b1d4c..7f9d204c 100644
--- a/base/sfxfd.c
+++ b/base/sfxfd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -123,8 +123,8 @@ sread_fileno(register stream * s, gp_file * file, byte * buf, uint len)
s_std_init(s, buf, len, &p,
(seekable ? s_mode_read + s_mode_seek : s_mode_read));
- if_debug2m('s', s->memory, "[s]read file=0x%lx, fd=%d\n", (ulong) file,
- fileno(file));
+ if_debug2m('s', s->memory, "[s]read file="PRI_INTPTR", fd=%d\n",
+ (intptr_t) file, fileno(file));
s->file = file;
s->file_modes = s->modes;
s->file_offset = 0;
@@ -264,8 +264,8 @@ swrite_fileno(register stream * s, gp_file * file, byte * buf, uint len)
s_std_init(s, buf, len, &p,
(file == stdout ? s_mode_write : s_mode_write + s_mode_seek));
- if_debug2m('s', s->memory, "[s]write file=0x%lx, fd=%d\n", (ulong) file,
- fileno(file));
+ if_debug2m('s', s->memory, "[s]write file="PRI_INTPTR", fd=%d\n",
+ (intptr_t) file, fileno(file));
s->file = file;
s->file_modes = s->modes;
s->file_offset = 0; /* in case we switch to reading later */
@@ -353,8 +353,8 @@ s_fileno_switch(stream * s, bool writing)
if (!(s->file_modes & s_mode_write))
return ERRC;
pos = stell(s);
- if_debug2m('s', s->memory, "[s]switch 0x%lx to write at %ld\n",
- (ulong) s, pos);
+ if_debug2m('s', s->memory, "[s]switch "PRI_INTPTR" to write at %ld\n",
+ (intptr_t)s, pos);
lseek(fd, pos, SEEK_SET); /* pacify OS */
if (modes & s_mode_append) {
sappend_file(s, s->file, s->cbuf, s->cbsize); /* sets position */
@@ -367,8 +367,8 @@ s_fileno_switch(stream * s, bool writing)
if (!(s->file_modes & s_mode_read))
return ERRC;
pos = stell(s);
- if_debug2m('s', s->memory, "[s]switch 0x%lx to read at %ld\n",
- (ulong) s, pos);
+ if_debug2m('s', s->memory, "[s]switch "PRI_INTPTR" to read at %ld\n",
+ (intptr_t) s, pos);
if (sflush(s) < 0)
return ERRC;
lseek(fd, 0L, SEEK_CUR); /* pacify OS */
diff --git a/base/sfxstdio.c b/base/sfxstdio.c
index 7db18944..6201ddf9 100644
--- a/base/sfxstdio.c
+++ b/base/sfxstdio.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -66,7 +66,7 @@ sread_file(register stream * s, gp_file * file, byte * buf, uint len)
gp_clearerr(file);
s_std_init(s, buf, len, &p,
(seekable ? s_mode_read + s_mode_seek : s_mode_read));
- if_debug1m('s', s->memory, "[s]read file=0x%lx\n", (ulong) file);
+ if_debug1m('s', s->memory, "[s]read file="PRI_INTPTR"\n", (intptr_t)file);
s->file = file;
s->file_modes = s->modes;
s->file_offset = 0;
@@ -192,7 +192,7 @@ swrite_file(register stream * s, gp_file * file, byte * buf, uint len)
s_std_init(s, buf, len, &p,
(gp_get_file(file) == stdout ? s_mode_write : s_mode_write + s_mode_seek));
- if_debug1m('s', s->memory, "[s]write file=0x%lx\n", (ulong) file);
+ if_debug1m('s', s->memory, "[s]write file="PRI_INTPTR"\n", (intptr_t) file);
s->file = file;
s->file_modes = s->modes;
s->file_offset = 0; /* in case we switch to reading later */
diff --git a/base/shc.c b/base/shc.c
index ae84d157..60b117dd 100644
--- a/base/shc.c
+++ b/base/shc.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/shc.h b/base/shc.h
index 23ab529d..36dcf1a0 100644
--- a/base/shc.h
+++ b/base/shc.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/sidscale.c b/base/sidscale.c
index 264c5336..9415d854 100644
--- a/base/sidscale.c
+++ b/base/sidscale.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -255,14 +255,14 @@ s_ISpecialDownScale_init(stream_state * st)
/* create intermediate image to hold horizontal zoom */
ss->tmp =
- gs_alloc_byte_array(mem, ss->params.WidthOut * ss->params.spp_interp,
+ gs_alloc_byte_array(mem, (size_t)ss->params.WidthOut * ss->params.spp_interp,
ss->sizeofPixelIn, "image_scale tmp");
/* Allocate buffers for 1 row of source and destination. */
ss->dst =
- gs_alloc_byte_array(mem, ss->params.WidthOut * ss->params.spp_interp,
+ gs_alloc_byte_array(mem, (size_t)ss->params.WidthOut * ss->params.spp_interp,
ss->sizeofPixelOut, "image_scale dst");
ss->src =
- gs_alloc_byte_array(mem, ss->params.WidthIn * ss->params.spp_interp,
+ gs_alloc_byte_array(mem, (size_t)ss->params.WidthIn * ss->params.spp_interp,
ss->sizeofPixelIn, "image_scale src");
if (ss->tmp == 0 || ss->dst == 0 || ss->src == 0) {
s_ISpecialDownScale_release(st);
diff --git a/base/sidscale.h b/base/sidscale.h
index 55514b0c..e74fb399 100644
--- a/base/sidscale.h
+++ b/base/sidscale.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/siinterp.c b/base/siinterp.c
index 435efe0e..591de4c8 100644
--- a/base/siinterp.c
+++ b/base/siinterp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/siinterp.h b/base/siinterp.h
index 9621ebf4..84dc76d3 100644
--- a/base/siinterp.h
+++ b/base/siinterp.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/simscale.c b/base/simscale.c
index 76bb3969..e01b352c 100644
--- a/base/simscale.c
+++ b/base/simscale.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -14,7 +14,6 @@
*/
-/* $Id: simscale.c 6651 2006-03-13 16:18:19Z raph $ */
/* Image mask interpolation filter */
#include "memory_.h"
@@ -22,8204 +21,7 @@
#include "strimpl.h"
#include "sisparam.h"
#include "simscale.h"
-
-/* The 4x4 window lookup table. If code segment space is scarce, this
- would obviously compress really well; for example, it could be stored
- in the "file system" and loaded once per image. */
-const byte imasktab[] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x10, 0x10,
- 0x33, 0x33, 0x10, 0x33, 0x33, 0x33, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xf7, 0xf7, 0xf7, 0xf6,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xf7, 0xff, 0xff, 0xf7,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x80, 0x80, 0x80,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x10, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xf7, 0xf7, 0xf7, 0xf6,
- 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7,
- 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x33, 0x33,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x33, 0x33,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x33, 0x33,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x33, 0x33,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x33, 0x33,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x33, 0x33,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x33, 0x33,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x33, 0x33,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x10, 0x33, 0x33, 0x33, 0x33, 0x33, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x10, 0x10,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xf7, 0xf7, 0xf7, 0xf6,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xf7, 0xf7, 0xf7, 0xf7,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x10, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
- 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xf7, 0xf7, 0xf7, 0xf6,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xf7, 0xf7, 0xf7, 0xf7,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x37, 0x37, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x37, 0x37, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0xce, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x00, 0x08, 0x08, 0x09, 0x08,
- 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0xef, 0xce, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xce, 0xce, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x10, 0x10,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xf7, 0xf7, 0xf7, 0xf6,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xf7, 0xff, 0xff, 0xf7,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xf7, 0xf7, 0xf7, 0xf6,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xf7, 0xff, 0xff, 0xf7,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x33, 0x33,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x33, 0x33,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x33, 0x33,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x33, 0x33,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x33, 0x33,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x33, 0x33,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x33, 0x33,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x33, 0x33,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x10, 0x10,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xf7, 0xf7, 0xf7, 0xf6,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xf7, 0xf7, 0xf7, 0xf7,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
- 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0xcc, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xf7, 0xf7, 0xf7, 0xf6,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xf7, 0xf7, 0xf7, 0xf7,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x37, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x37, 0x37, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0xce, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x00, 0x08, 0x08, 0x09, 0x08,
- 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0xef, 0xce, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xce, 0xce, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xf7, 0xf7, 0xf7, 0xf6,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xf7, 0xff, 0xff, 0xf7,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xf7, 0xf7, 0xf7, 0xf6,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xf7, 0xff, 0xff, 0xf7,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xfc, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xfc, 0xfe,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x11, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x11, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x00, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x00, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x33, 0x33,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x33, 0x33,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x33, 0x33,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x33, 0x33,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x33, 0x33,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x33, 0x33,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x33, 0x33,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x33, 0x33,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x10, 0x33, 0x33, 0x33, 0x33, 0x33, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x10, 0x10,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xf7, 0xf7, 0xf7, 0xf6,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xf7, 0xf7, 0xf7, 0xf7,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
- 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xf7, 0xf7, 0xf7, 0xf6,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xf7, 0xf7, 0xf7, 0xf7,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xfc, 0xfe,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x11, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x11, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x00, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x00, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x37, 0x37, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x37, 0x37, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0xce, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x00, 0x08, 0x08, 0x09, 0x08,
- 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0xef, 0xce, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xce, 0xce, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x10, 0x10,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xf7, 0xf7, 0xf7, 0xf6,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xf7, 0xff, 0xff, 0xf7,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xf7, 0xf7, 0xf7, 0xf6,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xf7, 0xff, 0xff, 0xf7,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xfc, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xfc, 0xfe,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x11, 0x13, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x11, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x00, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x00, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x33, 0x33,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x33, 0x33,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x33, 0x33,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x33, 0x33,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x33, 0x33,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x33, 0x33,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x33, 0x33,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x33, 0x33,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x10, 0x10,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xf7, 0xf7, 0xf7, 0xf6,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xf7, 0xf7, 0xf7, 0xf7,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
- 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xf7, 0xf7, 0xf7, 0xf6,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xf7, 0xf7, 0xf7, 0xf7,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xfc, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xfc, 0xfe,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x11, 0x13, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x11, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x00, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x00, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x37, 0x37, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x37, 0x37, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0xce, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x00, 0x08, 0x08, 0x09, 0x08,
- 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0xef, 0xce, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xce, 0xce, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xf7, 0xf7, 0xf7, 0xf6,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xf7, 0xff, 0xff, 0xf7,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xf7, 0xf7, 0xf7, 0xf6,
- 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7,
- 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x33, 0x33,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x33, 0x33,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x33, 0x33,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x33, 0x33,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x33, 0x33,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x33, 0x33,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x33, 0x33,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x33, 0x33,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x10, 0x33, 0x33, 0x33, 0x33, 0x33, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x10, 0x10,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xf7, 0xf7, 0xf7, 0xf6,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0xf3,
- 0xff, 0xff, 0xff, 0xff, 0xf7, 0xf7, 0xf7, 0xf7,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xf7, 0xf7, 0xf7, 0xf6,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3,
- 0xff, 0xff, 0xff, 0xff, 0xf7, 0xf7, 0xf7, 0xf7,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0x88, 0x88, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0x88, 0x88, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x37, 0x37, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x37, 0x37, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0xce, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x00, 0x08, 0x08, 0x09, 0x08,
- 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0xef, 0xce, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xce, 0xce, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x10, 0x10,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xf7, 0xf7, 0xf7, 0xf6,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xf7, 0xff, 0xff, 0xf7,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xf7, 0xf7, 0xf7, 0xf6,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xf7, 0xff, 0xff, 0xf7,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x33, 0x33,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x33, 0x33,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x33, 0x33,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x33, 0x33,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x33, 0x33,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x33, 0x33,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x33, 0x33,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x33, 0x33,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x10, 0x10,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xcc, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xf7, 0xf7, 0xf7, 0xf6,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0xf3,
- 0xff, 0xff, 0xff, 0xff, 0xf7, 0xf7, 0xf7, 0xf7,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0xcc, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xf7, 0xf7, 0xf7, 0xf6,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0xf3,
- 0xff, 0xff, 0xff, 0xff, 0xf7, 0xf7, 0xf7, 0xf7,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0x88, 0x88, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0x88, 0x88, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x37, 0x37, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x37, 0x37, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0xce, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x00, 0x08, 0x08, 0x09, 0x08,
- 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0xef, 0xce, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xce, 0xce, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x10, 0x10, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x10, 0x10, 0x33, 0x33, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xf7, 0xf7, 0xf7, 0xf6,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xf7, 0xff, 0xff, 0xf7,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x10, 0x10, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x10, 0x10, 0x33, 0x33, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0xcc, 0xcc, 0xcc, 0xcc, 0x80, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0xcc, 0xcc, 0x80, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0xcc, 0xcc, 0x80, 0xcc, 0x80, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0x80, 0xcc, 0x80, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xf7, 0xf7, 0xf7, 0xf6,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xf7, 0xff, 0xff, 0xf7,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0x80, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0xcc, 0xcc, 0x80, 0xcc, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xfc, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xfc, 0xfe,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x13, 0x13, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x13, 0x13, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x13, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x13, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x13, 0x13, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x13, 0x13, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x13, 0x13, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x13, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x13, 0x13, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x13, 0x13, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x13, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x13, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x13, 0x13, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x13, 0x13, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x13, 0x13, 0x33, 0x33, 0x11, 0x13, 0x73, 0x73,
- 0x13, 0x13, 0x33, 0x33, 0x11, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x8c, 0x8c, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0x8c, 0x8c, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0x8c, 0x8c, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x00, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x00, 0x10, 0x10, 0x10, 0x10,
- 0x8c, 0x8c, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xcc, 0xcc,
- 0x8c, 0x8c, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x33, 0x33,
- 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x33, 0x33,
- 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x33, 0x33,
- 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x33, 0x33,
- 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x33, 0x33,
- 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x33, 0x33,
- 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x33, 0x33,
- 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x33, 0x33,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x10, 0x10, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x10, 0x33, 0x10, 0x10, 0x33, 0x33, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x10, 0x10,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0xcc, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xf7, 0xf7, 0xf7, 0xf6,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0xf3,
- 0xff, 0xff, 0xff, 0xff, 0xf7, 0xf7, 0xf7, 0xf7,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x10, 0x10, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0xcc, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xf7, 0xf7, 0xf7, 0xf6,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0xf3,
- 0xff, 0xff, 0xff, 0xff, 0xf7, 0xf7, 0xf7, 0xf7,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xfc, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xfc, 0xfe,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x11, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x11, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x8c, 0x8c, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0x8c, 0x8c, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0x8c, 0x8c, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x00, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x00, 0x10, 0x10, 0x10, 0x10,
- 0x8c, 0x8c, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xcc, 0xcc,
- 0x8c, 0x8c, 0x88, 0x88, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0x88, 0x88, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x37, 0x37, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x37, 0x37, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0xce, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x00, 0x08, 0x08, 0x09, 0x08,
- 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0xef, 0xce, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xce, 0xce, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x10, 0x10, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x10, 0x10, 0x33, 0x33, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x10, 0x10,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xf7, 0xf7, 0xf7, 0xf6,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xf7, 0xff, 0xff, 0xf7,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x10, 0x10, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x10, 0x10, 0x33, 0x33, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xf7, 0xf7, 0xf7, 0xf6,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xf7, 0xff, 0xff, 0xf7,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xfc, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xfc, 0xfe,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x13, 0x13, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x13, 0x13, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x13, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x13, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x13, 0x13, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x13, 0x13, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x13, 0x13, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x13, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x13, 0x13, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x13, 0x13, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x13, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x13, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x13, 0x13, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x13, 0x13, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x13, 0x13, 0x33, 0x33, 0x11, 0x13, 0x73, 0x73,
- 0x13, 0x13, 0x33, 0x33, 0x11, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x00, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x00, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x33, 0x33,
- 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x33, 0x33,
- 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x33, 0x33,
- 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x33, 0x33,
- 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x33, 0x33,
- 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x33, 0x33,
- 0x37, 0x37, 0x37, 0x7f, 0x37, 0x37, 0x33, 0x33,
- 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x33, 0x33,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x10, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x10, 0x10, 0x33, 0x33, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x10, 0x10,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xcc, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xf7, 0xf7, 0xf7, 0xf6,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0xf3,
- 0xff, 0xff, 0xff, 0xff, 0xf7, 0xf7, 0xf7, 0xf7,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x10, 0x10, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x10, 0x10, 0x33, 0x33, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x80, 0x80, 0x80, 0x80, 0xcc, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xf7, 0xf7, 0xf7, 0xf6,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0xf3,
- 0xff, 0xff, 0xff, 0xff, 0xf7, 0xf7, 0xf7, 0xf7,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xfc, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xfc, 0xfe,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x11, 0x13, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x11, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x00, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x00, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0x88, 0x88, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0x88, 0x88, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xce, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xce, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x37, 0x37, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x37, 0x37, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0xce, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x00, 0x08, 0x08, 0x09, 0x08,
- 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xce, 0xce, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xf7, 0xf7, 0xf7, 0xf6,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xf7, 0xff, 0xff, 0xf7,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xf7, 0xf7, 0xf7, 0xf6,
- 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7,
- 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x10, 0x10,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xf7, 0xf7, 0xf7, 0xf6,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xf7, 0xf7, 0xf7, 0xf7,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xf7, 0xf7, 0xf7, 0xf6,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xf7, 0xf7, 0xf7, 0xf7,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x37, 0x37, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x37, 0x37, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0xce, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x00, 0x08, 0x08, 0x09, 0x08,
- 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0xef, 0xce, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xef, 0xce, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x10, 0x10,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xf7, 0xf7, 0xf7, 0xf6,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xf7, 0xff, 0xff, 0xf7,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xf7, 0xf7, 0xf7, 0xf6,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xf7, 0xff, 0xff, 0xf7,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x10, 0x10,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xf7, 0xf7, 0xf7, 0xf6,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xf7, 0xf7, 0xf7, 0xf7,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xf7, 0xf7, 0xf7, 0xf6,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xf7, 0xf7, 0xf7, 0xf7,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x37, 0x37, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x37, 0x37, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0xce, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x00, 0x08, 0x08, 0x09, 0x08,
- 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0xef, 0xce, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xce, 0xce, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xf7, 0xf7, 0xf7, 0xf6,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xf7, 0xff, 0xff, 0xf7,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xf7, 0xf7, 0xf7, 0xf6,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xf7, 0xff, 0xff, 0xf7,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xfc, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xfc, 0xfe,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x11, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x11, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x00, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x00, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x10, 0x10,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xf7, 0xf7, 0xf7, 0xf6,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xf7, 0xf7, 0xf7, 0xf7,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xf7, 0xf7, 0xf7, 0xf6,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xf7, 0xf7, 0xf7, 0xf7,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xfc, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xfc, 0xfe,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x11, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x11, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x00, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x00, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x37, 0x37, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x37, 0x37, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0xce, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x00, 0x08, 0x08, 0x09, 0x08,
- 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0xef, 0xce, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xce, 0xce, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x10, 0x10,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xf7, 0xf7, 0xf7, 0xf6,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xf7, 0xff, 0xff, 0xf7,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xf7, 0xf7, 0xf7, 0xf6,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xf7, 0xff, 0xff, 0xf7,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xfc, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xfc, 0xfe,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x11, 0x13, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x11, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x00, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x00, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x10, 0x10,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xf7, 0xf7, 0xf7, 0xf6,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xf7, 0xf7, 0xf7, 0xf7,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xf7, 0xf7, 0xf7, 0xf6,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xf7, 0xf7, 0xf7, 0xf7,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xfc, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xfc, 0xfe,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x11, 0x13, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x11, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x00, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x00, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x37, 0x37, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x37, 0x37, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0xce, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x00, 0x08, 0x08, 0x09, 0x08,
- 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0xef, 0xce, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xce, 0xce, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xf7, 0xf7, 0xf7, 0xf6,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xf7, 0xff, 0xff, 0xf7,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xf7, 0xf7, 0xf7, 0xf6,
- 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7,
- 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x10, 0x10,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xf7, 0xf7, 0xf7, 0xf6,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0xf3,
- 0xff, 0xff, 0xff, 0xff, 0xf7, 0xf7, 0xf7, 0xf7,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xf7, 0xf7, 0xf7, 0xf6,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0xf3,
- 0xff, 0xff, 0xff, 0xff, 0xf7, 0xf7, 0xf7, 0xf7,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0x88, 0x88, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0x88, 0x88, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x37, 0x37, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x37, 0x37, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0xce, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x00, 0x08, 0x08, 0x09, 0x08,
- 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0xef, 0xce, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xce, 0xce, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x10, 0x10,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xf7, 0xf7, 0xf7, 0xf6,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xf7, 0xff, 0xff, 0xf7,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xf7, 0xf7, 0xf7, 0xf6,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xf7, 0xff, 0xff, 0xf7,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x10, 0x10,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xf7, 0xf7, 0xf7, 0xf6,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0xf3,
- 0xff, 0xff, 0xff, 0xff, 0xf7, 0xf7, 0xf7, 0xf7,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xf7, 0xf7, 0xf7, 0xf6,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0xf3,
- 0xff, 0xff, 0xff, 0xff, 0xf7, 0xf7, 0xf7, 0xf7,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0x88, 0x88, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0xcc, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0x88, 0x88, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x37, 0x37, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x37, 0x37, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0xce, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x00, 0x08, 0x08, 0x09, 0x08,
- 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0xef, 0xce, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xce, 0xce, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xf7, 0xf7, 0xf7, 0xf6,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xf7, 0xff, 0xff, 0xf7,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0xcc, 0xcc, 0xcc, 0xcc, 0x80, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0xcc, 0xcc, 0x80, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0xcc, 0xcc, 0x80, 0xcc, 0x80, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0x80, 0xcc, 0x80, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x33, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xf7, 0xf7, 0xf7, 0xf6,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xf7, 0xff, 0xff, 0xf7,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0x80, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0xcc, 0xcc, 0x80, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0xcc, 0xcc, 0x80, 0xcc, 0x80, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0x80, 0xcc, 0x80, 0xcc,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xfc, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xfc, 0xfe,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x11, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x11, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x8c, 0x8c, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0x8c, 0x8c, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0x8c, 0x8c, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x00, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x00, 0x10, 0x10, 0x10, 0x10,
- 0x8c, 0x8c, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xcc, 0xcc,
- 0x8c, 0x8c, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0x8c, 0x8c, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37,
- 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x37, 0x37, 0x7f, 0x37, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x37, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x10, 0x10,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0xcc, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xf7, 0xf7, 0xf7, 0xf6,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0xf3,
- 0xff, 0xff, 0xff, 0xff, 0xf7, 0xf7, 0xf7, 0xf7,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0xcc, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x33, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0xcc, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xf7, 0xf7, 0xf7, 0xf6,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0xf3,
- 0xff, 0xff, 0xff, 0xff, 0xf7, 0xf7, 0xf7, 0xf7,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0x80, 0xcc, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xfc, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xfc, 0xfe,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x11, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x11, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x8c, 0x8c, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0x8c, 0x8c, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0x8c, 0x8c, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x00, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x00, 0x10, 0x10, 0x10, 0x10,
- 0x8c, 0x8c, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xcc, 0xcc,
- 0x8c, 0x8c, 0x88, 0x88, 0xcc, 0xcc, 0xec, 0xcc,
- 0x8c, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0x8c, 0x8c, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0x88, 0x88, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xce, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x37, 0x37, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x7f, 0x37, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0xce, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x00, 0x08, 0x08, 0x09, 0x08,
- 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0xef, 0xce, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xce, 0xce, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x10, 0x10,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xf7, 0xf7, 0xf7, 0xf6,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xf7, 0xff, 0xff, 0xf7,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xf7, 0xf7, 0xf7, 0xf6,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xf7, 0xf7, 0xff, 0xf7,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xcc, 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0x80, 0xcc,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xfc, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xfc, 0xfe,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x13, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x11, 0x13, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x11, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x00, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x00, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0x8c, 0xcc, 0x8c, 0x8c, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0x8c, 0x8c, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37,
- 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x37, 0x37, 0x7f, 0x37, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x37, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x7f, 0x7f, 0x37, 0x37, 0x37, 0x37,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x10, 0x10,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xf7, 0xf7, 0xf7, 0xf6,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0xf3,
- 0xff, 0xff, 0xff, 0xff, 0xf7, 0xf7, 0xf7, 0xf7,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xf7, 0xf7, 0xf7, 0xf6,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0xf3,
- 0xff, 0xff, 0xff, 0xff, 0xf7, 0xf7, 0xf7, 0xf7,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0x33, 0x33, 0x33, 0x33, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xcc, 0xcc, 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xfc, 0xfe,
- 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xfc, 0xfe,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0xcc, 0xcc, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x73, 0x73,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
- 0x33, 0x33, 0x33, 0x33, 0x33, 0x13, 0x73, 0x73,
- 0x33, 0x13, 0x33, 0x33, 0x11, 0x13, 0x33, 0x33,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x00, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x00, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0x8c, 0x8c, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0x88, 0x88, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0x8c, 0x8c, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xcc, 0x88, 0xcc, 0xcc, 0xec, 0xcc,
- 0xcc, 0x8c, 0x8c, 0x8c, 0xcc, 0xcc, 0xec, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xce, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xce, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xce, 0xce, 0xce, 0xce, 0xef, 0xef, 0xce, 0xce,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x7f, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x37, 0x7f, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0x7f, 0x37, 0x33, 0x33, 0x7f, 0x7f, 0x33, 0x33,
- 0xce, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x00, 0x08, 0x08, 0x09, 0x08,
- 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0x33, 0x37, 0x33, 0x33, 0x37, 0x37, 0x33, 0x33,
- 0xef, 0xef, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xef, 0xce, 0xef, 0xef, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xcc, 0xcc, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xce, 0xce, 0xce, 0xce, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
-};
+#include "simscale_foo.h"
gs_private_st_ptrs2(st_imscale_state, stream_imscale_state,
"ImscaleDecode state",
@@ -8249,66 +51,107 @@ s_imscale_init(stream_state *st)
ss->src_y = 0;
ss->src_offset = 0;
ss->src_size = bytesin;
- ss->dst_y = 0;
- ss->dst_size = bytesout;
+ ss->src_line_padded = bytesin + 10;
+
+ ss->dst_line_padded = bytesout + 10; /* to compensate for overshoots in zoom() */
+ ss->dst_line_size = bytesout;
+ ss->dst_size = bytesout*4;
ss->dst_offset = ss->dst_size;
- ss->window = (byte *)gs_alloc_byte_array(mem,
- bytesin + 2, 4,
- "imscale window");
- ss->dst = (byte *)gs_alloc_bytes(mem, bytesout + 1, "imscale dst");
- memset(ss->window, 0xff, (bytesin + 2) * 4);
+ ss->dst_togo = (long long)ss->dst_size * ss->params.HeightIn;
+ ss->window = (byte *)gs_alloc_byte_array(mem, ss->src_line_padded, 5, "imscale window");
+ ss->dst = (byte *)gs_alloc_bytes(mem, ss->dst_line_padded * 4, "imscale dst");
+ memset(ss->window, 0xff, ss->src_line_padded * 5);
return 0;
}
static void
-zoom_line(stream_imscale_state *ss)
-{
- uint w = ss->src_size + 2;
- byte *window = ss->window;
- byte *dst = ss->dst;
- int y = (ss->dst_y + 2) & 3;
- int i;
-
- for (i = 0; i < ss->dst_size + 1; i++) {
- int iw = (i + 3) >> 2;
- int iwshift = 11 - ((i + 3) & 3) * 2;
- int oshift;
- byte l0, l1, l2, l3;
- byte t0, t1;
-
- if (y < 2) {
- l3 = (((window[iw] << 8) | window[iw + 1]) >> iwshift) & 0x1f;
- l2 = (((window[w + iw] << 8) |
- window[w + iw + 1]) >> iwshift) & 0x1f;
- l1 = (((window[w * 2 + iw] << 8) |
- window[w * 2 + iw + 1]) >> iwshift) & 0x1f;
- l0 = (((window[w * 3 + iw] << 8) |
- window[w * 3 + iw + 1]) >> iwshift) & 0x1f;
- oshift = 4 * (1 - y);
- } else {
- l0 = (((window[iw] << 8) | window[iw + 1]) >> iwshift) & 0x1f;
- l1 = (((window[w + iw] << 8) |
- window[w + iw + 1]) >> iwshift) & 0x1f;
- l2 = (((window[w * 2 + iw] << 8) |
- window[w * 2 + iw + 1]) >> iwshift) & 0x1f;
- l3 = (((window[w * 3 + iw] << 8) |
- window[w * 3 + iw + 1]) >> iwshift) & 0x1f;
- oshift = 4 * (y & 1);
- }
- t0 = imasktab[((l0 & 0x1e) << 11) |
- ((l1 & 0x1e) << 7) |
- ((l2 & 0x1e) << 3) |
- ((l3 & 0x1e) >> 1)];
- t1 = imasktab[((l0 & 0xf) << 12) |
- ((l1 & 0xf) << 8) |
- ((l2 & 0xf) << 4) |
- (l3 & 0xf)];
- dst[i] = (((t0 >> oshift) & 0xf) << 4) + ((t1 >> oshift) & 0xf);
+zoom_line(stream_imscale_state *ss) {
+ /* src_y is 2 scan lines ahead of dst_y/4, although the latter counter is implicit.
+ * For instance, during the 1st call to this function, src_y == 2, dst_y == 0.
+ * (src_y + 3) % 5 == 0 and points to the beginning of the window.
+ * (src_y + 4) % 5 == 1 and points to the next line.
+ * (src_y ) % 5 == 2 and points to the last scanned line.
+ * The next 2 lines in the window correspond to the blank lines above the first
+ * line of the image.
+ */
+ unsigned char * const p0 = ss->window + (ss->src_line_padded * ((ss->src_y + 1) % 5));
+ unsigned char * const p1 = ss->window + (ss->src_line_padded * ((ss->src_y + 2) % 5));
+ unsigned char * const p2 = ss->window + (ss->src_line_padded * ((ss->src_y + 3) % 5));
+ unsigned char * const p3 = ss->window + (ss->src_line_padded * ((ss->src_y + 4) % 5));
+ unsigned char * const p4 = ss->window + (ss->src_line_padded * ((ss->src_y ) % 5));
+
+ /* Pointers to the lines in the destination buffer. */
+ unsigned char * const dst0 = ss->dst;
+ unsigned char * const dst1 = ss->dst + ss->dst_line_padded;
+ unsigned char * const dst2 = ss->dst + 2*ss->dst_line_padded;
+ unsigned char * const dst3 = ss->dst + 3*ss->dst_line_padded;
+ unsigned int i;
+
+ /* r0..r4 are shift registers that contain 5x5 bit matrix and serve
+ * as buffers for byte-based access to memory. The registers have
+ * the following structure and initial content.
+ * r0: ........ ........ ......11 XXXxxxxx
+ * r1: ........ ........ .11XXXxx xxx00000
+ * r2: ........ ....11XX Xxxxxxyy yyyyyy00
+ * r3: .......1 1XXXxxxx xyyyyyyy y0000000
+ * r3: ..11XXXx xxxxyyyy yyyyzzzz zzzz0000
+ * where
+ * '.' denotes an unused bit
+ * '1' denotes the initial blank bits that precede leading bits of every line
+ * 'X' denotes leading bits of the 1st byte. '1' and 'X' belong to 5x5 bit matrix
+ * 'x' denotes remaining bits of the 1st byte
+ * 'y','z' denote the positions of the following bytes
+ * '0' denotes the initial empty bits
+ */
+ uint32_t r0 = 0x300 | p0[0];
+ uint32_t r1 = 0x6000 | p1[0] << 5;
+ uint32_t r2 = 0xc0000 | p2[0] << 10 | p2[1] << 2;
+ uint32_t r3 = 0x1800000 | p3[0] << 15 | p3[1] << 7;
+ uint32_t r4 = 0x30000000 | p4[0] << 20 | p4[1] << 12 | p4[2] << 4;
+
+#define ZOOM(r0, r1, r2, r3, r4) imscale_foo((r0 & 0x3e0) | (r1 & 0x7c00) | (r2 & 0xf8000) | (r3 & 0x1f00000) | (r4 & 0x3e000000))
+#define SHIFT(r0, r1, r2, r3, r4) r0 <<= 1, r1 <<= 1, r2 <<= 1, r3 <<= 1, r4 <<= 1
+#define LOAD(n,i) r##n |= p##n[i]
+#define STORE(i) dst0[i] = out, dst1[i] = out >> 8, dst2[i] = out >> 16, dst3[i] = out >> 24
+
+ /* Possible improvement: buffer output in a 64-bit accumulator and write 16-bit chunks. */
+ /* Unfortunately in this case big- and little-endian systems need different code. */
+ for (i=0; i < ss->src_size; i++) {
+ uint32_t out; /* 0 5 2 7 4 : number of empty bits in r0..r4 */
+
+ out = ZOOM(r0, r1, r2, r3, r4) << 4;
+ SHIFT(r0, r1, r2, r3, r4); /* 1 6 3 8 5 : every counter increases by 1 */
+ LOAD(3, i+2); /* 1 6 3 0 5 : load r3 because it has 8 empty bits */
+ out |= ZOOM(r0, r1, r2, r3, r4);
+ SHIFT(r0, r1, r2, r3, r4); /* 2 7 4 1 6 : and so on */
+ STORE(4*i);
+ out = ZOOM(r0, r1, r2, r3, r4) << 4;
+ SHIFT(r0, r1, r2, r3, r4); /* 3 8 5 2 7 */
+ LOAD(1, i+1); /* 3 0 5 2 7 */
+ out |= ZOOM(r0, r1, r2, r3, r4);
+ SHIFT(r0, r1, r2, r3, r4); /* 4 1 6 3 8 */
+ STORE(4*i+1);
+ LOAD(4, i+3); /* 4 1 6 3 0 */
+ out = ZOOM(r0, r1, r2, r3, r4) << 4;
+ SHIFT(r0, r1, r2, r3, r4); /* 5 2 7 4 1 */
+ out |= ZOOM(r0, r1, r2, r3, r4);
+ STORE(4*i+2);
+ SHIFT(r0, r1, r2, r3, r4); /* 6 3 8 5 2 */
+ LOAD(2, i+2); /* 6 3 0 5 2 */
+ out = ZOOM(r0, r1, r2, r3, r4) << 4;
+ SHIFT(r0, r1, r2, r3, r4); /* 7 4 1 6 3 */
+ out |= ZOOM(r0, r1, r2, r3, r4);
+ STORE(4*i+3);
+ SHIFT(r0, r1, r2, r3, r4); /* 8 5 2 7 4 */
+ LOAD(0, i+1); /* 0 5 2 7 4 */
}
- for (i = 0; i < ss->dst_size; i++)
- dst[i] = (dst[i] << 2) + (dst[i + 1] >> 6);
+#undef ZOOM
+#undef SHIFT
+#undef LOAD
+#undef STORE
}
+
static int
s_imscale_process(stream_state *st, stream_cursor_read *pr,
stream_cursor_write *pw, bool last)
@@ -8316,29 +159,41 @@ s_imscale_process(stream_state *st, stream_cursor_read *pr,
stream_imscale_state *const ss = (stream_imscale_state *) st;
while (1) {
- /* deliver data from dst buffer */
+ if (ss->dst_togo <= 0)
+ return EOFC;
+ /* deliver data from dst buffer */
if (ss->dst_offset < ss->dst_size) {
- uint ncopy = min(pw->limit - pw->ptr,
- ss->dst_size - ss->dst_offset);
+ uint ncopy = min(pw->limit - pw->ptr, ss->dst_size - ss->dst_offset);
if (ncopy == 0)
return 1;
- memcpy(pw->ptr + 1, (byte *)ss->dst + ss->dst_offset, ncopy);
- pw->ptr += ncopy;
- ss->dst_offset += ncopy;
+ ss->dst_togo -= ncopy;
+
+ while (ncopy) {
+ int line = ss->dst_offset / ss->dst_line_size;
+ int offset = ss->dst_offset % ss->dst_line_size;
+ int linecopy = min(ncopy, ss->dst_line_size - offset);
+
+ memcpy(pw->ptr + 1, (byte *)ss->dst + line * ss->dst_line_padded + offset, linecopy);
+ pw->ptr += linecopy;
+ ss->dst_offset += linecopy;
+ ncopy -= linecopy;
+ }
}
/* output a row, if possible */
- if (ss->dst_offset == ss->dst_size &&
- ss->dst_y < ss->src_y * 4 - 6) {
- zoom_line(ss);
- ss->dst_offset = 0;
- ss->dst_y += 1;
+ if (ss->dst_offset == ss->dst_size && /* dst is empty */
+ ss->src_offset == ss->src_size) { /* src is full */
+ if (ss->src_y >= 2) {
+ zoom_line(ss);
+ ss->dst_offset = 0;
+ }
+ ss->src_offset = 0;
+ ss->src_y += 1;
}
/* input into window */
- if (ss->dst_y >= ss->src_y * 4 - 6) {
- int w = ss->src_size + 2;
+ if (ss->src_offset < ss->src_size) {
uint rleft = pr->limit - pr->ptr;
uint ncopy = min(rleft, ss->src_size - ss->src_offset);
@@ -8348,27 +203,14 @@ s_imscale_process(stream_state *st, stream_cursor_read *pr,
}
if (rleft == 0 && !last)
return 0; /* need more input */
- /* if (rleft == 0)
- return EOFC; */ /* end of file. pass along in stream */
- if (ss->src_offset == 0) {
- /* could maintain window as ring (y mod 4 addressing),
- but this is simpler */
- memmove(ss->window, ss->window + w, 3 * w);
- }
if (ncopy) {
- memcpy(ss->window + 3 * w + ss->src_offset + 1,
- pr->ptr + 1,
- ncopy);
+ memcpy(ss->window + ss->src_line_padded * (ss->src_y % 5) + ss->src_offset, pr->ptr + 1, ncopy);
ss->src_offset += ncopy;
pr->ptr += ncopy;
} else {
- memset(ss->window + 3 * w, 0xff, w);
+ memset(ss->window + ss->src_line_padded * (ss->src_y % 5) + ss->src_offset, 0xff, ss->src_size - ss->src_offset);
ss->src_offset = ss->src_size;
}
- if (ss->src_offset == ss->src_size) {
- ss->src_offset = 0;
- ss->src_y += 1;
- }
}
}
}
diff --git a/base/simscale.h b/base/simscale.h
index 65989581..e6ad7e46 100644
--- a/base/simscale.h
+++ b/base/simscale.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -14,7 +14,6 @@
*/
-/* $Id: simscale.h 6651 2006-03-13 16:18:19Z raph $ */
/* Definitions for image mask interpolation filter */
/* Requires scommon.h; strimpl.h if any templates are referenced */
@@ -32,11 +31,14 @@ struct stream_imscale_state_s {
int src_y;
int src_offset;
int src_size;
+ int src_line_padded;
byte *dst;
- int dst_y;
+ int64_t dst_togo; /* down-counter of output bytes */
int dst_offset;
int dst_size;
+ int dst_line_size;
+ int dst_line_padded;
};
extern const stream_template s_imscale_template;
diff --git a/base/simscale_foo.c b/base/simscale_foo.c
new file mode 100644
index 00000000..bae9d5c7
--- /dev/null
+++ b/base/simscale_foo.c
@@ -0,0 +1,2507 @@
+/* Copyright (C) 2020 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., 1305 Grant Avenue - Suite 200, Novato,
+ CA 94945, U.S.A., +1(415)492-9861, for further information.
+*/
+
+/* Pixel stretching function for image mask interpolation filter */
+
+#include "simscale_foo.h"
+
+#define a 5 /* top row */
+#define b 6
+#define c 7
+#define d 8
+#define e 9
+
+#define f 10 /* edge */
+#define g 14
+
+#define h 15 /* edge */
+#define i 19
+
+#define j 20 /* edge */
+#define k 24
+
+#define l 25 /* bottom row */
+#define m 26
+#define n 27
+#define o 28
+#define p 29
+
+#define V0 0x0
+#define V1 0x8
+#define V2 0x1
+#define V3 0x9
+#define V4 0x80e
+#define V5 0x107
+#define V6 0x8080c
+#define V7 0xc0e0e
+#define V8 0x60600
+#define V9 0x6060f
+#define V10 0x60e0c
+#define V11 0x60e0f
+#define V12 0x60703
+#define V13 0x6070f
+#define V14 0x60f0f
+#define V15 0x10103
+#define V16 0x30707
+#define V17 0x8000000
+#define V18 0x8000008
+#define V19 0x8000001
+#define V20 0x80e0e08
+#define V21 0x80e0e0c
+#define V22 0x80e0e0f
+#define V23 0x80e0f0f
+#define V24 0xc080800
+#define V25 0xc0e0600
+#define V26 0xc0e0e08
+#define V27 0xc0e0e0c
+#define V28 0xc0e0e0f
+#define V29 0xc0e0f0f
+#define V30 0xe080000
+#define V31 0xe0e0c00
+#define V32 0x1000000
+#define V33 0x1000008
+#define V34 0x1000001
+#define V35 0x1070701
+#define V36 0x1070703
+#define V37 0x107070f
+#define V38 0x1070f0f
+#define V39 0x9000000
+#define V40 0x3010100
+#define V41 0x3070600
+#define V42 0x3070701
+#define V43 0x3070703
+#define V44 0x307070f
+#define V45 0x3070f0f
+#define V46 0x7010000
+#define V47 0x7070300
+#define V48 0xf060600
+#define V49 0xf0e0600
+#define V50 0xf0e0e08
+#define V51 0xf0e0e0c
+#define V52 0xf070600
+#define V53 0xf070701
+#define V54 0xf070703
+#define V55 0xf0f0600
+#define V56 0xf0f0e08
+#define V57 0xf0f0e0c
+#define V58 0xf0f0701
+#define V59 0xf0f0703
+#define V60 0xf0f0f0f
+
+#define T(t0) ((x & (1ULL<<(t0+32))) == 0)
+#define TT(t0,t1) ((x & (1ULL<<(t0+32) | 1ULL<<(t1+32))) == 0)
+#define F(f0) ((x & (1ULL<<f0)) == 0)
+#define TF(t0, f0) ((x & (1ULL<<(t0+32) | 1ULL<<f0)) == 0)
+#define TTF(t0, t1, f0) ((x & (1ULL<<(t0+32) | 1ULL<<(t1+32) | 1ULL<<f0)) == 0)
+#define TFF(t0, f0, f1) ((x & (1ULL<<(t0+32) | 1ULL<<f0 | 1ULL<<f1)) == 0)
+#define TTFF(t0, t1, f0, f1) ((x & (1ULL<<(t0+32) | 1ULL<<(t1+32) | 1ULL<<f0 | 1ULL<<f1)) == 0)
+#define ANYTTFF(t0, t1, f0, f1) (x & ((1ULL<<t0) | (1ULL<<t1) | (1ULL<<(f0+32)) | (1ULL<<(f1+32))))
+
+/* Find the value of a 4x4 pixel cluster in a given 5x5 context.*/
+/* Checked by electronics against the full 5x5 table. */
+unsigned int imscale_foo(unsigned int v5x5) {
+ int v3x3 = ((v5x5 >> 11) & 07) | ((v5x5 >> 13) & 070) | ((v5x5 >> 15) & 0700);
+ unsigned long long x = ~(unsigned long long)v5x5 << 32 | v5x5;
+
+#if 0
+ /* Extracted lines of the 5x5 matrix for convenient viewing. */
+ unsigned int r0 = ( v5x5 >> 5 ) & 0x1f;
+ unsigned int r1 = ( v5x5 >> 10 ) & 0x1f;
+ unsigned int r2 = ( v5x5 >> 15 ) & 0x1f;
+ unsigned int r3 = ( v5x5 >> 20 ) & 0x1f;
+ unsigned int r4 = ( v5x5 >> 25 ) & 0x1f;
+#endif
+
+ switch(v3x3) {
+ case 0:
+ case 1:
+ case 2:
+ case 3:
+ case 4:
+ case 5:
+ case 6:
+ case 7:
+ case 8:
+ case 9:
+ case 10:
+ return V0;
+ case 11:
+ return V2;
+ case 12:
+ case 13:
+ case 14:
+ return V0;
+ case 15:
+ /* abcdefghijklmnop */
+ /* ------1-1------- V2 */
+ /* --------0------- V5 */
+ /* ------0--------- V5 */
+ if (TT(g,i))
+ return V2;
+ else
+ return V5;
+ case 16:
+ return V60;
+ case 17:
+ /* abcdefghijklmnop */
+ /* 10---0---------- V25 */
+ /* 11---0---------- V27 */
+ /* 10---1---------- V55 */
+ /* 0--------------- V57 */
+ /* -1---1---------- V57 */
+ if (TF(a,f)) {
+ if (T(b))
+ return V27;
+ else
+ return V25;
+ } else {
+ if (TTF(a,f,b))
+ return V55;
+ else
+ return V57;
+ }
+ case 18:
+ /* abcdefghijklmnop */
+ /* 0111000--------- V9 */
+ /* 0110-0---------- V28 */
+ /* 011-10---------- V28 */
+ /* 011--01--------- V28 */
+ /* -0110-0--------- V44 */
+ /* 1-110-0--------- V44 */
+ /* --11010--------- V44 */
+ /* --0------------- V60 */
+ /* -0-0------------ V60 */
+ /* 1--0------------ V60 */
+ /* -0--1----------- V60 */
+ /* 1---1----------- V60 */
+ /* ---0-1---------- V60 */
+ /* ----11---------- V60 */
+ /* -0----1--------- V60 */
+ /* 1-----1--------- V60 */
+ /* -----11--------- V60 */
+ if (TTFF(b,c,a,f)) {
+ if (TFF(d,e,g))
+ return V9;
+ else
+ return V28;
+ } else {
+ if (TTFF(c,d,e,g))
+ return V44;
+ else
+ return V60;
+ }
+ case 19:
+ /* abcdefghijklmnop */
+ /* 1-11000--------- V13 */
+ /* 0-110-0--------- V44 */
+ /* --11010--------- V44 */
+ /* 1--0-0---------- V29 */
+ /* 1-0--0---------- V29 */
+ /* 1---10---------- V29 */
+ /* 1----01--------- V29 */
+ /* 0--0------------ V60 */
+ /* 0-0------------- V60 */
+ /* 0---1----------- V60 */
+ /* ---0-1---------- V60 */
+ /* --0--1---------- V60 */
+ /* ----11---------- V60 */
+ /* 0-----1--------- V60 */
+ /* -----11--------- V60 */
+ if (TTFF(c,d,e,g)) {
+ if (TF(a,f))
+ return V13;
+ else
+ return V44;
+ } else {
+ if (TF(a,f))
+ return V29;
+ else
+ return V60;
+ }
+ case 20:
+ /* abcdefghijklmnop */
+ /* ---01-0--------- V41 */
+ /* ---11-0--------- V43 */
+ /* ---01-1--------- V55 */
+ /* ----0----------- V59 */
+ /* ---1--1--------- V59 */
+ if (TF(e,g)) {
+ if (T(d))
+ return V43;
+ else
+ return V41;
+ } else {
+ if (TTF(e,g,d))
+ return V55;
+ else
+ return V59;
+ }
+ case 21:
+ /* abcdefghijklmnop */
+ /* 1---100--------- V8 */
+ /* 1---00---------- V25 */
+ /* 1----01--------- V25 */
+ /* 0---1-0--------- V41 */
+ /* ----110--------- V41 */
+ /* 0---0----------- V55 */
+ /* ----01---------- V55 */
+ /* 0-----1--------- V55 */
+ /* -----11--------- V55 */
+ if (TF(a,f)) {
+ if (TF(e,g))
+ return V8;
+ else
+ return V25;
+ } else {
+ if (TF(e,g))
+ return V41;
+ else
+ return V55;
+ }
+ case 22:
+ /* abcdefghijklmnop */
+ /* 011-100--------- V11 */
+ /* 011-00---------- V28 */
+ /* 011--01--------- V28 */
+ /* --0-1-0--------- V45 */
+ /* -0--1-0--------- V45 */
+ /* 1---1-0--------- V45 */
+ /* ----110--------- V45 */
+ /* --0-0----------- V60 */
+ /* -0--0----------- V60 */
+ /* 1---0----------- V60 */
+ /* ----01---------- V60 */
+ /* --0---1--------- V60 */
+ /* -0----1--------- V60 */
+ /* 1-----1--------- V60 */
+ /* -----11--------- V60 */
+ if (TTFF(b,c,a,f)) {
+ if (TF(e,g))
+ return V11;
+ else
+ return V28;
+ } else {
+ if (TF(e,g))
+ return V45;
+ else
+ return V60;
+ }
+ case 23:
+ /* abcdefghijklmnop */
+ /* 1---100--------- V14 */
+ /* 1---00---------- V29 */
+ /* 1----01--------- V29 */
+ /* 0---1-0--------- V45 */
+ /* ----110--------- V45 */
+ /* 0---0----------- V60 */
+ /* ----01---------- V60 */
+ /* 0-----1--------- V60 */
+ /* -----11--------- V60 */
+ if (TF(a,f)) {
+ if (TF(e,g))
+ return V14;
+ else
+ return V29;
+ } else {
+ if (TF(e,g))
+ return V45;
+ else
+ return V60;
+ }
+ case 24:
+ /* abcdefghijklmnop */
+ /* 00---1-1-1-00--- V35 */
+ /* -----0-1-1-00--- V38 */
+ /* 1------1-1-00--- V38 */
+ /* -1-----1-1-00--- V38 */
+ /* 00---1-1-0------ V58 */
+ /* 00---1-1---1---- V58 */
+ /* 00---1-1----1--- V58 */
+ /* -------0-------- V60 */
+ /* -----0---0------ V60 */
+ /* 1--------0------ V60 */
+ /* -1-------0------ V60 */
+ /* -----0-----1---- V60 */
+ /* 1----------1---- V60 */
+ /* -1---------1---- V60 */
+ /* -----0------1--- V60 */
+ /* 1-----------1--- V60 */
+ /* -1----------1--- V60 */
+ if (TTFF(h,j,l,m)) {
+ if (TFF(f,a,b))
+ return V35;
+ else
+ return V38;
+ } else {
+ if (TTFF(f,h,a,b))
+ return V58;
+ else
+ return V60;
+ }
+ case 25:
+ /* abcdefghijklmnop */
+ /* 10-----1-1-00--- V36 */
+ /* 0------1-1-00--- V38 */
+ /* -1-----1-1-00--- V38 */
+ /* 10-------0------ V59 */
+ /* 10-----0-------- V59 */
+ /* 10---------1---- V59 */
+ /* 10----------1--- V59 */
+ /* 0--------0------ V60 */
+ /* -1-----0-------- V60 */
+ /* -1-------0------ V60 */
+ /* 0------0-------- V60 */
+ /* 0----------1---- V60 */
+ /* -1---------1---- V60 */
+ /* 0-----------1--- V60 */
+ /* -1----------1--- V60 */
+ if (TTFF(h,j,l,m)) {
+ if (TF(a,b))
+ return V36;
+ else
+ return V38;
+ } else {
+ if (TF(a,b))
+ return V59;
+ else
+ return V60;
+ }
+ case 26:
+ /* abcdefghijklmnop */
+ /* --110-01-1-00--- V37 */
+ /* ---0---1-1-00--- V38 */
+ /* --0----1-1-00--- V38 */
+ /* ----1--1-1-00--- V38 */
+ /* ------11-1-00--- V38 */
+ /* --110-0--0------ V44 */
+ /* --110-00-------- V44 */
+ /* --110-0----1---- V44 */
+ /* --110-0-----1--- V44 */
+ /* ---0-----0------ V60 */
+ /* --0----0-------- V60 */
+ /* ----1----0------ V60 */
+ /* ------10-------- V60 */
+ /* --0------0------ V60 */
+ /* ------1--0------ V60 */
+ /* ---0---0-------- V60 */
+ /* ----1--0-------- V60 */
+ /* ---0-------1---- V60 */
+ /* --0--------1---- V60 */
+ /* ----1------1---- V60 */
+ /* ------1----1---- V60 */
+ /* ---0--------1--- V60 */
+ /* --0---------1--- V60 */
+ /* ----1-------1--- V60 */
+ /* ------1-----1--- V60 */
+ if (TTFF(h,j,l,m)) {
+ if (TTFF(c,d,e,g))
+ return V37;
+ else
+ return V38;
+ } else {
+ if (TTFF(c,d,e,g))
+ return V44;
+ else
+ return V60;
+ }
+ case 27:
+ /* abcdefghijklmnop */
+ /* --110-01-1-00--- V37 */
+ /* ---0---1-1-00--- V38 */
+ /* --0----1-1-00--- V38 */
+ /* ----1--1-1-00--- V38 */
+ /* ------11-1-00--- V38 */
+ /* --110-0--0------ V44 */
+ /* --110-00-------- V44 */
+ /* --110-0----1---- V44 */
+ /* --110-0-----1--- V44 */
+ /* ---0-----0------ V60 */
+ /* --0----0-------- V60 */
+ /* ----1----0------ V60 */
+ /* ------10-------- V60 */
+ /* --0------0------ V60 */
+ /* ------1--0------ V60 */
+ /* ---0---0-------- V60 */
+ /* ----1--0-------- V60 */
+ /* ---0-------1---- V60 */
+ /* --0--------1---- V60 */
+ /* ----1------1---- V60 */
+ /* ------1----1---- V60 */
+ /* ---0--------1--- V60 */
+ /* --0---------1--- V60 */
+ /* ----1-------1--- V60 */
+ /* ------1-----1--- V60 */
+ if (TTFF(h,j,l,m)) {
+ if (TTFF(c,d,e,g))
+ return V37;
+ else
+ return V38;
+ } else {
+ if (TTFF(c,d,e,g))
+ return V44;
+ else
+ return V60;
+ }
+ case 28:
+ /* abcdefghijklmnop */
+ /* -------1-1-00--- V36 */
+ /* ----1-0--0------ V43 */
+ /* ----1-00-------- V43 */
+ /* ----1-0----1---- V43 */
+ /* ----1-0-----1--- V43 */
+ /* ----0----0------ V59 */
+ /* ------10-------- V59 */
+ /* ------1--0------ V59 */
+ /* ----0--0-------- V59 */
+ /* ----0------1---- V59 */
+ /* ------1----1---- V59 */
+ /* ----0-------1--- V59 */
+ /* ------1-----1--- V59 */
+ /* pass through */
+ case 29:
+ /* abcdefghijklmnop */
+ /* -------1-1-00--- V36 */
+ /* ----1-0--0------ V43 */
+ /* ----1-00-------- V43 */
+ /* ----1-0----1---- V43 */
+ /* ----1-0-----1--- V43 */
+ /* ----0----0------ V59 */
+ /* ------10-------- V59 */
+ /* ------1--0------ V59 */
+ /* ----0--0-------- V59 */
+ /* ----0------1---- V59 */
+ /* ------1----1---- V59 */
+ /* ----0-------1--- V59 */
+ /* ------1-----1--- V59 */
+ if (TTFF(h,j,l,m))
+ return V36;
+ else if(TF(e,g))
+ return V43;
+ else
+ return V59;
+ case 30:
+ /* abcdefghijklmnop */
+ /* ------1-10------ V60 */
+ /* ------101------- V60 */
+ /* ------1-1--1---- V60 */
+ /* ------1-1---1--- V60 */
+ /* --------0------- V38 */
+ /* ------0--------- V38 */
+ /* -------1-1-00--- V38 */
+ /* pass through */
+ case 31:
+ /* abcdefghijklmnop */
+ /* ------1-10------ V60 */
+ /* ------101------- V60 */
+ /* ------1-1--1---- V60 */
+ /* ------1-1---1--- V60 */
+ /* --------0------- V38 */
+ /* ------0--------- V38 */
+ /* -------1-1-00--- V38 */
+ if (TT(g,i) && ANYTTFF(l,m,h,j))
+ return V60;
+ else
+ return V38;
+ case 32:
+ case 33:
+ case 34:
+ case 35:
+ case 36:
+ case 37:
+ return V0;
+ case 38:
+ return V1;
+ case 39:
+ /* abcdefghijklmnop */
+ /* -----1-1-------- V1 */
+ /* -------0-------- V4 */
+ /* -----0---------- V4 */
+ if (TT(f,h))
+ return V1;
+ else
+ return V4;
+ case 40:
+ case 41:
+ case 42:
+ return V0;
+ case 43:
+ return V2;
+ case 44:
+ case 45:
+ return V0;
+ case 46:
+ return V1;
+ case 47:
+ /* abcdefghijklmnop */
+ /* ---------00----- V0 */
+ /* ---------01----- V1 */
+ /* ---------10----- V2 */
+ /* ---------11----- V3 */
+ if (T(j)) {
+ if (T(k))
+ return V3;
+ else
+ return V2;
+ } else {
+ if (T(k))
+ return V1;
+ else
+ return V0;
+ }
+ case 48:
+ /* abcdefghijklmnop */
+ /* ---00-1-1-1---00 V20 */
+ /* ------0-1-1---00 V23 */
+ /* ---1----1-1---00 V23 */
+ /* ----1---1-1---00 V23 */
+ /* ---00-1-1-0----- V56 */
+ /* ---00-1-1-----1- V56 */
+ /* ---00-1-1------1 V56 */
+ /* --------0------- V60 */
+ /* ------0---0----- V60 */
+ /* ---1------0----- V60 */
+ /* ----1-----0----- V60 */
+ /* ------0-------1- V60 */
+ /* ---1----------1- V60 */
+ /* ----1---------1- V60 */
+ /* ------0--------1 V60 */
+ /* ---1-----------1 V60 */
+ /* ----1----------1 V60 */
+ if (TTFF(i,k,o,p)) {
+ if (TFF(g,d,e))
+ return V20;
+ else
+ return V23;
+ } else {
+ if (TTFF(g,i,d,e))
+ return V56;
+ else
+ return V60;
+ }
+ case 49:
+ /* abcdefghijklmnop */
+ /* --------1-1---00 V21 */
+ /* 1----0----0----- V27 */
+ /* 1----0--0------- V27 */
+ /* 1----0--------1- V27 */
+ /* 1----0---------1 V27 */
+ /* 0---------0----- V57 */
+ /* -----1--0------- V57 */
+ /* -----1----0----- V57 */
+ /* 0-------0------- V57 */
+ /* 0-------------1- V57 */
+ /* -----1--------1- V57 */
+ /* 0--------------1 V57 */
+ /* -----1---------1 V57 */
+ if (TTFF(i,k,o,p))
+ return V21;
+ else if(TF(a,f))
+ return V27;
+ else
+ return V57;
+ case 50:
+ /* abcdefghijklmnop */
+ /* 011--0--1-1---00 V22 */
+ /* --0-----1-1---00 V23 */
+ /* -0------1-1---00 V23 */
+ /* 1-------1-1---00 V23 */
+ /* -----1--1-1---00 V23 */
+ /* 011--0----0----- V28 */
+ /* 011--0--0------- V28 */
+ /* 011--0--------1- V28 */
+ /* 011--0---------1 V28 */
+ /* --0-------0----- V60 */
+ /* -0------0------- V60 */
+ /* 1---------0----- V60 */
+ /* -----1--0------- V60 */
+ /* -0--------0----- V60 */
+ /* -----1----0----- V60 */
+ /* --0-----0------- V60 */
+ /* 1-------0------- V60 */
+ /* --0-----------1- V60 */
+ /* -0------------1- V60 */
+ /* 1-------------1- V60 */
+ /* -----1--------1- V60 */
+ /* --0------------1 V60 */
+ /* -0-------------1 V60 */
+ /* 1--------------1 V60 */
+ /* -----1---------1 V60 */
+ if (TTFF(i,k,o,p)) {
+ if (TTFF(b,c,a,f))
+ return V22;
+ else
+ return V23;
+ } else {
+ if (TTFF(b,c,a,f))
+ return V28;
+ else
+ return V60;
+ }
+ case 51:
+ /* abcdefghijklmnop */
+ /* -----1-1--0----- V60 */
+ /* -----1-10------- V60 */
+ /* -----1-1------1- V60 */
+ /* -----1-1-------1 V60 */
+ /* -------0-------- V23 */
+ /* -----0---------- V23 */
+ /* --------1-1---00 V23 */
+ if (TT(f,h) && ANYTTFF(o,p,i,k))
+ return V60;
+ else
+ return V23;
+ case 52:
+ /* abcdefghijklmnop */
+ /* ---01---1-1---00 V21 */
+ /* ----0---1-1---00 V23 */
+ /* ---1----1-1---00 V23 */
+ /* ---01-----0----- V57 */
+ /* ---01---0------- V57 */
+ /* ---01---------1- V57 */
+ /* ---01----------1 V57 */
+ /* ----0-----0----- V60 */
+ /* ---1----0------- V60 */
+ /* ---1------0----- V60 */
+ /* ----0---0------- V60 */
+ /* ----0---------1- V60 */
+ /* ---1----------1- V60 */
+ /* ----0----------1 V60 */
+ /* ---1-----------1 V60 */
+ if (TTFF(i,k,o,p)) {
+ if (TF(e,d))
+ return V21;
+ else
+ return V23;
+ } else {
+ if (TF(e,d))
+ return V57;
+ else
+ return V60;
+ }
+ case 53:
+ /* abcdefghijklmnop */
+ /* --------1-1---00 V21 */
+ /* 1----0----0----- V27 */
+ /* 1----0--0------- V27 */
+ /* 1----0--------1- V27 */
+ /* 1----0---------1 V27 */
+ /* 0---------0----- V57 */
+ /* -----1--0------- V57 */
+ /* -----1----0----- V57 */
+ /* 0-------0------- V57 */
+ /* 0-------------1- V57 */
+ /* -----1--------1- V57 */
+ /* 0--------------1 V57 */
+ /* -----1---------1 V57 */
+ if (TTFF(i,k,o,p))
+ return V21;
+ else if(TF(a,f))
+ return V27;
+ else
+ return V57;
+ case 54:
+ /* abcdefghijklmnop */
+ /* 011--0--1-1---00 V22 */
+ /* --0-----1-1---00 V23 */
+ /* -0------1-1---00 V23 */
+ /* 1-------1-1---00 V23 */
+ /* -----1--1-1---00 V23 */
+ /* 011--0----0----- V28 */
+ /* 011--0--0------- V28 */
+ /* 011--0--------1- V28 */
+ /* 011--0---------1 V28 */
+ /* --0-------0----- V60 */
+ /* -0------0------- V60 */
+ /* 1---------0----- V60 */
+ /* -----1--0------- V60 */
+ /* -0--------0----- V60 */
+ /* -----1----0----- V60 */
+ /* --0-----0------- V60 */
+ /* 1-------0------- V60 */
+ /* --0-----------1- V60 */
+ /* -0------------1- V60 */
+ /* 1-------------1- V60 */
+ /* -----1--------1- V60 */
+ /* --0------------1 V60 */
+ /* -0-------------1 V60 */
+ /* 1--------------1 V60 */
+ /* -----1---------1 V60 */
+ if (TTFF(i,k,o,p)) {
+ if (TTFF(b,c,a,f))
+ return V22;
+ else
+ return V23;
+ } else {
+ if (TTFF(b,c,a,f))
+ return V28;
+ else
+ return V60;
+ }
+ case 55:
+ /* abcdefghijklmnop */
+ /* -----1-1--0----- V60 */
+ /* -----1-10------- V60 */
+ /* -----1-1------1- V60 */
+ /* -----1-1-------1 V60 */
+ /* -------0-------- V23 */
+ /* -----0---------- V23 */
+ /* --------1-1---00 V23 */
+ if (TT(f,h) && ANYTTFF(o,p,i,k))
+ return V60;
+ else
+ return V23;
+ case 56:
+ case 57:
+ case 58:
+ case 59:
+ case 60:
+ case 61:
+ case 62:
+ case 63:
+ return V60;
+ case 64:
+ case 65:
+ case 66:
+ case 67:
+ case 68:
+ case 69:
+ case 70:
+ case 71:
+ case 72:
+ case 73:
+ case 74:
+ return V0;
+ case 75:
+ /* abcdefghijklmnop */
+ /* ------------11-- V2 */
+ /* -------------0-- V15 */
+ /* ------------0--- V15 */
+ if (TT(m,n))
+ return V2;
+ else
+ return V15;
+ case 76:
+ case 77:
+ case 78:
+ case 79:
+ return V0;
+ case 80:
+ /* abcdefghijklmnop */
+ /* ---------0-10--- V10 */
+ /* ---------1-10--- V14 */
+ /* ---------0-11--- V27 */
+ /* -----------0---- V29 */
+ /* ---------1--1--- V29 */
+ if (TF(l,m)) {
+ if (T(j))
+ return V14;
+ else
+ return V10;
+ } else {
+ if (TTF(l,m,j))
+ return V27;
+ else
+ return V29;
+ }
+ case 81:
+ /* abcdefghijklmnop */
+ /* 10---------10--- V8 */
+ /* 0----------10--- V10 */
+ /* -1---------10--- V10 */
+ /* 10---------0---- V25 */
+ /* 10----------1--- V25 */
+ /* 0----------0---- V27 */
+ /* -1---------0---- V27 */
+ /* 0-----------1--- V27 */
+ /* -1----------1--- V27 */
+ if (TF(a,b)) {
+ if (TF(l,m))
+ return V8;
+ else
+ return V25;
+ } else {
+ if (TF(l,m))
+ return V10;
+ else
+ return V27;
+ }
+ case 82:
+ /* abcdefghijklmnop */
+ /* --110-0--------- V13 */
+ /* ---0-------10--- V14 */
+ /* --0--------10--- V14 */
+ /* ----1------10--- V14 */
+ /* ------1----10--- V14 */
+ /* ---0-------0---- V29 */
+ /* --0--------0---- V29 */
+ /* ----1------0---- V29 */
+ /* ------1----0---- V29 */
+ /* ---0--------1--- V29 */
+ /* --0---------1--- V29 */
+ /* ----1-------1--- V29 */
+ /* ------1-----1--- V29 */
+ /* pass through */
+ case 83:
+ /* abcdefghijklmnop */
+ /* --110-0--------- V13 */
+ /* ---0-------10--- V14 */
+ /* --0--------10--- V14 */
+ /* ----1------10--- V14 */
+ /* ------1----10--- V14 */
+ /* ---0-------0---- V29 */
+ /* --0--------0---- V29 */
+ /* ----1------0---- V29 */
+ /* ------1----0---- V29 */
+ /* ---0--------1--- V29 */
+ /* --0---------1--- V29 */
+ /* ----1-------1--- V29 */
+ /* ------1-----1--- V29 */
+ if (TTFF(c,d,e,g))
+ return V13;
+ else if (TF(l,m))
+ return V14;
+ else
+ return V29;
+ case 84:
+ return V8;
+ case 85:
+ return V8;
+ case 86:
+ return V14;
+ case 87:
+ return V14;
+ case 88:
+ /* abcdefghijklmnop */
+ /* 00---1-1---10--- V42 */
+ /* 00---1-1---0---- V58 */
+ /* 00---1-1----1--- V58 */
+ /* -------0---10--- V45 */
+ /* -----0-----10--- V45 */
+ /* 1----------10--- V45 */
+ /* -1---------10--- V45 */
+ /* -------0---0---- V60 */
+ /* -----0-----0---- V60 */
+ /* 1----------0---- V60 */
+ /* -1---------0---- V60 */
+ /* -------0----1--- V60 */
+ /* -----0------1--- V60 */
+ /* 1-----------1--- V60 */
+ /* -1----------1--- V60 */
+ if (TTFF(f,h,a,b)) {
+ if (TF(l,m))
+ return V42;
+ else
+ return V58;
+ } else {
+ if (TF(l,m))
+ return V45;
+ else
+ return V60;
+ }
+ case 89:
+ /* abcdefghijklmnop */
+ /* 10---------10--- V43 */
+ /* 0----------10--- V45 */
+ /* -1---------10--- V45 */
+ /* 10---------0---- V59 */
+ /* 10----------1--- V59 */
+ /* 0----------0---- V60 */
+ /* -1---------0---- V60 */
+ /* 0-----------1--- V60 */
+ /* -1----------1--- V60 */
+ if (TF(l,m)) {
+ if (TF(a,b))
+ return V43;
+ else
+ return V45;
+ } else {
+ if (TF(a,b))
+ return V59;
+ else
+ return V60;
+ }
+ case 90:
+ /* abcdefghijklmnop */
+ /* ---0--------11-- V60 */
+ /* --0---------11-- V60 */
+ /* ----1-------11-- V60 */
+ /* ------1-----11-- V60 */
+ /* -------------0-- V44 */
+ /* ------------0--- V44 */
+ /* --110-0--------- V44 */
+ /* pass through */
+ case 91:
+ /* abcdefghijklmnop */
+ /* ---0--------11-- V60 */
+ /* --0---------11-- V60 */
+ /* ----1-------11-- V60 */
+ /* ------1-----11-- V60 */
+ /* -------------0-- V44 */
+ /* ------------0--- V44 */
+ /* --110-0--------- V44 */
+ if (TT(m,n) && ANYTTFF(e,g,c,d))
+ return V60;
+ else
+ return V44;
+ case 92:
+ case 93:
+ return V43;
+ case 94:
+ case 95:
+ return V45;
+ case 96:
+ case 97:
+ case 98:
+ case 99:
+ case 100:
+ case 101:
+ return V0;
+ case 102:
+ return V1;
+ case 103:
+ /* abcdefghijklmnop */
+ /* -----1-1-------- V1 */
+ /* -------0-------- V4 */
+ /* -----0---------- V4 */
+ if (TT(f,h))
+ return V1;
+ else
+ return V4;
+ case 104:
+ case 105:
+ case 106:
+ return V0;
+ case 107:
+ return V15;
+ case 108:
+ case 109:
+ return V0;
+ case 110:
+ return V1;
+ case 111:
+ /* abcdefghijklmnop */
+ /* ----------0----- V0 */
+ /* ----------1----- V1 */
+ if (T(k))
+ return V1;
+ else
+ return V0;
+ case 112:
+ /* abcdefghijklmnop */
+ /* ---00-1-1------- V26 */
+ /* --------00-1---- V27 */
+ /* ------0--0-1---- V27 */
+ /* ---1-----0-1---- V27 */
+ /* ----1----0-1---- V27 */
+ /* --------0--0---- V29 */
+ /* ------0----0---- V29 */
+ /* ---1-------0---- V29 */
+ /* ----1------0---- V29 */
+ /* --------01------ V29 */
+ /* ------0--1------ V29 */
+ /* ---1-----1------ V29 */
+ /* ----1----1------ V29 */
+ if (TTFF(g,i,d,e))
+ return V26;
+ else if(TF(l,j))
+ return V27;
+ else
+ return V29;
+ case 113:
+ return V27;
+ case 114:
+ /* abcdefghijklmnop */
+ /* -------0-1--10-- V60 */
+ /* ------------0--- V29 */
+ /* ---------0------ V29 */
+ /* -------1-------- V29 */
+ /* -------------1-- V29 */
+ if (TTFF(j,m,h,n))
+ return V60;
+ else
+ return V29;
+ case 115:
+ return V23;
+ case 116:
+ case 117:
+ return V27;
+ case 118:
+ /* abcdefghijklmnop */
+ /* ---------0---0-- V29 */
+ /* ------------00-- V29 */
+ /* -------0-1--10-- V60 */
+ /* -------1-----1-- V7 */
+ /* -------1-----0-- V29 */
+ /* -------0-----1-- V29 */
+ if (TTFF(j,m,h,n))
+ return V60;
+ else if (TT(h,n))
+ return V7;
+ else
+ return V29;
+ case 119:
+ return V23;
+ case 120:
+ case 121:
+ case 122:
+ case 123:
+ case 124:
+ case 125:
+ case 126:
+ case 127:
+ return V60;
+ case 128:
+ case 129:
+ case 130:
+ case 131:
+ case 132:
+ case 133:
+ case 134:
+ case 135:
+ case 136:
+ case 137:
+ case 138:
+ return V0;
+ case 139:
+ return V2;
+ case 140:
+ case 141:
+ case 142:
+ return V0;
+ case 143:
+ return V5;
+ case 144:
+ /* abcdefghijklmnop */
+ /* ---------0001110 V48 */
+ /* ---------0-0110- V51 */
+ /* ---------01011-- V51 */
+ /* ---------0-011-1 V51 */
+ /* ----------0-0110 V54 */
+ /* ---------10--110 V54 */
+ /* ----------01-110 V54 */
+ /* -------------0-- V60 */
+ /* ------------0-0- V60 */
+ /* ---------1----0- V60 */
+ /* -----------1--0- V60 */
+ /* ----------1-0--- V60 */
+ /* ---------11----- V60 */
+ /* ----------11---- V60 */
+ /* ------------0--1 V60 */
+ /* ---------1-----1 V60 */
+ /* -----------1---1 V60 */
+ if (TTFF(m,n,j,l)) {
+ if (TFF(o,k,p))
+ return V48;
+ else
+ return V51;
+ } else {
+ if (TTFF(n,o,k,p))
+ return V54;
+ else
+ return V60;
+ }
+ case 145:
+ /* abcdefghijklmnop */
+ /* ----------0--110 V52 */
+ /* 10------------0- V55 */
+ /* 10-----------0-- V55 */
+ /* 10--------1----- V55 */
+ /* 10-------------1 V55 */
+ /* 0-------------0- V57 */
+ /* -1-----------0-- V57 */
+ /* -1------------0- V57 */
+ /* 0------------0-- V57 */
+ /* 0---------1----- V57 */
+ /* -1--------1----- V57 */
+ /* 0--------------1 V57 */
+ /* -1-------------1 V57 */
+ if (TTFF(n,o,k,p))
+ return V52;
+ else if(TF(a,b))
+ return V55;
+ else
+ return V57;
+ case 146:
+ case 147:
+ return V60;
+ case 148:
+ /* abcdefghijklmnop */
+ /* ---------0-011-- V49 */
+ /* ---01--------0-- V55 */
+ /* ---01-------0--- V55 */
+ /* ---01----1------ V55 */
+ /* ---01------1---- V55 */
+ /* ----0--------0-- V59 */
+ /* ---1--------0--- V59 */
+ /* ---1---------0-- V59 */
+ /* ----0-------0--- V59 */
+ /* ----0----1------ V59 */
+ /* ---1-----1------ V59 */
+ /* ----0------1---- V59 */
+ /* ---1-------1---- V59 */
+ if (TTFF(m,n,j,l))
+ return V49;
+ else if(TF(e,d))
+ return V55;
+ else
+ return V59;
+ case 149:
+ return V55;
+ case 150:
+ case 151:
+ return V60;
+ case 152:
+ /* abcdefghijklmnop */
+ /* 00---1-1--0--110 V53 */
+ /* -------0--0--110 V54 */
+ /* -----0----0--110 V54 */
+ /* 1---------0--110 V54 */
+ /* -1--------0--110 V54 */
+ /* 00---1-1------0- V58 */
+ /* 00---1-1-----0-- V58 */
+ /* 00---1-1--1----- V58 */
+ /* 00---1-1-------1 V58 */
+ /* -------0------0- V60 */
+ /* -----0-------0-- V60 */
+ /* 1-------------0- V60 */
+ /* -1-----------0-- V60 */
+ /* -----0--------0- V60 */
+ /* -1------------0- V60 */
+ /* -------0-----0-- V60 */
+ /* 1------------0-- V60 */
+ /* -------0--1----- V60 */
+ /* -----0----1----- V60 */
+ /* 1---------1----- V60 */
+ /* -1--------1----- V60 */
+ /* -------0-------1 V60 */
+ /* -----0---------1 V60 */
+ /* 1--------------1 V60 */
+ /* -1-------------1 V60 */
+ if (TTFF(n,o,k,p)) {
+ if (TTFF(f,h,a,b))
+ return V53;
+ else
+ return V54;
+ } else {
+ if (TTFF(f,h,a,b))
+ return V58;
+ else
+ return V60;
+ }
+ case 153:
+ /* abcdefghijklmnop */
+ /* -11-----------0- V60 */
+ /* -11----------0-- V60 */
+ /* -11-------1----- V60 */
+ /* -11------------1 V60 */
+ /* --0------------- V54 */
+ /* -0-------------- V54 */
+ /* ----------0--110 V54 */
+ if (TT(b,c) && ANYTTFF(k,p,n,o))
+ return V60;
+ else
+ return V54;
+ case 154:
+ case 155:
+ return V60;
+ case 156:
+ /* abcdefghijklmnop */
+ /* --01--1-0------- V60 */
+ /* ------0--------- V59 */
+ /* ---0------------ V59 */
+ /* --1------------- V59 */
+ /* --------1------- V59 */
+ if (TTFF(d,g,c,i))
+ return V60;
+ else
+ return V59;
+ case 157:
+ return V54;
+ case 158:
+ case 159:
+ return V60;
+ case 160:
+ case 161:
+ case 162:
+ case 163:
+ case 164:
+ case 165:
+ return V0;
+ case 166:
+ return V1;
+ case 167:
+ return V4;
+ case 168:
+ case 169:
+ case 170:
+ return V0;
+ case 171:
+ return V2;
+ case 172:
+ case 173:
+ return V0;
+ case 174:
+ return V1;
+ case 175:
+ return V3;
+ case 176:
+ /* abcdefghijklmnop */
+ /* ---00-1-10-011-- V50 */
+ /* --------00-011-- V51 */
+ /* ------0--0-011-- V51 */
+ /* ---1-----0-011-- V51 */
+ /* ----1----0-011-- V51 */
+ /* ---00-1-1----0-- V56 */
+ /* ---00-1-1---0--- V56 */
+ /* ---00-1-11------ V56 */
+ /* ---00-1-1--1---- V56 */
+ /* --------0----0-- V60 */
+ /* ------0-----0--- V60 */
+ /* ---1---------0-- V60 */
+ /* ----1-------0--- V60 */
+ /* ------0------0-- V60 */
+ /* ----1--------0-- V60 */
+ /* --------0---0--- V60 */
+ /* ---1--------0--- V60 */
+ /* --------01------ V60 */
+ /* ------0--1------ V60 */
+ /* ---1-----1------ V60 */
+ /* ----1----1------ V60 */
+ /* --------0--1---- V60 */
+ /* ------0----1---- V60 */
+ /* ---1-------1---- V60 */
+ /* ----1------1---- V60 */
+ if (TTFF(m,n,j,l)) {
+ if (TTFF(g,i,d,e))
+ return V50;
+ else
+ return V51;
+ } else {
+ if (TTFF(g,i,d,e))
+ return V56;
+ else
+ return V60;
+ }
+ case 177:
+ /* abcdefghijklmnop */
+ /* -10--1-0-------- V60 */
+ /* -----0---------- V57 */
+ /* -0-------------- V57 */
+ /* --1------------- V57 */
+ /* -------1-------- V57 */
+ if (TTFF(b,f,c,h))
+ return V60;
+ else
+ return V57;
+ case 178:
+ case 179:
+ return V60;
+ case 180:
+ /* abcdefghijklmnop */
+ /* --11---------0-- V60 */
+ /* --11--------0--- V60 */
+ /* --11-----1------ V60 */
+ /* --11-------1---- V60 */
+ /* ---0------------ V51 */
+ /* --0------------- V51 */
+ /* ---------0-011-- V51 */
+ if (TT(c,d) && ANYTTFF(j,l,m,n))
+ return V60;
+ else
+ return V51;
+ case 181:
+ return V51;
+ case 182:
+ case 183:
+ case 184:
+ case 185:
+ case 186:
+ case 187:
+ case 188:
+ case 189:
+ case 190:
+ case 191:
+ return V60;
+ case 192:
+ case 193:
+ case 194:
+ case 195:
+ case 196:
+ case 197:
+ case 198:
+ case 199:
+ return V0;
+ case 200:
+ return V32;
+ case 201:
+ /* abcdefghijklmnop */
+ /* -11------------- V32 */
+ /* --0------------- V40 */
+ /* -0-------------- V40 */
+ if (TT(b,c))
+ return V32;
+ else
+ return V40;
+ case 202:
+ return V32;
+ case 203:
+ /* abcdefghijklmnop */
+ /* ---0----------0- V0 */
+ /* ---1----------0- V2 */
+ /* ---0----------1- V32 */
+ /* ---1----------1- V34 */
+ if (T(o)) {
+ if (T(d))
+ return V34;
+ else
+ return V32;
+ } else {
+ if (T(d))
+ return V2;
+ else
+ return V0;
+ }
+ case 204:
+ return V32;
+ case 205:
+ /* abcdefghijklmnop */
+ /* -11------------- V32 */
+ /* --0------------- V40 */
+ /* -0-------------- V40 */
+ if (TT(b,c))
+ return V32;
+ else
+ return V40;
+ case 206:
+ return V32;
+ case 207:
+ /* abcdefghijklmnop */
+ /* --------------0- V0 */
+ /* --------------1- V32 */
+ if (F(o))
+ return V0;
+ else
+ return V32;
+ case 208:
+ /* abcdefghijklmnop */
+ /* ---------001-110 V52 */
+ /* ----------00-110 V54 */
+ /* ---------10--110 V54 */
+ /* ---------0-1--0- V57 */
+ /* ---------0-1-0-- V57 */
+ /* ---------011---- V57 */
+ /* ---------0-1---1 V57 */
+ /* -----------0--0- V60 */
+ /* ---------1---0-- V60 */
+ /* ---------1----0- V60 */
+ /* -----------0-0-- V60 */
+ /* ----------10---- V60 */
+ /* ---------11----- V60 */
+ /* -----------0---1 V60 */
+ /* ---------1-----1 V60 */
+ if (TTFF(n,o,k,p)) {
+ if (TF(l,j))
+ return V52;
+ else
+ return V54;
+ } else {
+ if (TF(l,j))
+ return V57;
+ else
+ return V60;
+ }
+ case 209:
+ /* abcdefghijklmnop */
+ /* ----------0--110 V52 */
+ /* 10------------0- V55 */
+ /* 10-----------0-- V55 */
+ /* 10--------1----- V55 */
+ /* 10-------------1 V55 */
+ /* 0-------------0- V57 */
+ /* -1-----------0-- V57 */
+ /* -1------------0- V57 */
+ /* 0------------0-- V57 */
+ /* 0---------1----- V57 */
+ /* -1--------1----- V57 */
+ /* 0--------------1 V57 */
+ /* -1-------------1 V57 */
+ if (TTFF(n,o,k,p))
+ return V52;
+ else if (TF(a,b))
+ return V55;
+ else
+ return V57;
+ case 210:
+ case 211:
+ return V60;
+ case 212:
+ case 213:
+ return V55;
+ case 214:
+ case 215:
+ return V60;
+ case 216:
+ /* abcdefghijklmnop */
+ /* 00---1-1--0--110 V53 */
+ /* -------0--0--110 V54 */
+ /* -----0----0--110 V54 */
+ /* 1---------0--110 V54 */
+ /* -1--------0--110 V54 */
+ /* 00---1-1------0- V58 */
+ /* 00---1-1-----0-- V58 */
+ /* 00---1-1--1----- V58 */
+ /* 00---1-1-------1 V58 */
+ /* -------0------0- V60 */
+ /* -----0-------0-- V60 */
+ /* 1-------------0- V60 */
+ /* -1-----------0-- V60 */
+ /* -----0--------0- V60 */
+ /* -1------------0- V60 */
+ /* -------0-----0-- V60 */
+ /* 1------------0-- V60 */
+ /* -------0--1----- V60 */
+ /* -----0----1----- V60 */
+ /* 1---------1----- V60 */
+ /* -1--------1----- V60 */
+ /* -------0-------1 V60 */
+ /* -----0---------1 V60 */
+ /* 1--------------1 V60 */
+ /* -1-------------1 V60 */
+ if (TTFF(n,o,k,p)) {
+ if (TTFF(f,h,a,b))
+ return V53;
+ else
+ return V54;
+ } else {
+ if (TTFF(f,h,a,b))
+ return V58;
+ else
+ return V60;
+ }
+ case 217:
+ /* abcdefghijklmnop */
+ /* -11-----------0- V60 */
+ /* -11----------0-- V60 */
+ /* -11-------1----- V60 */
+ /* -11------------1 V60 */
+ /* --0------------- V54 */
+ /* -0-------------- V54 */
+ /* ----------0--110 V54 */
+ if (TT(b,c) && ANYTTFF(k,p,n,o))
+ return V60;
+ else
+ return V54;
+ case 218:
+ return V60;
+ case 219:
+ return V60;
+ case 220:
+ /* abcdefghijklmnop */
+ /* ---0----0------- V59 */
+ /* ------0-0------- V59 */
+ /* --01--1-0------- V60 */
+ /* --1-----1------- V47 */
+ /* --1-----0------- V59 */
+ /* --0-----1------- V59 */
+ if (TT(c,i))
+ return V47;
+ else if(TTFF(d,g,c,i))
+ return V60;
+ else
+ return V59;
+ case 221:
+ return V54;
+ case 222:
+ case 223:
+ return V60;
+ case 224:
+ case 225:
+ case 226:
+ case 227:
+ case 228:
+ case 229:
+ return V0;
+ case 230:
+ return V1;
+ case 231:
+ return V4;
+ case 232:
+ return V32;
+ case 233:
+ return V40;
+ case 234:
+ return V32;
+ case 235:
+ return V34;
+ case 236:
+ return V32;
+ case 237:
+ return V40;
+ case 238:
+ case 239:
+ return V33;
+ case 240:
+ /* abcdefghijklmnop */
+ /* -------101------ V60 */
+ /* ------01-1------ V60 */
+ /* ---1---1-1------ V60 */
+ /* ----1--1-1------ V60 */
+ /* ---------0------ V56 */
+ /* -------0-------- V56 */
+ /* ---00-1-1------- V56 */
+ if (TT(h,j) && ANYTTFF(d,e,g,i))
+ return V60;
+ else
+ return V56;
+ case 241:
+ return V56;
+ case 242:
+ case 243:
+ return V60;
+ case 244:
+ case 245:
+ return V57;
+ case 246:
+ case 247:
+ case 248:
+ case 249:
+ case 250:
+ case 251:
+ case 252:
+ case 253:
+ case 254:
+ case 255:
+ return V60;
+ case 256:
+ case 257:
+ case 258:
+ case 259:
+ case 260:
+ case 261:
+ case 262:
+ case 263:
+ case 264:
+ case 265:
+ case 266:
+ return V0;
+ case 267:
+ return V2;
+ case 268:
+ case 269:
+ case 270:
+ return V0;
+ case 271:
+ /* abcdefghijklmnop */
+ /* ------1-1------- V2 */
+ /* --------0------- V5 */
+ /* ------0--------- V5 */
+ if (TT(g,i))
+ return V2;
+ else
+ return V5;
+ case 272:
+ /* abcdefghijklmnop */
+ /* ----------0---01 V12 */
+ /* ----------1---01 V14 */
+ /* ----------0---11 V43 */
+ /* ---------------0 V45 */
+ /* ----------1---1- V45 */
+ if (TF(p,o)) {
+ if (T(k))
+ return V14;
+ else
+ return V12;
+ } else {
+ if (TTF(o,p,k))
+ return V43;
+ else
+ return V45;
+ }
+ case 273:
+ return V8;
+ case 274:
+ /* abcdefghijklmnop */
+ /* 011--0---------- V11 */
+ /* --0-----------01 V14 */
+ /* -0------------01 V14 */
+ /* 1-------------01 V14 */
+ /* -----1--------01 V14 */
+ /* --0------------0 V45 */
+ /* -0-------------0 V45 */
+ /* 1--------------0 V45 */
+ /* -----1---------0 V45 */
+ /* --0-----------1- V45 */
+ /* -0------------1- V45 */
+ /* 1-------------1- V45 */
+ /* -----1--------1- V45 */
+ if (TTFF(b,c,a,f))
+ return V11;
+ else if (TF(p,o))
+ return V14;
+ else
+ return V45;
+ case 275:
+ return V14;
+ case 276:
+ /* abcdefghijklmnop */
+ /* ---01---------01 V8 */
+ /* ----0---------01 V12 */
+ /* ---1----------01 V12 */
+ /* ---01----------0 V41 */
+ /* ---01---------1- V41 */
+ /* ----0----------0 V43 */
+ /* ---1-----------0 V43 */
+ /* ----0---------1- V43 */
+ /* ---1----------1- V43 */
+ if (TF(p,o)) {
+ if (TF(e,d))
+ return V8;
+ else
+ return V12;
+ } else {
+ if (TF(e,d))
+ return V41;
+ else
+ return V43;
+ }
+ case 277:
+ return V8;
+ case 278:
+ /* abcdefghijklmnop */
+ /* 011--0---------- V11 */
+ /* --0-----------01 V14 */
+ /* -0------------01 V14 */
+ /* 1-------------01 V14 */
+ /* -----1--------01 V14 */
+ /* --0------------0 V45 */
+ /* -0-------------0 V45 */
+ /* 1--------------0 V45 */
+ /* -----1---------0 V45 */
+ /* --0-----------1- V45 */
+ /* -0------------1- V45 */
+ /* 1-------------1- V45 */
+ /* -----1--------1- V45 */
+ if (TTFF(b,c,a,f))
+ return V11;
+ else if (TF(p,o))
+ return V14;
+ else
+ return V45;
+ case 279:
+ return V14;
+ case 280:
+ /* abcdefghijklmnop */
+ /* 00---1-1-------- V42 */
+ /* -------0--0----1 V43 */
+ /* -----0----0----1 V43 */
+ /* 1---------0----1 V43 */
+ /* -1--------0----1 V43 */
+ /* -------0-------0 V45 */
+ /* -----0---------0 V45 */
+ /* 1--------------0 V45 */
+ /* -1-------------0 V45 */
+ /* -------0--1----- V45 */
+ /* -----0----1----- V45 */
+ /* 1---------1----- V45 */
+ /* -1--------1----- V45 */
+ if (TTFF(f,h,a,b))
+ return V42;
+ else if (TF(p,k))
+ return V43;
+ else
+ return V45;
+ case 281:
+ return V43;
+ case 282:
+ /* abcdefghijklmnop */
+ /* --------0-1--01- V60 */
+ /* --------------0- V45 */
+ /* ----------0----- V45 */
+ /* --------1------- V45 */
+ /* -------------1-- V45 */
+ if (TTFF(k,o,i,n))
+ return V60;
+ else
+ return V45;
+ case 283:
+ /* abcdefghijklmnop */
+ /* ----------0--0-- V45 */
+ /* -------------00- V45 */
+ /* --------0-1--01- V60 */
+ /* --------1----1-- V16 */
+ /* --------0----1-- V45 */
+ /* --------1----0-- V45 */
+ if (TTFF(k,o,i,n))
+ return V60;
+ else if(TT(i,n))
+ return V16;
+ else
+ return V45;
+ case 284:
+ case 285:
+ return V43;
+ case 286:
+ case 287:
+ return V38;
+ case 288:
+ case 289:
+ case 290:
+ case 291:
+ case 292:
+ case 293:
+ return V0;
+ case 294:
+ /* abcdefghijklmnop */
+ /* -------------11- V1 */
+ /* --------------0- V6 */
+ /* -------------0-- V6 */
+ if (TT(n,o))
+ return V1;
+ else
+ return V6;
+ case 295:
+ case 296:
+ case 297:
+ case 298:
+ return V0;
+ case 299:
+ return V2;
+ case 300:
+ case 301:
+ return V0;
+ case 302:
+ return V6;
+ case 303:
+ /* abcdefghijklmnop */
+ /* ---------0------ V0 */
+ /* ---------1------ V2 */
+ if (T(j))
+ return V2;
+ else
+ return V0;
+ case 304:
+ /* abcdefghijklmnop */
+ /* ---00-1-1-----01 V26 */
+ /* ---00-1-1------0 V56 */
+ /* ---00-1-1-----1- V56 */
+ /* --------0-----01 V29 */
+ /* ------0-------01 V29 */
+ /* ---1----------01 V29 */
+ /* ----1---------01 V29 */
+ /* --------0------0 V60 */
+ /* ------0--------0 V60 */
+ /* ---1-----------0 V60 */
+ /* ----1----------0 V60 */
+ /* --------0-----1- V60 */
+ /* ------0-------1- V60 */
+ /* ---1----------1- V60 */
+ /* ----1---------1- V60 */
+ if (TTFF(g,i,d,e)) {
+ if (TF(p,o))
+ return V26;
+ else
+ return V56;
+ } else {
+ if (TF(p,o))
+ return V29;
+ else
+ return V60;
+ }
+ case 305:
+ return V27;
+ case 306:
+ /* abcdefghijklmnop */
+ /* --0----------11- V60 */
+ /* -0-----------11- V60 */
+ /* 1------------11- V60 */
+ /* -----1-------11- V60 */
+ /* --------------0- V28 */
+ /* -------------0-- V28 */
+ /* 011--0---------- V28 */
+ if (TT(n,o) && ANYTTFF(a,f,b,c))
+ return V60;
+ else
+ return V28;
+ case 307:
+ return V29;
+ case 308:
+ /* abcdefghijklmnop */
+ /* ---01---------01 V27 */
+ /* ----0---------01 V29 */
+ /* ---1----------01 V29 */
+ /* ---01----------0 V57 */
+ /* ---01---------1- V57 */
+ /* ----0----------0 V60 */
+ /* ---1-----------0 V60 */
+ /* ----0---------1- V60 */
+ /* ---1----------1- V60 */
+ if (TF(p,o)) {
+ if (TF(e,d))
+ return V27;
+ else
+ return V29;
+ } else {
+ if (TF(e,d))
+ return V57;
+ else
+ return V60;
+ }
+ case 309:
+ return V27;
+ case 310:
+ /* abcdefghijklmnop */
+ /* --0----------11- V60 */
+ /* -0-----------11- V60 */
+ /* 1------------11- V60 */
+ /* -----1-------11- V60 */
+ /* --------------0- V28 */
+ /* -------------0-- V28 */
+ /* 011--0---------- V28 */
+ if (TT(n,o) && ANYTTFF(a,f,b,c))
+ return V60;
+ else
+ return V28;
+ case 311:
+ return V29;
+ case 312:
+ case 313:
+ case 314:
+ case 315:
+ case 316:
+ case 317:
+ case 318:
+ case 319:
+ return V60;
+ case 320:
+ case 321:
+ case 322:
+ case 323:
+ case 324:
+ case 325:
+ case 326:
+ case 327:
+ case 328:
+ case 329:
+ case 330:
+ return V0;
+ case 331:
+ /* abcdefghijklmnop */
+ /* ------------11-- V2 */
+ /* -------------0-- V15 */
+ /* ------------0--- V15 */
+ if (TT(m,n))
+ return V2;
+ else
+ return V15;
+ case 332:
+ case 333:
+ case 334:
+ case 335:
+ return V0;
+ case 336:
+ /* abcdefghijklmnop */
+ /* ---------001---1 V8 */
+ /* ---------0-1---0 V10 */
+ /* ---------011---- V10 */
+ /* ----------00---1 V12 */
+ /* ---------10----1 V12 */
+ /* -----------0---0 V14 */
+ /* ---------1-----0 V14 */
+ /* ----------10---- V14 */
+ /* ---------11----- V14 */
+ if (TF(l,j)) {
+ if (TF(p,k))
+ return V8;
+ else
+ return V10;
+ } else {
+ if (TF(p,k))
+ return V12;
+ else
+ return V14;
+ }
+ case 337:
+ return V8;
+ case 338:
+ case 339:
+ return V14;
+ case 340:
+ return V8;
+ case 341:
+ return V60;
+ case 342:
+ case 343:
+ return V14;
+ case 344:
+ /* abcdefghijklmnop */
+ /* 00---1-1-------- V42 */
+ /* -------0--0----1 V43 */
+ /* -----0----0----1 V43 */
+ /* 1---------0----1 V43 */
+ /* -1--------0----1 V43 */
+ /* -------0-------0 V45 */
+ /* -----0---------0 V45 */
+ /* 1--------------0 V45 */
+ /* -1-------------0 V45 */
+ /* -------0--1----- V45 */
+ /* -----0----1----- V45 */
+ /* 1---------1----- V45 */
+ /* -1--------1----- V45 */
+ if (TTFF(f,h,a,b))
+ return V42;
+ else if (TF(p,k))
+ return V43;
+ else
+ return V45;
+ case 345:
+ return V43;
+ case 346:
+ case 347:
+ return V44;
+ case 348:
+ case 349:
+ return V43;
+ case 350:
+ case 351:
+ return V45;
+ case 352:
+ case 353:
+ case 354:
+ case 355:
+ case 356:
+ case 357:
+ return V0;
+ case 358:
+ /* abcdefghijklmnop */
+ /* -------------11- V1 */
+ /* --------------0- V6 */
+ /* -------------0-- V6 */
+ if (TT(n,o))
+ return V1;
+ else
+ return V6;
+ case 359:
+ case 360:
+ case 361:
+ case 362:
+ return V0;
+ case 363:
+ return V15;
+ case 364:
+ case 365:
+ return V0;
+ case 366:
+ return V6;
+ case 367:
+ return V0;
+ case 368:
+ /* abcdefghijklmnop */
+ /* ---00-1-1------- V26 */
+ /* --------00-1---- V27 */
+ /* ------0--0-1---- V27 */
+ /* ---1-----0-1---- V27 */
+ /* ----1----0-1---- V27 */
+ /* --------0--0---- V29 */
+ /* ------0----0---- V29 */
+ /* ---1-------0---- V29 */
+ /* ----1------0---- V29 */
+ /* --------01------ V29 */
+ /* ------0--1------ V29 */
+ /* ---1-----1------ V29 */
+ /* ----1----1------ V29 */
+ if (TTFF(g,i,d,e))
+ return V26;
+ else if (TF(l,j))
+ return V27;
+ else
+ return V29;
+ case 369:
+ return V27;
+ case 370:
+ return V28;
+ case 371:
+ return V29;
+ case 372:
+ case 373:
+ return V27;
+ case 374:
+ return V28;
+ case 375:
+ return V29;
+ case 376:
+ case 377:
+ case 378:
+ case 379:
+ case 380:
+ case 381:
+ case 382:
+ case 383:
+ return V60;
+ case 384:
+ case 385:
+ case 386:
+ case 387:
+ case 388:
+ case 389:
+ case 390:
+ case 391:
+ case 392:
+ case 393:
+ case 394:
+ return V0;
+ case 395:
+ return V2;
+ case 396:
+ case 397:
+ case 398:
+ return V0;
+ case 399:
+ return V5;
+ case 400:
+ /* abcdefghijklmnop */
+ /* ---------00011-1 V49 */
+ /* ---------0-011-0 V51 */
+ /* ---------01011-- V51 */
+ /* ----------0--0-1 V59 */
+ /* ----------0-0--1 V59 */
+ /* ---------10----1 V59 */
+ /* ----------01---1 V59 */
+ /* -------------0-0 V60 */
+ /* ------------0--0 V60 */
+ /* ---------1-----0 V60 */
+ /* -----------1---0 V60 */
+ /* ----------1--0-- V60 */
+ /* ----------1-0--- V60 */
+ /* ---------11----- V60 */
+ /* ----------11---- V60 */
+ if (TTFF(m,n,j,l)) {
+ if (TF(p,k))
+ return V49;
+ else
+ return V51;
+ } else {
+ if (TF(p,k))
+ return V59;
+ else
+ return V60;
+ }
+ case 401:
+ return V55;
+ case 402:
+ case 403:
+ return V60;
+ case 404:
+ /* abcdefghijklmnop */
+ /* ---------0-011-- V49 */
+ /* ---01--------0-- V55 */
+ /* ---01-------0--- V55 */
+ /* ---01----1------ V55 */
+ /* ---01------1---- V55 */
+ /* ----0--------0-- V59 */
+ /* ---1--------0--- V59 */
+ /* ---1---------0-- V59 */
+ /* ----0-------0--- V59 */
+ /* ----0----1------ V59 */
+ /* ---1-----1------ V59 */
+ /* ----0------1---- V59 */
+ /* ---1-------1---- V59 */
+ if (TTFF(m,n,j,l))
+ return V49;
+ else if (TF(e,d))
+ return V55;
+ else
+ return V59;
+ case 405:
+ return V55;
+ case 406:
+ case 407:
+ return V60;
+ case 408:
+ /* abcdefghijklmnop */
+ /* -------01-1----- V60 */
+ /* -----0--1-1----- V60 */
+ /* 1-------1-1----- V60 */
+ /* -1------1-1----- V60 */
+ /* ----------0----- V58 */
+ /* --------0------- V58 */
+ /* 00---1-1-------- V58 */
+ if (TT(i,k) && ANYTTFF(a,b,f,h))
+ return V60;
+ else
+ return V58;
+ case 409:
+ return V59;
+ case 410:
+ case 411:
+ return V60;
+ case 412:
+ return V58;
+ case 413:
+ return V59;
+ case 414:
+ case 415:
+ return V60;
+ case 416:
+ case 417:
+ case 418:
+ case 419:
+ return V17;
+ case 420:
+ /* abcdefghijklmnop */
+ /* --11------------ V17 */
+ /* ---0------------ V24 */
+ /* --0------------- V24 */
+ /* pass through */
+ case 421:
+ /* abcdefghijklmnop */
+ /* --11------------ V17 */
+ /* ---0------------ V24 */
+ /* --0------------- V24 */
+ if (TT(c,d))
+ return V17;
+ else
+ return V24;
+ case 422:
+ /* abcdefghijklmnop */
+ /* -0----------0--- V0 */
+ /* -1----------0--- V1 */
+ /* -0----------1--- V17 */
+ /* -1----------1--- V18 */
+ if (T(m)) {
+ if (T(b))
+ return V18;
+ else
+ return V17;
+ } else {
+ if (T(b))
+ return V1;
+ else
+ return V0;
+ }
+ case 423:
+ /* abcdefghijklmnop */
+ /* ------------0--- V0 */
+ /* ------------1--- V17 */
+ if (T(m))
+ return V17;
+ else
+ return V0;
+ case 424:
+ case 425:
+ case 426:
+ return V17;
+ case 427:
+ return V19;
+ case 428:
+ case 429:
+ return V24;
+ case 430:
+ return V18;
+ case 431:
+ return V19;
+ case 432:
+ /* abcdefghijklmnop */
+ /* ---00-1-10-011-- V50 */
+ /* --------00-011-- V51 */
+ /* ------0--0-011-- V51 */
+ /* ---1-----0-011-- V51 */
+ /* ----1----0-011-- V51 */
+ /* ---00-1-1----0-- V56 */
+ /* ---00-1-1---0--- V56 */
+ /* ---00-1-11------ V56 */
+ /* ---00-1-1--1---- V56 */
+ /* --------0----0-- V60 */
+ /* ------0-----0--- V60 */
+ /* ---1---------0-- V60 */
+ /* ----1-------0--- V60 */
+ /* ------0------0-- V60 */
+ /* ----1--------0-- V60 */
+ /* --------0---0--- V60 */
+ /* ---1--------0--- V60 */
+ /* --------01------ V60 */
+ /* ------0--1------ V60 */
+ /* ---1-----1------ V60 */
+ /* ----1----1------ V60 */
+ /* --------0--1---- V60 */
+ /* ------0----1---- V60 */
+ /* ---1-------1---- V60 */
+ /* ----1------1---- V60 */
+ if (TTFF(m,n,j,l)) {
+ if (TTFF(g,i,d,e))
+ return V50;
+ else
+ return V51;
+ } else {
+ if (TTFF(g,i,d,e))
+ return V56;
+ else
+ return V60;
+ }
+ case 433:
+ /* abcdefghijklmnop */
+ /* -0-----0-------- V57 */
+ /* -----0-0-------- V57 */
+ /* -10--1-0-------- V60 */
+ /* --1----1-------- V31 */
+ /* --1----0-------- V57 */
+ /* --0----1-------- V57 */
+ if (TTFF(b,f,c,h))
+ return V60;
+ else if (TT(c,h))
+ return V31;
+ else
+ return V57;
+ case 434:
+ case 435:
+ return V60;
+ case 436:
+ /* abcdefghijklmnop */
+ /* --11---------0-- V60 */
+ /* --11--------0--- V60 */
+ /* --11-----1------ V60 */
+ /* --11-------1---- V60 */
+ /* ---0------------ V51 */
+ /* --0------------- V51 */
+ /* ---------0-011-- V51 */
+ if (TT(c,d) && ANYTTFF(j,l,m,n))
+ return V60;
+ else
+ return V51;
+ case 437:
+ return V51;
+ case 438:
+ case 439:
+ case 440:
+ case 441:
+ case 442:
+ case 443:
+ case 444:
+ case 445:
+ case 446:
+ case 447:
+ return V60;
+ case 448:
+ case 449:
+ case 450:
+ case 451:
+ case 452:
+ case 453:
+ case 454:
+ case 455:
+ return V0;
+ case 456:
+ /* abcdefghijklmnop */
+ /* --------1-1----- V32 */
+ /* ----------0----- V46 */
+ /* --------0------- V46 */
+ if (TT(i,k))
+ return V32;
+ else
+ return V46;
+ case 457:
+ return V0;
+ case 458:
+ return V46;
+ case 459:
+ /* abcdefghijklmnop */
+ /* ---0------------ V0 */
+ /* ---1------------ V2 */
+ if (T(d))
+ return V2;
+ else
+ return V0;
+ case 460:
+ /* abcdefghijklmnop */
+ /* --------1-1----- V32 */
+ /* ----------0----- V46 */
+ /* --------0------- V46 */
+ if (TT(i,k))
+ return V32;
+ else
+ return V46;
+ case 461:
+ return V0;
+ case 462:
+ return V46;
+ case 463:
+ return V0;
+ case 464:
+ /* abcdefghijklmnop */
+ /* ---------001---1 V55 */
+ /* ---------0-1---0 V57 */
+ /* ---------011---- V57 */
+ /* ----------00---1 V59 */
+ /* ---------10----1 V59 */
+ /* -----------0---0 V60 */
+ /* ---------1-----0 V60 */
+ /* ----------10---- V60 */
+ /* ---------11----- V60 */
+ if (TF(l,j)) {
+ if (TF(p,k))
+ return V55;
+ else
+ return V57;
+ } else {
+ if (TF(p,k))
+ return V59;
+ else
+ return V60;
+ }
+ case 465:
+ return V55;
+ case 466:
+ case 467:
+ return V60;
+ case 468:
+ case 469:
+ return V55;
+ case 470:
+ case 471:
+ return V60;
+ case 472:
+ /* abcdefghijklmnop */
+ /* -------01-1----- V60 */
+ /* -----0--1-1----- V60 */
+ /* 1-------1-1----- V60 */
+ /* -1------1-1----- V60 */
+ /* ----------0----- V58 */
+ /* --------0------- V58 */
+ /* 00---1-1-------- V58 */
+ if (TT(i,k) && ANYTTFF(a,b,f,h))
+ return V60;
+ else
+ return V58;
+ case 473:
+ return V59;
+ case 474:
+ case 475:
+ return V60;
+ case 476:
+ return V58;
+ case 477:
+ return V59;
+ case 478:
+ case 479:
+ return V60;
+ case 480:
+ /* abcdefghijklmnop */
+ /* -------1-1------ V17 */
+ /* ---------0------ V30 */
+ /* -------0-------- V30 */
+ /* pass through */
+ case 481:
+ /* abcdefghijklmnop */
+ /* -------1-1------ V17 */
+ /* ---------0------ V30 */
+ /* -------0-------- V30 */
+ if (TT(h,j))
+ return V17;
+ else
+ return V30;
+ case 482:
+ case 483:
+ return V30;
+ case 484:
+ case 485:
+ return V0;
+ case 486:
+ /* abcdefghijklmnop */
+ /* -0-------------- V0 */
+ /* -1-------------- V1 */
+ if (T(b))
+ return V1;
+ else
+ return V0;
+ case 487:
+ return V0;
+ case 488:
+ /* abcdefghijklmnop */
+ /* -----00--------- V0 */
+ /* -----01--------- V17 */
+ /* -----10--------- V32 */
+ /* -----11--------- V39 */
+ if (T(f)) {
+ if (T(g))
+ return V39;
+ else
+ return V32;
+ } else {
+ if (T(g))
+ return V17;
+ else
+ return V0;
+ }
+ case 489:
+ /* abcdefghijklmnop */
+ /* ------0--------- V0 */
+ /* ------1--------- V17 */
+ if (T(g))
+ return V17;
+ else
+ return V0;
+ case 490:
+ return V39;
+ case 491:
+ return V19;
+ case 492:
+ /* abcdefghijklmnop */
+ /* -----0---------- V0 */
+ /* -----1---------- V32 */
+ if (T(f))
+ return V32;
+ else
+ return V0;
+ case 493:
+ return V0;
+ case 494:
+ return V33;
+ case 495:
+ return V0;
+ case 496:
+ /* abcdefghijklmnop */
+ /* -------101------ V60 */
+ /* ------01-1------ V60 */
+ /* ---1---1-1------ V60 */
+ /* ----1--1-1------ V60 */
+ /* ---------0------ V56 */
+ /* -------0-------- V56 */
+ /* ---00-1-1------- V56 */
+ if (TT(h,j) && ANYTTFF(d,e,g,i))
+ return V60;
+ else
+ return V56;
+ case 497:
+ return V56;
+ case 498:
+ case 499:
+ return V60;
+ case 500:
+ case 501:
+ return V57;
+ case 502:
+ case 503:
+ case 504:
+ case 505:
+ case 506:
+ case 507:
+ case 508:
+ case 509:
+ case 510:
+ case 511:
+ return V60;
+ }
+ /* Unreachable, returning an impossible value to irk the unit test. */
+ return 3;
+}
diff --git a/base/gsalpha.h b/base/simscale_foo.h
index 31c1b766..8d52a139 100644
--- a/base/gsalpha.h
+++ b/base/simscale_foo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -13,22 +13,12 @@
CA 94945, U.S.A., +1(415)492-9861, for further information.
*/
+/* Pixel stretching function for image mask interpolation filter */
-/* API for alpha value in graphics state */
+#ifndef simscale_foo_INCLUDED
+# define simscale_foo_INCLUDED
-#ifndef gsalpha_INCLUDED
-# define gsalpha_INCLUDED
+unsigned int imscale_foo(unsigned int v5x5);
-#include "gsgstate.h"
+#endif /* simscale_foo_INCLUDED */
-/*
- * This tiny little file is separate so that it can be included by
- * gsstate.c for initializing the alpha value, even in configurations
- * that don't have full alpha support.
- */
-
-/* Set/read alpha value. */
-int gs_setalpha(gs_gstate *, double);
-float gs_currentalpha(const gs_gstate *);
-
-#endif /* gsalpha_INCLUDED */
diff --git a/base/siscale.c b/base/siscale.c
index 88268ee5..cc575d20 100644
--- a/base/siscale.c
+++ b/base/siscale.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -966,10 +966,10 @@ do_init(stream_state *st,
sizeof(CONTRIB), "image_scale contrib_dst[*]");
/* Allocate buffers for 1 row of source and destination. */
ss->dst =
- gs_alloc_byte_array(mem, limited_WidthOut * ss->params.spp_interp,
+ gs_alloc_byte_array(mem, (size_t)limited_WidthOut * ss->params.spp_interp,
ss->sizeofPixelOut, "image_scale dst");
ss->src =
- gs_alloc_byte_array(mem, ss->params.WidthIn * ss->params.spp_interp,
+ gs_alloc_byte_array(mem, (size_t)ss->params.WidthIn * ss->params.spp_interp,
ss->sizeofPixelIn, "image_scale src");
if (ss->tmp == 0 || ss->contrib == 0 || ss->items == 0 ||
ss->dst_items == 0 || ss->dst == 0 || ss->src == 0
diff --git a/base/siscale.h b/base/siscale.h
index 4ac61e8f..3f691471 100644
--- a/base/siscale.h
+++ b/base/siscale.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/siscale_cal.c b/base/siscale_cal.c
index 2546264e..0bb68181 100644
--- a/base/siscale_cal.c
+++ b/base/siscale_cal.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2017 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/sisparam.h b/base/sisparam.h
index 8082270b..69713797 100644
--- a/base/sisparam.h
+++ b/base/sisparam.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/sjbig2.c b/base/sjbig2.c
index 6a573d6c..55b39356 100644
--- a/base/sjbig2.c
+++ b/base/sjbig2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -42,7 +42,7 @@ private_st_jbig2decode_state(); /* creates a gc object for our state, defined in
/* error callback for jbig2 decoder */
static void
s_jbig2decode_error(void *callback_data, const char *msg, Jbig2Severity severity,
- int32_t seg_idx)
+ uint32_t seg_idx)
{
s_jbig2_callback_data_t *error_data = (s_jbig2_callback_data_t *)callback_data;
const char *type;
@@ -62,7 +62,7 @@ s_jbig2decode_error(void *callback_data, const char *msg, Jbig2Severity severity
break;;
default: type = "unknown message:"; break;;
}
- if (seg_idx == -1) segment[0] = '\0';
+ if (seg_idx == JBIG2_UNKNOWN_SEGMENT_NUMBER) segment[0] = '\0';
else gs_sprintf(segment, "(segment 0x%02x)", seg_idx);
if (error_data)
@@ -170,9 +170,9 @@ s_jbig2decode_flush_errors(void *callback_data)
/* jbig2 and postscript have different senses of what pixel
value is black, so we must invert the image */
static void
-s_jbig2decode_invert_buffer(unsigned char *buf, int length)
+s_jbig2decode_invert_buffer(unsigned char *buf, size_t length)
{
- int i;
+ size_t i;
for (i = 0; i < length; i++)
*buf++ ^= 0xFF;
@@ -347,8 +347,8 @@ s_jbig2decode_process(stream_state * ss, stream_cursor_read * pr,
{
stream_jbig2decode_state *const state = (stream_jbig2decode_state *) ss;
Jbig2Image *image = state->image;
- long in_size = pr->limit - pr->ptr;
- long out_size = pw->limit - pw->ptr;
+ size_t in_size = pr->limit - pr->ptr;
+ size_t out_size = pw->limit - pw->ptr;
int status = 0;
/* there will only be a single page image,
@@ -377,8 +377,8 @@ s_jbig2decode_process(stream_state * ss, stream_cursor_read * pr,
}
if (image != NULL) {
/* copy data out of the decoded image, if any */
- long image_size = image->height*image->stride;
- long usable = min(image_size - state->offset, out_size);
+ size_t image_size = (size_t)image->height*image->stride;
+ size_t usable = min(image_size - state->offset, out_size);
memcpy(pw->ptr + 1, image->data + state->offset, usable);
s_jbig2decode_invert_buffer(pw->ptr + 1, usable);
state->offset += usable;
diff --git a/base/sjbig2.h b/base/sjbig2.h
index 3b63808f..4c6e7032 100644
--- a/base/sjbig2.h
+++ b/base/sjbig2.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -47,7 +47,7 @@ typedef struct stream_jbig2decode_state_s
Jbig2GlobalCtx *global_ctx;
Jbig2Ctx *decode_ctx;
Jbig2Image *image;
- long offset; /* offset into the image bitmap of the next byte to be returned */
+ size_t offset; /* offset into the image bitmap of the next byte to be returned */
s_jbig2_callback_data_t *callback_data; /* is allocated in non-gc memory */
}
stream_jbig2decode_state;
diff --git a/base/sjbig2_luratech.c b/base/sjbig2_luratech.c
index f8a78157..9a3e0c54 100644
--- a/base/sjbig2_luratech.c
+++ b/base/sjbig2_luratech.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/sjbig2_luratech.h b/base/sjbig2_luratech.h
index 9581b54a..0c0bcd2a 100644
--- a/base/sjbig2_luratech.h
+++ b/base/sjbig2_luratech.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/sjpeg.h b/base/sjpeg.h
index 09d5e89e..1a0877f9 100644
--- a/base/sjpeg.h
+++ b/base/sjpeg.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/sjpegc.c b/base/sjpegc.c
index a54cc933..bea397a3 100644
--- a/base/sjpegc.c
+++ b/base/sjpegc.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/sjpegd.c b/base/sjpegd.c
index d7cb2f9b..16b71df6 100644
--- a/base/sjpegd.c
+++ b/base/sjpegd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/sjpege.c b/base/sjpege.c
index 34e68a1d..9663ca85 100644
--- a/base/sjpege.c
+++ b/base/sjpege.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/sjpx_luratech.c b/base/sjpx_luratech.c
index 0314fbf4..aa0d1131 100644
--- a/base/sjpx_luratech.c
+++ b/base/sjpx_luratech.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/sjpx_luratech.h b/base/sjpx_luratech.h
index a2f4db4d..92c66c49 100644
--- a/base/sjpx_luratech.h
+++ b/base/sjpx_luratech.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/sjpx_none.c b/base/sjpx_none.c
index 27cc230a..38767618 100644
--- a/base/sjpx_none.c
+++ b/base/sjpx_none.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/sjpx_openjpeg.c b/base/sjpx_openjpeg.c
index a4d7884e..f0db34e1 100644
--- a/base/sjpx_openjpeg.c
+++ b/base/sjpx_openjpeg.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -471,7 +471,7 @@ static int decode_image(stream_jpxd_state * const state)
/* calculate total data */
rowbytes = (state->width*state->bpp*state->out_numcomps+7)/8;
- state->totalbytes = rowbytes*state->height;
+ state->totalbytes = (ulong)rowbytes*state->height;
state->pdata = (int **)gs_alloc_byte_array(state->memory->non_gc_memory, sizeof(int*)*state->image->numcomps, 1, "decode_image(pdata)");
if (!state->pdata)
@@ -503,7 +503,8 @@ static int process_one_trunk(stream_jpxd_state * const state, stream_cursor_writ
int shift_bit = state->bpp-state->image->comps[0].prec; /*difference between input and output bit-depth*/
int img_numcomps = min(state->out_numcomps, state->image->numcomps); /* the actual number of channel data used */
int compno;
- unsigned long i;
+ unsigned long il;
+ int i;
int b;
byte *row;
unsigned int x_offset;
@@ -649,12 +650,12 @@ static int process_one_trunk(stream_jpxd_state * const state, stream_cursor_writ
}
pw->ptr++;
- i = (write_size > (unsigned long)(row_size - x_offset)) ? (row_size - x_offset) : (unsigned int)write_size;
- memcpy(pw->ptr, &state->row_data[x_offset], i);
- pw->ptr += i;
+ il = (write_size > (unsigned long)(row_size - x_offset)) ? (row_size - x_offset) : (unsigned int)write_size;
+ memcpy(pw->ptr, &state->row_data[x_offset], il);
+ pw->ptr += il;
pw->ptr--;
- state->out_offset += i;
- write_size -= i;
+ state->out_offset += il;
+ write_size -= il;
if (write_size == 0)
break;
}
diff --git a/base/sjpx_openjpeg.h b/base/sjpx_openjpeg.h
index a55620d2..be129983 100644
--- a/base/sjpx_openjpeg.h
+++ b/base/sjpx_openjpeg.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/slzwc.c b/base/slzwc.c
index a1859df5..91b2ec5c 100644
--- a/base/slzwc.c
+++ b/base/slzwc.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/slzwd.c b/base/slzwd.c
index 9048798a..25ffd0dc 100644
--- a/base/slzwd.c
+++ b/base/slzwd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/slzwe.c b/base/slzwe.c
index 1e582b29..aab5091d 100644
--- a/base/slzwe.c
+++ b/base/slzwe.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/slzwx.h b/base/slzwx.h
index 7274bebb..889950d3 100644
--- a/base/slzwx.h
+++ b/base/slzwx.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/smd5.c b/base/smd5.c
index 99820dc7..a4f70572 100644
--- a/base/smd5.c
+++ b/base/smd5.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/smd5.h b/base/smd5.h
index e623a943..a7df7463 100644
--- a/base/smd5.h
+++ b/base/smd5.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/smtf.h b/base/smtf.h
index 99fce9fc..83074a3d 100644
--- a/base/smtf.h
+++ b/base/smtf.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/spdiff.c b/base/spdiff.c
index 44d239d0..7ffc8aa9 100644
--- a/base/spdiff.c
+++ b/base/spdiff.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/spdiffx.h b/base/spdiffx.h
index 7226679d..fa3c59d4 100644
--- a/base/spdiffx.h
+++ b/base/spdiffx.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/spngp.c b/base/spngp.c
index 909f27e4..bc0d73ad 100644
--- a/base/spngp.c
+++ b/base/spngp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/spngpx.h b/base/spngpx.h
index de45dfba..ae75d0e3 100644
--- a/base/spngpx.h
+++ b/base/spngpx.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/spprint.c b/base/spprint.c
index cc12d397..a72a0c30 100644
--- a/base/spprint.c
+++ b/base/spprint.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -156,7 +156,7 @@ pprintg6(stream * s, const char *format, double v1, double v2, double v3,
/* Print a long value using a format. */
const char *
-pprintld1(stream * s, const char *format, long v)
+pprintld1(stream *s, const char *format, long v)
{
const char *fp = pprintf_scan(s, format);
char str[25];
@@ -170,16 +170,80 @@ pprintld1(stream * s, const char *format, long v)
return pprintf_scan(s, fp + 3);
}
const char *
-pprintld2(stream * s, const char *format, long v1, long v2)
+pprintld2(stream *s, const char *format, long v1, long v2)
{
return pprintld1(s, pprintld1(s, format, v1), v2);
}
const char *
-pprintld3(stream * s, const char *format, long v1, long v2, long v3)
+pprintld3(stream *s, const char *format, long v1, long v2, long v3)
{
return pprintld2(s, pprintld1(s, format, v1), v2, v3);
}
+/* Print a size_t value using a format. */
+const char *
+pprintzd1(stream *s, const char *format, size_t v)
+{
+ const char *fp = pprintf_scan(s, format);
+ char str[25];
+ const size_t z = strlen("%"PRIdSIZE);
+
+#ifdef DEBUG
+ size_t i;
+
+ for (i = 0; i < z; i++)
+ if (fp[i] != ("%"PRIdSIZE)[i])
+ break;
+ if (i != z)
+ lprintf1("Bad format in pprintzd: %s\n", format);
+#endif
+ gs_sprintf(str, "%"PRIdSIZE, v);
+ pputs_short(s, str);
+ return pprintf_scan(s, fp + z);
+}
+const char *
+pprintzd2(stream *s, const char *format, size_t v1, size_t v2)
+{
+ return pprintzd1(s, pprintzd1(s, format, v1), v2);
+}
+const char *
+pprintzd3(stream *s, const char *format, size_t v1, size_t v2, size_t v3)
+{
+ return pprintzd2(s, pprintzd1(s, format, v1), v2, v3);
+}
+
+/* Print an int64_t value using a format. */
+const char *
+pprinti64d1(stream *s, const char *format, int64_t v)
+{
+ const char *fp = pprintf_scan(s, format);
+ char str[25];
+ const size_t z = strlen("%"PRId64);
+
+#ifdef DEBUG
+ size_t i;
+
+ for (i = 0; i < z; i++)
+ if (fp[i] != ("%"PRId64)[i])
+ break;
+ if (i != z)
+ lprintf1("Bad format in pprinti64d: %s\n", format);
+#endif
+ gs_sprintf(str, "%"PRId64, v);
+ pputs_short(s, str);
+ return pprintf_scan(s, fp + z);
+}
+const char *
+pprinti64d2(stream *s, const char *format, int64_t v1, int64_t v2)
+{
+ return pprinti64d1(s, pprinti64d1(s, format, v1), v2);
+}
+const char *
+pprinti64d3(stream *s, const char *format, int64_t v1, int64_t v2, int64_t v3)
+{
+ return pprinti64d2(s, pprinti64d1(s, format, v1), v2, v3);
+}
+
/* Print (a) string(s) using a format. */
const char *
pprints1(stream * s, const char *format, const char *str)
diff --git a/base/spprint.h b/base/spprint.h
index 3e5f57a4..a6ee7605 100644
--- a/base/spprint.h
+++ b/base/spprint.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -67,6 +67,18 @@ const char *pprintld2(stream * s, const char *format, long v1, long v2);
const char *pprintld3(stream * s, const char *format,
long v1, long v2, long v3);
+/* Print a size_t value using a format. */
+const char *pprintzd1(stream *s, const char *format, size_t v);
+const char *pprintzd2(stream *s, const char *format, size_t v1, size_t v2);
+const char *pprintzd3(stream *s, const char *format,
+ size_t v1, size_t v2, size_t v3);
+
+/* Print an int64_t value using a format. */
+const char *pprinti64d1(stream *s, const char *format, int64_t v);
+const char *pprinti64d2(stream *s, const char *format, int64_t v1, int64_t v2);
+const char *pprinti64d3(stream *s, const char *format,
+ int64_t v1, int64_t v2, int64_t v3);
+
/* Print (a) string(s) using a format. */
const char *pprints1(stream * s, const char *format, const char *str);
const char *pprints2(stream * s, const char *format,
diff --git a/base/spsdf.c b/base/spsdf.c
index 2f2a3f78..9751fa3f 100644
--- a/base/spsdf.c
+++ b/base/spsdf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -213,7 +213,13 @@ param_print_typed(gs_param_list * plist, gs_param_name pkey,
pprintd1(s, " %d", pvalue->value.i);
break;
case gs_param_type_long:
- pprintld1(s, " %l", pvalue->value.l);
+ pprintld1(s, " %ld", pvalue->value.l);
+ break;
+ case gs_param_type_size_t:
+ pprintzd1(s, " %"PRIdSIZE, pvalue->value.z);
+ break;
+ case gs_param_type_i64:
+ pprinti64d1(s, " %"PRId64, pvalue->value.i64);
break;
case gs_param_type_float:
pprintg1(s, " %g", pvalue->value.f);
diff --git a/base/spsdf.h b/base/spsdf.h
index e9a077b5..421155f1 100644
--- a/base/spsdf.h
+++ b/base/spsdf.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/srdline.h b/base/srdline.h
index 17b82339..d9229267 100644
--- a/base/srdline.h
+++ b/base/srdline.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/srld.c b/base/srld.c
index e661f7ed..f2aea0d3 100644
--- a/base/srld.c
+++ b/base/srld.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/srle.c b/base/srle.c
index 21b729f3..c54be127 100644
--- a/base/srle.c
+++ b/base/srle.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/srlx.h b/base/srlx.h
index 98309dbd..d015d073 100644
--- a/base/srlx.h
+++ b/base/srlx.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/ssha2.c b/base/ssha2.c
index 05c25500..896f44e7 100644
--- a/base/ssha2.c
+++ b/base/ssha2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/ssha2.h b/base/ssha2.h
index 5c0e450c..7495c565 100644
--- a/base/ssha2.h
+++ b/base/ssha2.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/sstring.c b/base/sstring.c
index 18ca77f2..8edcc235 100644
--- a/base/sstring.c
+++ b/base/sstring.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/sstring.h b/base/sstring.h
index 0085e167..28e5eae7 100644
--- a/base/sstring.h
+++ b/base/sstring.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/stat_.h b/base/stat_.h
index 43d49dd1..5389e0d0 100644
--- a/base/stat_.h
+++ b/base/stat_.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/std.h b/base/std.h
index 9c9e817f..aec4b42c 100644
--- a/base/std.h
+++ b/base/std.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -40,6 +40,7 @@
#define ARCH_SIZEOF_LONG (1 << ARCH_LOG2_SIZEOF_LONG)
#define ARCH_SIZEOF_LONG_LONG (1 << ARCH_LOG2_SIZEOF_LONG_LONG)
#define ARCH_INTS_ARE_SHORT (ARCH_SIZEOF_INT == ARCH_SIZEOF_SHORT)
+#define ARCH_SIZEOF_INT64_T 8
/* Define whether we are on a large- or small-memory machine. */
/* Currently, we assume small memory and 16-bit ints are synonymous. */
diff --git a/base/stdint_.h b/base/stdint_.h
index 39ab5ac4..537824bd 100644
--- a/base/stdint_.h
+++ b/base/stdint_.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -173,6 +173,10 @@ typedef unsigned long long uint64_t;
# define PRIu32 "u"
# endif
+# ifndef PRIx32
+# define PRIx32 "x"
+# endif
+
# ifndef PRIu64
# define PRIu64 "llu"
# endif
@@ -232,4 +236,16 @@ typedef unsigned long long uint64_t;
# endif
# endif
+/* Pointers are hard to do in pure PRIxPTR style, as some platforms
+ * add 0x before the pointer, and others don't. To be consistent, we
+ * therefore roll our own. The difference here is that we always
+ * include the 0x and the % ourselves, and require the arg to be
+ * cast to an intptr_t.
+*/
+# if ARCH_SIZEOF_SIZE_T == 4
+# define PRI_INTPTR "0x%" PRIx32
+# else
+# define PRI_INTPTR "0x%" PRIx64
+# endif
+
#endif /* stdint__INCLUDED */
diff --git a/base/stdio_.h b/base/stdio_.h
index 0e422d78..034d56ad 100644
--- a/base/stdio_.h
+++ b/base/stdio_.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/stdpre.h b/base/stdpre.h
index 5dd068d9..84b4e40e 100644
--- a/base/stdpre.h
+++ b/base/stdpre.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -42,11 +42,13 @@ typedef struct gp_file_s gp_file;
* Here we deal with the vagaries of various C compilers. We assume that:
* ANSI-standard Unix compilers define __STDC__.
* gcc defines __GNUC__.
- * Borland Turbo C and Turbo C++ define __MSDOS__ and __TURBOC__.
- * Borland C++ defines __BORLANDC__, __MSDOS__, and __TURBOC__.
* Microsoft C/C++ defines _MSC_VER and _MSDOS.
+ *
+ * The following are compilers we no longer support:
* Watcom C defines __WATCOMC__ and MSDOS.
* MetroWerks C defines __MWERKS__.
+ * Borland Turbo C and Turbo C++ define __MSDOS__ and __TURBOC__.
+ * Borland C++ defines __BORLANDC__, __MSDOS__, and __TURBOC__.
*
* We arrange to define __MSDOS__ on all the MS-DOS platforms.
*/
@@ -378,18 +380,12 @@ typedef int bool;
/*
* Define the type to be used for ordering pointers (<, >=, etc.).
- * The Borland and Microsoft large models only compare the offset part
- * of segmented pointers. Semantically, the right type to use for the
- * comparison is char huge *, but we have no idea how expensive comparing
- * such pointers is, and any type that compares all the bits of the pointer,
- * gives the right result for pointers in the same segment, and keeps
- * different segments disjoint will do.
+ * This used to have 'unsigned long' for comparison of segment+offset,
+ * but that hasn't been an issue for YEARS. The old version was not
+ * compatible with 64-bit.
*/
-#if defined(__TURBOC__) || defined(_MSC_VER)
-typedef unsigned long ptr_ord_t;
-#else
typedef const char *ptr_ord_t;
-#endif
+
/* Define all the pointer comparison operations. */
#define _PTR_CMP(p1, rel, p2) ((ptr_ord_t)(p1) rel (ptr_ord_t)(p2))
#define PTR_LE(p1, p2) _PTR_CMP(p1, <=, p2)
diff --git a/base/stream.c b/base/stream.c
index e8140014..30648bd5 100644
--- a/base/stream.c
+++ b/base/stream.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -79,11 +79,11 @@ stream_finalize(const gs_memory_t *cmem, void *vptr)
stream *const st = vptr;
(void)cmem; /* unused */
- if_debug2m('u', st->memory, "[u]%s 0x%lx\n",
+ if_debug2m('u', st->memory, "[u]%s "PRI_INTPTR"\n",
(!s_is_valid(st) ? "already closed:" :
st->is_temp ? "is_temp set:" :
st->file == 0 ? "not file:" :
- "closing file:"), (ulong) st);
+ "closing file:"), (intptr_t) st);
if (s_is_valid(st) && !st->is_temp && st->file != 0) {
/* Prevent any attempt to free the buffer. */
st->cbuf = 0;
@@ -118,8 +118,8 @@ s_alloc(gs_memory_t * mem, client_name_t cname)
{
stream *s = gs_alloc_struct(mem, stream, &st_stream, cname);
- if_debug2m('s', mem, "[s]alloc(%s) = 0x%lx\n",
- client_name_string(cname), (ulong) s);
+ if_debug2m('s', mem, "[s]alloc(%s) = "PRI_INTPTR"\n",
+ client_name_string(cname), (intptr_t) s);
if (s == 0)
return 0;
s_init(s, mem);
@@ -143,10 +143,10 @@ s_alloc_state(gs_memory_t * mem, gs_memory_type_ptr_t stype,
{
stream_state *st = gs_alloc_struct(mem, stream_state, stype, cname);
- if_debug3m('s', mem, "[s]alloc_state %s(%s) = 0x%lx\n",
+ if_debug3m('s', mem, "[s]alloc_state %s(%s) = "PRI_INTPTR"\n",
client_name_string(cname),
client_name_string(stype->sname),
- (ulong) st);
+ (intptr_t) st);
if (st)
s_init_state(st, NULL, mem);
return st;
@@ -175,8 +175,8 @@ s_std_init(register stream * s, byte * ptr, uint len, const stream_procs * pp,
s->file_name.data = 0; /* in case stream is on stack */
s->file_name.size = 0;
if (s->memory) {
- if_debug4m('s', s->memory, "[s]init 0x%lx, buf=0x%lx, len=%u, modes=%d\n",
- (ulong) s, (ulong) ptr, len, modes);
+ if_debug4m('s', s->memory, "[s]init "PRI_INTPTR", buf="PRI_INTPTR", len=%u, modes=%d\n",
+ (intptr_t) s, (intptr_t) ptr, len, modes);
}
}
@@ -316,7 +316,7 @@ s_disable(register stream * s)
}
/****** SHOULD DO MORE THAN THIS ******/
if (s->memory) {
- if_debug1m('s', s->memory, "[s]disable 0x%lx\n", (ulong) s);
+ if_debug1m('s', s->memory, "[s]disable "PRI_INTPTR"\n", (intptr_t) s);
}
}
@@ -816,14 +816,14 @@ sreadbuf(stream * s, stream_cursor_write * pbuf)
eof = strm->end_status == EOFC;
}
pw = (prev == 0 ? pbuf : &curr->cursor.w);
- if_debug4m('s', s->memory, "[s]read process 0x%lx, nr=%u, nw=%u, eof=%d\n",
- (ulong) curr, (uint) (pr->limit - pr->ptr),
+ if_debug4m('s', s->memory, "[s]read process "PRI_INTPTR", nr=%u, nw=%u, eof=%d\n",
+ (intptr_t) curr, (uint) (pr->limit - pr->ptr),
(uint) (pw->limit - pw->ptr), eof);
oldpos = pw->ptr;
status = (*curr->procs.process) (curr->state, pr, pw, eof);
pr->limit += left;
- if_debug5m('s', s->memory, "[s]after read 0x%lx, nr=%u, nw=%u, status=%d, position=%"PRId64"\n",
- (ulong) curr, (uint) (pr->limit - pr->ptr),
+ if_debug5m('s', s->memory, "[s]after read "PRI_INTPTR", nr=%u, nw=%u, status=%d, position=%"PRId64"\n",
+ (intptr_t) curr, (uint) (pr->limit - pr->ptr),
(uint) (pw->limit - pw->ptr), status, s->position);
if (strm == 0 || status != 0)
break;
@@ -900,8 +900,8 @@ swritebuf(stream * s, stream_cursor_read * pbuf, bool last)
else
pr = &curr->cursor.r;
if_debug5m('s', s->memory,
- "[s]write process 0x%lx(%s), nr=%u, nw=%u, end=%d\n",
- (ulong)curr,
+ "[s]write process "PRI_INTPTR"(%s), nr=%u, nw=%u, end=%d\n",
+ (intptr_t)curr,
gs_struct_type_name(curr->state->templat->stype),
(uint)(pr->limit - pr->ptr),
(uint)(pw->limit - pw->ptr), end);
@@ -909,8 +909,8 @@ swritebuf(stream * s, stream_cursor_read * pbuf, bool last)
if (status >= 0) {
status = (*curr->procs.process)(curr->state, pr, pw, end);
if_debug5m('s', s->memory,
- "[s]after write 0x%lx, nr=%u, nw=%u, end=%d, status=%d\n",
- (ulong) curr, (uint) (pr->limit - pr->ptr),
+ "[s]after write "PRI_INTPTR", nr=%u, nw=%u, end=%d, status=%d\n",
+ (intptr_t) curr, (uint) (pr->limit - pr->ptr),
(uint) (pw->limit - pw->ptr), end, status);
if (status == 0 && end)
status = EOFC;
diff --git a/base/stream.h b/base/stream.h
index 2d2ad8d2..a9fcf100 100644
--- a/base/stream.h
+++ b/base/stream.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -422,7 +422,7 @@ extern const stream_procs s_filter_read_procs, s_filter_write_procs;
*/
int s_init_filter(stream *fs, stream_state *fss, byte *buf, uint bsize,
stream *target);
-stream *s_add_filter(stream **ps, const stream_template *template,
+stream *s_add_filter(stream **ps, const stream_template *template_,
stream_state *ss, gs_memory_t *mem);
/*
diff --git a/base/strimpl.h b/base/strimpl.h
index 168490b0..166bccf4 100644
--- a/base/strimpl.h
+++ b/base/strimpl.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/string_.h b/base/string_.h
index 9c8ddbcc..c4d56599 100644
--- a/base/string_.h
+++ b/base/string_.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/strmio.c b/base/strmio.c
index fbbfe871..aed84fb2 100644
--- a/base/strmio.c
+++ b/base/strmio.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -202,7 +202,7 @@ s_stdin_read_process(stream_state * st, stream_cursor_read * ignore_pr,
/* do the callout */
if (core->stdin_fn)
count = (*core->stdin_fn)
- (core->caller_handle, (char *)pw->ptr + 1,
+ (core->std_caller_handle, (char *)pw->ptr + 1,
core->stdin_is_interactive ? 1 : wcount);
else
count = gp_stdin_read((char *)pw->ptr + 1, wcount,
diff --git a/base/strmio.h b/base/strmio.h
index 09eba8e3..5b43e00a 100644
--- a/base/strmio.h
+++ b/base/strmio.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/stub.mak b/base/stub.mak
index da885ee3..b09a30fa 100644
--- a/base/stub.mak
+++ b/base/stub.mak
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2019 Artifex Software, Inc.
+# Copyright (C) 2001-2020 Artifex Software, Inc.
# All Rights Reserved.
#
# This software is provided AS-IS with no warranty, either express or
diff --git a/base/szlibc.c b/base/szlibc.c
index c2624982..ee123fa1 100644
--- a/base/szlibc.c
+++ b/base/szlibc.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -110,7 +110,7 @@ s_zlib_free(void *zmem, void *data)
gs_free_object(mem, data, "s_zlib_free(data)");
for (; ; block = block->next) {
if (block == 0) {
- lprintf1("Freeing unrecorded data 0x%lx!\n", (ulong)data);
+ lprintf1("Freeing unrecorded data "PRI_INTPTR"!\n", (intptr_t)data);
return;
}
if (block->data == data)
diff --git a/base/szlibd.c b/base/szlibd.c
index 375be919..b0f15a4c 100644
--- a/base/szlibd.c
+++ b/base/szlibd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/szlibe.c b/base/szlibe.c
index 4073dfc9..028ed5e6 100644
--- a/base/szlibe.c
+++ b/base/szlibe.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/szlibx.h b/base/szlibx.h
index ccc4ed9f..76a5aef0 100644
--- a/base/szlibx.h
+++ b/base/szlibx.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/szlibxx.h b/base/szlibxx.h
index da5bcd8b..eae78b9f 100644
--- a/base/szlibxx.h
+++ b/base/szlibxx.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/tess_version.h b/base/tess_version.h
new file mode 100644
index 00000000..53ce9407
--- /dev/null
+++ b/base/tess_version.h
@@ -0,0 +1,30 @@
+///////////////////////////////////////////////////////////////////////
+// File: version.h
+// Description: Version information
+//
+// (C) Copyright 2018, Google Inc.
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+// http://www.apache.org/licenses/LICENSE-2.0
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+///////////////////////////////////////////////////////////////////////
+
+#ifndef TESSERACT_API_VERSION_H_
+#define TESSERACT_API_VERSION_H_
+
+#define TESSERACT_MAJOR_VERSION 4
+#define TESSERACT_MINOR_VERSION 1
+#define TESSERACT_MICRO_VERSION 1
+#define TESSERACT_VERSION \
+ (TESSERACT_MAJOR_VERSION << 16 | \
+ TESSERACT_MINOR_VERSION << 8 | \
+ TESSERACT_MICRO_VERSION)
+#define TESSERACT_VERSION_STR "4.1.1-3-ge6cc2"
+
+#endif // TESSERACT_API_VERSION_H_
diff --git a/base/tesseract.mak b/base/tesseract.mak
new file mode 100644
index 00000000..3dcc3ff0
--- /dev/null
+++ b/base/tesseract.mak
@@ -0,0 +1,1173 @@
+TESSINCLUDES=\
+ $(I_)$(TESSERACTDIR)$(_I)\
+ $(I_)$(TESSERACTDIR)/include$(_I)\
+ $(I_)$(TESSERACTDIR)/src/api$(_I)\
+ $(I_)$(TESSERACTDIR)/src/arch$(_I)\
+ $(I_)$(TESSERACTDIR)/src/ccmain$(_I)\
+ $(I_)$(TESSERACTDIR)/src/ccstruct$(_I)\
+ $(I_)$(TESSERACTDIR)/src/ccutil$(_I)\
+ $(I_)$(TESSERACTDIR)/src/classify$(_I)\
+ $(I_)$(TESSERACTDIR)/src/cutil$(_I)\
+ $(I_)$(TESSERACTDIR)/src/dict$(_I)\
+ $(I_)$(TESSERACTDIR)/src/lstm$(_I)\
+ $(I_)$(TESSERACTDIR)/src/opencl$(_I)\
+ $(I_)$(TESSERACTDIR)/src/textord$(_I)\
+ $(I_)$(TESSERACTDIR)/src/training$(_I)\
+ $(I_)$(TESSERACTDIR)/src/viewer$(_I)\
+ $(I_)$(TESSERACTDIR)/src/wordrec$(_I)\
+ $(I_)$(LEPTONICADIR)/src$(_I)\
+ $(I_)$(GLSRCDIR)$(_I)\
+ $(I_)$(GLGENDIR)$(_I)
+
+# If we wanted to disable the legacy mode in tesseract, which is supposedly
+# unused, we'd:
+# add -DDISABLED_LEGACY_ENGINE to TESSCXX
+# empty TESSERACT_LEGACY
+
+TESSCXX = $(CXX) $(TESSINCLUDES) $(TESSCXXFLAGS) $(CCFLAGS) -DTESSERACT_IMAGEDATA_AS_PIX -DTESSERACT_DISABLE_DEBUG_FONTS -DGRAPHICS_DISABLED -DDISABLED_LEGACY_ENGINE
+TESSOBJ = $(GLOBJDIR)$(D)tesseract_
+TESSO_ = $(O_)$(TESSOBJ)
+
+TESSDEPS=\
+ $(arch_h)\
+ $(GLSRCDIR)/tesseract.mak\
+ $(GLGENDIR)/tesseract/version.h\
+ $(TESSERACTDIR)/include/tesseract/apitypes.h\
+ $(TESSERACTDIR)/include/tesseract/baseapi.h\
+ $(TESSERACTDIR)/include/tesseract/capi.h\
+ $(TESSERACTDIR)/include/tesseract/genericvector.h\
+ $(TESSERACTDIR)/include/tesseract/helpers.h\
+ $(TESSERACTDIR)/include/tesseract/ltrresultiterator.h\
+ $(TESSERACTDIR)/include/tesseract/ocrclass.h\
+ $(TESSERACTDIR)/include/tesseract/osdetect.h\
+ $(TESSERACTDIR)/include/tesseract/pageiterator.h\
+ $(TESSERACTDIR)/include/tesseract/platform.h\
+ $(TESSERACTDIR)/include/tesseract/publictypes.h\
+ $(TESSERACTDIR)/include/tesseract/renderer.h\
+ $(TESSERACTDIR)/include/tesseract/resultiterator.h\
+ $(TESSERACTDIR)/include/tesseract/serialis.h\
+ $(TESSERACTDIR)/include/tesseract/strngs.h\
+ $(TESSERACTDIR)/include/tesseract/thresholder.h\
+ $(TESSERACTDIR)/include/tesseract/unichar.h\
+ $(TESSERACTDIR)/src/arch/dotproduct.h\
+ $(TESSERACTDIR)/src/arch/intsimdmatrix.h\
+ $(TESSERACTDIR)/src/arch/simddetect.h\
+ $(TESSERACTDIR)/src/ccmain/control.h\
+ $(TESSERACTDIR)/src/ccmain/docqual.h\
+ $(TESSERACTDIR)/src/ccmain/equationdetect.h\
+ $(TESSERACTDIR)/src/ccmain/fixspace.h\
+ $(TESSERACTDIR)/src/ccmain/mutableiterator.h\
+ $(TESSERACTDIR)/src/ccmain/output.h\
+ $(TESSERACTDIR)/src/ccmain/paragraphs.h\
+ $(TESSERACTDIR)/src/ccmain/paragraphs_internal.h\
+ $(TESSERACTDIR)/src/ccmain/paramsd.h\
+ $(TESSERACTDIR)/src/ccmain/pgedit.h\
+ $(TESSERACTDIR)/src/ccmain/reject.h\
+ $(TESSERACTDIR)/src/ccmain/tesseractclass.h\
+ $(TESSERACTDIR)/src/ccmain/tessvars.h\
+ $(TESSERACTDIR)/src/ccmain/werdit.h\
+ $(TESSERACTDIR)/src/ccstruct/blamer.h\
+ $(TESSERACTDIR)/src/ccstruct/blobbox.h\
+ $(TESSERACTDIR)/src/ccstruct/blobs.h\
+ $(TESSERACTDIR)/src/ccstruct/blread.h\
+ $(TESSERACTDIR)/src/ccstruct/boxread.h\
+ $(TESSERACTDIR)/src/ccstruct/boxword.h\
+ $(TESSERACTDIR)/src/ccstruct/ccstruct.h\
+ $(TESSERACTDIR)/src/ccstruct/coutln.h\
+ $(TESSERACTDIR)/src/ccstruct/detlinefit.h\
+ $(TESSERACTDIR)/src/ccstruct/dppoint.h\
+ $(TESSERACTDIR)/src/ccstruct/fontinfo.h\
+ $(TESSERACTDIR)/src/ccstruct/imagedata.h\
+ $(TESSERACTDIR)/src/ccstruct/linlsq.h\
+ $(TESSERACTDIR)/src/ccstruct/matrix.h\
+ $(TESSERACTDIR)/src/ccstruct/mod128.h\
+ $(TESSERACTDIR)/src/ccstruct/normalis.h\
+ $(TESSERACTDIR)/src/ccstruct/ocrblock.h\
+ $(TESSERACTDIR)/src/ccstruct/ocrpara.h\
+ $(TESSERACTDIR)/src/ccstruct/ocrrow.h\
+ $(TESSERACTDIR)/src/ccstruct/otsuthr.h\
+ $(TESSERACTDIR)/src/ccstruct/pageres.h\
+ $(TESSERACTDIR)/src/ccstruct/params_training_featdef.h\
+ $(TESSERACTDIR)/src/ccstruct/pdblock.h\
+ $(TESSERACTDIR)/src/ccstruct/points.h\
+ $(TESSERACTDIR)/src/ccstruct/polyaprx.h\
+ $(TESSERACTDIR)/src/ccstruct/polyblk.h\
+ $(TESSERACTDIR)/src/ccstruct/quadlsq.h\
+ $(TESSERACTDIR)/src/ccstruct/quadratc.h\
+ $(TESSERACTDIR)/src/ccstruct/quspline.h\
+ $(TESSERACTDIR)/src/ccstruct/ratngs.h\
+ $(TESSERACTDIR)/src/ccstruct/rect.h\
+ $(TESSERACTDIR)/src/ccstruct/rejctmap.h\
+ $(TESSERACTDIR)/src/ccstruct/seam.h\
+ $(TESSERACTDIR)/src/ccstruct/split.h\
+ $(TESSERACTDIR)/src/ccstruct/statistc.h\
+ $(TESSERACTDIR)/src/ccstruct/stepblob.h\
+ $(TESSERACTDIR)/src/ccstruct/werd.h\
+ $(TESSERACTDIR)/src/ccutil/ambigs.h\
+ $(TESSERACTDIR)/src/ccutil/bits16.h\
+ $(TESSERACTDIR)/src/ccutil/bitvector.h\
+ $(TESSERACTDIR)/src/ccutil/ccutil.h\
+ $(TESSERACTDIR)/src/ccutil/clst.h\
+ $(TESSERACTDIR)/src/ccutil/doubleptr.h\
+ $(TESSERACTDIR)/src/ccutil/elst.h\
+ $(TESSERACTDIR)/src/ccutil/elst2.h\
+ $(TESSERACTDIR)/src/ccutil/errcode.h\
+ $(TESSERACTDIR)/src/ccutil/fileerr.h\
+ $(TESSERACTDIR)/src/ccutil/genericheap.h\
+ $(TESSERACTDIR)/src/ccutil/globaloc.h\
+ $(TESSERACTDIR)/src/ccutil/host.h\
+ $(TESSERACTDIR)/src/ccutil/indexmapbidi.h\
+ $(TESSERACTDIR)/src/ccutil/kdpair.h\
+ $(TESSERACTDIR)/src/ccutil/lsterr.h\
+ $(TESSERACTDIR)/src/ccutil/object_cache.h\
+ $(TESSERACTDIR)/src/ccutil/params.h\
+ $(TESSERACTDIR)/src/ccutil/qrsequence.h\
+ $(TESSERACTDIR)/src/ccutil/scanutils.h\
+ $(TESSERACTDIR)/src/ccutil/sorthelper.h\
+ $(TESSERACTDIR)/src/ccutil/tessdatamanager.h\
+ $(TESSERACTDIR)/src/ccutil/tprintf.h\
+ $(TESSERACTDIR)/src/ccutil/unicharcompress.h\
+ $(TESSERACTDIR)/src/ccutil/unicharmap.h\
+ $(TESSERACTDIR)/src/ccutil/unicharset.h\
+ $(TESSERACTDIR)/src/ccutil/unicity_table.h\
+ $(TESSERACTDIR)/src/ccutil/unicodes.h\
+ $(TESSERACTDIR)/src/ccutil/universalambigs.h\
+ $(TESSERACTDIR)/src/classify/adaptive.h\
+ $(TESSERACTDIR)/src/classify/blobclass.h\
+ $(TESSERACTDIR)/src/classify/classify.h\
+ $(TESSERACTDIR)/src/classify/cluster.h\
+ $(TESSERACTDIR)/src/classify/clusttool.h\
+ $(TESSERACTDIR)/src/classify/featdefs.h\
+ $(TESSERACTDIR)/src/classify/float2int.h\
+ $(TESSERACTDIR)/src/classify/fpoint.h\
+ $(TESSERACTDIR)/src/classify/intfeaturespace.h\
+ $(TESSERACTDIR)/src/classify/intfx.h\
+ $(TESSERACTDIR)/src/classify/intmatcher.h\
+ $(TESSERACTDIR)/src/classify/intproto.h\
+ $(TESSERACTDIR)/src/classify/kdtree.h\
+ $(TESSERACTDIR)/src/classify/mf.h\
+ $(TESSERACTDIR)/src/classify/mfdefs.h\
+ $(TESSERACTDIR)/src/classify/mfoutline.h\
+ $(TESSERACTDIR)/src/classify/mfx.h\
+ $(TESSERACTDIR)/src/classify/normfeat.h\
+ $(TESSERACTDIR)/src/classify/normmatch.h\
+ $(TESSERACTDIR)/src/classify/ocrfeatures.h\
+ $(TESSERACTDIR)/src/classify/outfeat.h\
+ $(TESSERACTDIR)/src/classify/picofeat.h\
+ $(TESSERACTDIR)/src/classify/protos.h\
+ $(TESSERACTDIR)/src/classify/shapeclassifier.h\
+ $(TESSERACTDIR)/src/classify/shapetable.h\
+ $(TESSERACTDIR)/src/classify/tessclassifier.h\
+ $(TESSERACTDIR)/src/classify/trainingsample.h\
+ $(TESSERACTDIR)/src/cutil/bitvec.h\
+ $(TESSERACTDIR)/src/cutil/emalloc.h\
+ $(TESSERACTDIR)/src/cutil/oldlist.h\
+ $(TESSERACTDIR)/src/dict/dawg.h\
+ $(TESSERACTDIR)/src/dict/dawg_cache.h\
+ $(TESSERACTDIR)/src/dict/dict.h\
+ $(TESSERACTDIR)/src/dict/matchdefs.h\
+ $(TESSERACTDIR)/src/dict/stopper.h\
+ $(TESSERACTDIR)/src/dict/trie.h\
+ $(TESSERACTDIR)/src/lstm/convolve.h\
+ $(TESSERACTDIR)/src/lstm/fullyconnected.h\
+ $(TESSERACTDIR)/src/lstm/functions.h\
+ $(TESSERACTDIR)/src/lstm/input.h\
+ $(TESSERACTDIR)/src/lstm/lstm.h\
+ $(TESSERACTDIR)/src/lstm/lstmrecognizer.h\
+ $(TESSERACTDIR)/src/lstm/maxpool.h\
+ $(TESSERACTDIR)/src/lstm/network.h\
+ $(TESSERACTDIR)/src/lstm/networkio.h\
+ $(TESSERACTDIR)/src/lstm/networkscratch.h\
+ $(TESSERACTDIR)/src/lstm/parallel.h\
+ $(TESSERACTDIR)/src/lstm/plumbing.h\
+ $(TESSERACTDIR)/src/lstm/recodebeam.h\
+ $(TESSERACTDIR)/src/lstm/reconfig.h\
+ $(TESSERACTDIR)/src/lstm/reversed.h\
+ $(TESSERACTDIR)/src/lstm/series.h\
+ $(TESSERACTDIR)/src/lstm/static_shape.h\
+ $(TESSERACTDIR)/src/lstm/stridemap.h\
+ $(TESSERACTDIR)/src/lstm/tfnetwork.h\
+ $(TESSERACTDIR)/src/lstm/weightmatrix.h\
+ $(TESSERACTDIR)/src/opencl/oclkernels.h\
+ $(TESSERACTDIR)/src/opencl/openclwrapper.h\
+ $(TESSERACTDIR)/src/textord/alignedblob.h\
+ $(TESSERACTDIR)/src/textord/baselinedetect.h\
+ $(TESSERACTDIR)/src/textord/bbgrid.h\
+ $(TESSERACTDIR)/src/textord/blkocc.h\
+ $(TESSERACTDIR)/src/textord/blobgrid.h\
+ $(TESSERACTDIR)/src/textord/ccnontextdetect.h\
+ $(TESSERACTDIR)/src/textord/cjkpitch.h\
+ $(TESSERACTDIR)/src/textord/colfind.h\
+ $(TESSERACTDIR)/src/textord/colpartition.h\
+ $(TESSERACTDIR)/src/textord/colpartitiongrid.h\
+ $(TESSERACTDIR)/src/textord/colpartitionset.h\
+ $(TESSERACTDIR)/src/textord/devanagari_processing.h\
+ $(TESSERACTDIR)/src/textord/drawtord.h\
+ $(TESSERACTDIR)/src/textord/edgblob.h\
+ $(TESSERACTDIR)/src/textord/edgloop.h\
+ $(TESSERACTDIR)/src/textord/equationdetectbase.h\
+ $(TESSERACTDIR)/src/textord/fpchop.h\
+ $(TESSERACTDIR)/src/textord/gap_map.h\
+ $(TESSERACTDIR)/src/textord/imagefind.h\
+ $(TESSERACTDIR)/src/textord/linefind.h\
+ $(TESSERACTDIR)/src/textord/makerow.h\
+ $(TESSERACTDIR)/src/textord/oldbasel.h\
+ $(TESSERACTDIR)/src/textord/pithsync.h\
+ $(TESSERACTDIR)/src/textord/pitsync1.h\
+ $(TESSERACTDIR)/src/textord/scanedg.h\
+ $(TESSERACTDIR)/src/textord/sortflts.h\
+ $(TESSERACTDIR)/src/textord/strokewidth.h\
+ $(TESSERACTDIR)/src/textord/tabfind.h\
+ $(TESSERACTDIR)/src/textord/tablefind.h\
+ $(TESSERACTDIR)/src/textord/tablerecog.h\
+ $(TESSERACTDIR)/src/textord/tabvector.h\
+ $(TESSERACTDIR)/src/textord/textlineprojection.h\
+ $(TESSERACTDIR)/src/textord/textord.h\
+ $(TESSERACTDIR)/src/textord/topitch.h\
+ $(TESSERACTDIR)/src/textord/tordmain.h\
+ $(TESSERACTDIR)/src/textord/tovars.h\
+ $(TESSERACTDIR)/src/textord/underlin.h\
+ $(TESSERACTDIR)/src/textord/wordseg.h\
+ $(TESSERACTDIR)/src/textord/workingpartset.h\
+ $(TESSERACTDIR)/src/viewer/scrollview.h\
+ $(TESSERACTDIR)/src/viewer/svmnode.h\
+ $(TESSERACTDIR)/src/viewer/svutil.h\
+ $(TESSERACTDIR)/src/wordrec/associate.h\
+ $(TESSERACTDIR)/src/wordrec/chop.h\
+ $(TESSERACTDIR)/src/wordrec/drawfx.h\
+ $(TESSERACTDIR)/src/wordrec/findseam.h\
+ $(TESSERACTDIR)/src/wordrec/language_model.h\
+ $(TESSERACTDIR)/src/wordrec/lm_consistency.h\
+ $(TESSERACTDIR)/src/wordrec/lm_pain_points.h\
+ $(TESSERACTDIR)/src/wordrec/lm_state.h\
+ $(TESSERACTDIR)/src/wordrec/measure.h\
+ $(TESSERACTDIR)/src/wordrec/outlines.h\
+ $(TESSERACTDIR)/src/wordrec/params_model.h\
+ $(TESSERACTDIR)/src/wordrec/plotedges.h\
+ $(TESSERACTDIR)/src/wordrec/render.h\
+ $(TESSERACTDIR)/src/wordrec/wordrec.h\
+ $(MAKEDIRS)
+
+$(GLGENDIR)/tesseract/version.h : $(ECHOGS_XE) $(GLSRCDIR)/tesseract.mak
+ -mkdir $(GLGENDIR)$(D)tesseract
+ $(ECHOGS_XE) -w $(GLGENDIR)/tesseract/version.h -x 23 define TESSERACT_VERSION_STR -x 2022 5.0.0-beta-gs -x 22
+
+
+$(TESSOBJ)api_baseapi.$(OBJ) : $(TESSERACTDIR)/src/api/baseapi.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)api_baseapi.$(OBJ) $(C_) $(TESSERACTDIR)/src/api/baseapi.cpp
+
+$(TESSOBJ)api_altorenderer.$(OBJ) : $(TESSERACTDIR)/src/api/altorenderer.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)api_altorenderer.$(OBJ) $(C_) $(TESSERACTDIR)/src/api/altorenderer.cpp
+
+$(TESSOBJ)api_capi.$(OBJ) : $(TESSERACTDIR)/src/api/capi.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)api_capi.$(OBJ) $(C_) $(TESSERACTDIR)/src/api/capi.cpp
+
+$(TESSOBJ)api_hocrrenderer.$(OBJ) : $(TESSERACTDIR)/src/api/hocrrenderer.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)api_hocrrenderer.$(OBJ) $(C_) $(TESSERACTDIR)/src/api/hocrrenderer.cpp
+
+$(TESSOBJ)api_lstmboxrenderer.$(OBJ) : $(TESSERACTDIR)/src/api/lstmboxrenderer.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)api_lstmboxrenderer.$(OBJ) $(C_) $(TESSERACTDIR)/src/api/lstmboxrenderer.cpp
+
+$(TESSOBJ)api_pdfrenderer.$(OBJ) : $(TESSERACTDIR)/src/api/pdfrenderer.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)api_pdfrenderer.$(OBJ) $(C_) $(TESSERACTDIR)/src/api/pdfrenderer.cpp
+
+$(TESSOBJ)api_renderer.$(OBJ) : $(TESSERACTDIR)/src/api/renderer.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)api_renderer.$(OBJ) $(C_) $(TESSERACTDIR)/src/api/renderer.cpp
+
+$(TESSOBJ)api_wordstrboxrenderer.$(OBJ) : $(TESSERACTDIR)/src/api/wordstrboxrenderer.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)api_wordstrboxrenderer.$(OBJ) $(C_) $(TESSERACTDIR)/src/api/wordstrboxrenderer.cpp
+
+$(TESSOBJ)arch_intsimdmatrix.$(OBJ) : $(TESSERACTDIR)/src/arch/intsimdmatrix.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)arch_intsimdmatrix.$(OBJ) $(C_) $(TESSERACTDIR)/src/arch/intsimdmatrix.cpp
+
+$(TESSOBJ)arch_simddetect.$(OBJ) : $(TESSERACTDIR)/src/arch/simddetect.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)arch_simddetect.$(OBJ) $(C_) $(TESSERACTDIR)/src/arch/simddetect.cpp
+
+$(TESSOBJ)ccmain_applybox.$(OBJ) : $(TESSERACTDIR)/src/ccmain/applybox.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccmain_applybox.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccmain/applybox.cpp
+
+$(TESSOBJ)ccmain_control.$(OBJ) : $(TESSERACTDIR)/src/ccmain/control.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccmain_control.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccmain/control.cpp
+
+$(TESSOBJ)ccmain_docqual.$(OBJ) : $(TESSERACTDIR)/src/ccmain/docqual.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccmain_docqual.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccmain/docqual.cpp
+
+$(TESSOBJ)ccmain_equationdetect.$(OBJ) : $(TESSERACTDIR)/src/ccmain/equationdetect.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccmain_equationdetect.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccmain/equationdetect.cpp
+
+$(TESSOBJ)ccmain_linerec.$(OBJ) : $(TESSERACTDIR)/src/ccmain/linerec.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccmain_linerec.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccmain/linerec.cpp
+
+$(TESSOBJ)ccmain_ltrresultiterator.$(OBJ) : $(TESSERACTDIR)/src/ccmain/ltrresultiterator.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccmain_ltrresultiterator.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccmain/ltrresultiterator.cpp
+
+$(TESSOBJ)ccmain_mutableiterator.$(OBJ) : $(TESSERACTDIR)/src/ccmain/mutableiterator.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccmain_mutableiterator.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccmain/mutableiterator.cpp
+
+$(TESSOBJ)ccmain_output.$(OBJ) : $(TESSERACTDIR)/src/ccmain/output.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccmain_output.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccmain/output.cpp
+
+$(TESSOBJ)ccmain_osdetect.$(OBJ) : $(TESSERACTDIR)/src/ccmain/osdetect.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccmain_osdetect.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccmain/osdetect.cpp
+
+$(TESSOBJ)ccmain_pageiterator.$(OBJ) : $(TESSERACTDIR)/src/ccmain/pageiterator.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccmain_pageiterator.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccmain/pageiterator.cpp
+
+$(TESSOBJ)ccmain_pagesegmain.$(OBJ) : $(TESSERACTDIR)/src/ccmain/pagesegmain.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccmain_pagesegmain.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccmain/pagesegmain.cpp
+
+$(TESSOBJ)ccmain_pagewalk.$(OBJ) : $(TESSERACTDIR)/src/ccmain/pagewalk.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccmain_pagewalk.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccmain/pagewalk.cpp
+
+$(TESSOBJ)ccmain_paragraphs.$(OBJ) : $(TESSERACTDIR)/src/ccmain/paragraphs.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccmain_paragraphs.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccmain/paragraphs.cpp
+
+$(TESSOBJ)ccmain_paramsd.$(OBJ) : $(TESSERACTDIR)/src/ccmain/paramsd.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccmain_paramsd.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccmain/paramsd.cpp
+
+$(TESSOBJ)ccmain_par_control.$(OBJ) : $(TESSERACTDIR)/src/ccmain/par_control.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccmain_par_control.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccmain/par_control.cpp
+
+$(TESSOBJ)ccmain_pgedit.$(OBJ) : $(TESSERACTDIR)/src/ccmain/pgedit.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccmain_pgedit.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccmain/pgedit.cpp
+
+$(TESSOBJ)ccmain_reject.$(OBJ) : $(TESSERACTDIR)/src/ccmain/reject.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccmain_reject.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccmain/reject.cpp
+
+$(TESSOBJ)ccmain_resultiterator.$(OBJ) : $(TESSERACTDIR)/src/ccmain/resultiterator.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccmain_resultiterator.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccmain/resultiterator.cpp
+
+$(TESSOBJ)ccmain_superscript.$(OBJ) : $(TESSERACTDIR)/src/ccmain/superscript.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccmain_superscript.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccmain/superscript.cpp
+
+$(TESSOBJ)ccmain_tessbox.$(OBJ) : $(TESSERACTDIR)/src/ccmain/tessbox.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccmain_tessbox.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccmain/tessbox.cpp
+
+$(TESSOBJ)ccmain_tessedit.$(OBJ) : $(TESSERACTDIR)/src/ccmain/tessedit.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccmain_tessedit.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccmain/tessedit.cpp
+
+$(TESSOBJ)ccmain_tesseractclass.$(OBJ) : $(TESSERACTDIR)/src/ccmain/tesseractclass.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccmain_tesseractclass.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccmain/tesseractclass.cpp
+
+$(TESSOBJ)ccmain_tessvars.$(OBJ) : $(TESSERACTDIR)/src/ccmain/tessvars.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccmain_tessvars.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccmain/tessvars.cpp
+
+$(TESSOBJ)ccmain_tfacepp.$(OBJ) : $(TESSERACTDIR)/src/ccmain/tfacepp.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccmain_tfacepp.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccmain/tfacepp.cpp
+
+$(TESSOBJ)ccmain_thresholder.$(OBJ) : $(TESSERACTDIR)/src/ccmain/thresholder.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccmain_thresholder.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccmain/thresholder.cpp
+
+$(TESSOBJ)ccmain_werdit.$(OBJ) : $(TESSERACTDIR)/src/ccmain/werdit.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccmain_werdit.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccmain/werdit.cpp
+
+$(TESSOBJ)ccmain_adaptions.$(OBJ) : $(TESSERACTDIR)/src/ccmain/adaptions.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccmain_adaptions.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccmain/adaptions.cpp
+
+$(TESSOBJ)ccmain_fixspace.$(OBJ) : $(TESSERACTDIR)/src/ccmain/fixspace.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccmain_fixspace.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccmain/fixspace.cpp
+
+$(TESSOBJ)ccmain_fixxht.$(OBJ) : $(TESSERACTDIR)/src/ccmain/fixxht.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccmain_fixxht.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccmain/fixxht.cpp
+
+$(TESSOBJ)ccmain_recogtraining.$(OBJ) : $(TESSERACTDIR)/src/ccmain/recogtraining.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccmain_recogtraining.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccmain/recogtraining.cpp
+
+$(TESSOBJ)ccstruct_blamer.$(OBJ) : $(TESSERACTDIR)/src/ccstruct/blamer.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccstruct_blamer.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccstruct/blamer.cpp
+
+$(TESSOBJ)ccstruct_blobbox.$(OBJ) : $(TESSERACTDIR)/src/ccstruct/blobbox.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccstruct_blobbox.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccstruct/blobbox.cpp
+
+$(TESSOBJ)ccstruct_blobs.$(OBJ) : $(TESSERACTDIR)/src/ccstruct/blobs.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccstruct_blobs.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccstruct/blobs.cpp
+
+$(TESSOBJ)ccstruct_blread.$(OBJ) : $(TESSERACTDIR)/src/ccstruct/blread.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccstruct_blread.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccstruct/blread.cpp
+
+$(TESSOBJ)ccstruct_boxread.$(OBJ) : $(TESSERACTDIR)/src/ccstruct/boxread.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccstruct_boxread.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccstruct/boxread.cpp
+
+$(TESSOBJ)ccstruct_boxword.$(OBJ) : $(TESSERACTDIR)/src/ccstruct/boxword.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccstruct_boxword.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccstruct/boxword.cpp
+
+$(TESSOBJ)ccstruct_ccstruct.$(OBJ) : $(TESSERACTDIR)/src/ccstruct/ccstruct.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccstruct_ccstruct.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccstruct/ccstruct.cpp
+
+$(TESSOBJ)ccstruct_coutln.$(OBJ) : $(TESSERACTDIR)/src/ccstruct/coutln.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccstruct_coutln.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccstruct/coutln.cpp
+
+$(TESSOBJ)ccstruct_detlinefit.$(OBJ) : $(TESSERACTDIR)/src/ccstruct/detlinefit.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccstruct_detlinefit.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccstruct/detlinefit.cpp
+
+$(TESSOBJ)ccstruct_dppoint.$(OBJ) : $(TESSERACTDIR)/src/ccstruct/dppoint.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccstruct_dppoint.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccstruct/dppoint.cpp
+
+$(TESSOBJ)ccstruct_imagedata.$(OBJ) : $(TESSERACTDIR)/src/ccstruct/imagedata.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccstruct_imagedata.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccstruct/imagedata.cpp
+
+$(TESSOBJ)ccstruct_linlsq.$(OBJ) : $(TESSERACTDIR)/src/ccstruct/linlsq.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccstruct_linlsq.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccstruct/linlsq.cpp
+
+$(TESSOBJ)ccstruct_matrix.$(OBJ) : $(TESSERACTDIR)/src/ccstruct/matrix.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccstruct_matrix.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccstruct/matrix.cpp
+
+$(TESSOBJ)ccstruct_mod128.$(OBJ) : $(TESSERACTDIR)/src/ccstruct/mod128.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccstruct_mod128.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccstruct/mod128.cpp
+
+$(TESSOBJ)ccstruct_normalis.$(OBJ) : $(TESSERACTDIR)/src/ccstruct/normalis.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccstruct_normalis.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccstruct/normalis.cpp
+
+$(TESSOBJ)ccstruct_ocrblock.$(OBJ) : $(TESSERACTDIR)/src/ccstruct/ocrblock.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccstruct_ocrblock.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccstruct/ocrblock.cpp
+
+$(TESSOBJ)ccstruct_ocrpara.$(OBJ) : $(TESSERACTDIR)/src/ccstruct/ocrpara.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccstruct_ocrpara.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccstruct/ocrpara.cpp
+
+$(TESSOBJ)ccstruct_ocrrow.$(OBJ) : $(TESSERACTDIR)/src/ccstruct/ocrrow.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccstruct_ocrrow.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccstruct/ocrrow.cpp
+
+$(TESSOBJ)ccstruct_otsuthr.$(OBJ) : $(TESSERACTDIR)/src/ccstruct/otsuthr.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccstruct_otsuthr.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccstruct/otsuthr.cpp
+
+$(TESSOBJ)ccstruct_pageres.$(OBJ) : $(TESSERACTDIR)/src/ccstruct/pageres.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccstruct_pageres.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccstruct/pageres.cpp
+
+$(TESSOBJ)ccstruct_pdblock.$(OBJ) : $(TESSERACTDIR)/src/ccstruct/pdblock.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccstruct_pdblock.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccstruct/pdblock.cpp
+
+$(TESSOBJ)ccstruct_points.$(OBJ) : $(TESSERACTDIR)/src/ccstruct/points.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccstruct_points.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccstruct/points.cpp
+
+$(TESSOBJ)ccstruct_polyaprx.$(OBJ) : $(TESSERACTDIR)/src/ccstruct/polyaprx.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccstruct_polyaprx.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccstruct/polyaprx.cpp
+
+$(TESSOBJ)ccstruct_polyblk.$(OBJ) : $(TESSERACTDIR)/src/ccstruct/polyblk.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccstruct_polyblk.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccstruct/polyblk.cpp
+
+$(TESSOBJ)ccstruct_quadlsq.$(OBJ) : $(TESSERACTDIR)/src/ccstruct/quadlsq.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccstruct_quadlsq.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccstruct/quadlsq.cpp
+
+$(TESSOBJ)ccstruct_quspline.$(OBJ) : $(TESSERACTDIR)/src/ccstruct/quspline.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccstruct_quspline.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccstruct/quspline.cpp
+
+$(TESSOBJ)ccstruct_ratngs.$(OBJ) : $(TESSERACTDIR)/src/ccstruct/ratngs.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccstruct_ratngs.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccstruct/ratngs.cpp
+
+$(TESSOBJ)ccstruct_rect.$(OBJ) : $(TESSERACTDIR)/src/ccstruct/rect.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccstruct_rect.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccstruct/rect.cpp
+
+$(TESSOBJ)ccstruct_rejctmap.$(OBJ) : $(TESSERACTDIR)/src/ccstruct/rejctmap.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccstruct_rejctmap.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccstruct/rejctmap.cpp
+
+$(TESSOBJ)ccstruct_seam.$(OBJ) : $(TESSERACTDIR)/src/ccstruct/seam.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccstruct_seam.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccstruct/seam.cpp
+
+$(TESSOBJ)ccstruct_split.$(OBJ) : $(TESSERACTDIR)/src/ccstruct/split.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccstruct_split.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccstruct/split.cpp
+
+$(TESSOBJ)ccstruct_statistc.$(OBJ) : $(TESSERACTDIR)/src/ccstruct/statistc.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccstruct_statistc.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccstruct/statistc.cpp
+
+$(TESSOBJ)ccstruct_stepblob.$(OBJ) : $(TESSERACTDIR)/src/ccstruct/stepblob.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccstruct_stepblob.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccstruct/stepblob.cpp
+
+$(TESSOBJ)ccstruct_werd.$(OBJ) : $(TESSERACTDIR)/src/ccstruct/werd.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccstruct_werd.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccstruct/werd.cpp
+
+$(TESSOBJ)ccstruct_fontinfo.$(OBJ) : $(TESSERACTDIR)/src/ccstruct/fontinfo.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccstruct_fontinfo.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccstruct/fontinfo.cpp
+
+$(TESSOBJ)ccstruct_params_training_featdef.$(OBJ) : $(TESSERACTDIR)/src/ccstruct/params_training_featdef.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccstruct_params_training_featdef.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccstruct/params_training_featdef.cpp
+
+$(TESSOBJ)classify_adaptive.$(OBJ) : $(TESSERACTDIR)/src/classify/adaptive.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)classify_adaptive.$(OBJ) $(C_) $(TESSERACTDIR)/src/classify/adaptive.cpp
+
+$(TESSOBJ)classify_adaptmatch.$(OBJ) : $(TESSERACTDIR)/src/classify/adaptmatch.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)classify_adaptmatch.$(OBJ) $(C_) $(TESSERACTDIR)/src/classify/adaptmatch.cpp
+
+$(TESSOBJ)classify_blobclass.$(OBJ) : $(TESSERACTDIR)/src/classify/blobclass.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)classify_blobclass.$(OBJ) $(C_) $(TESSERACTDIR)/src/classify/blobclass.cpp
+
+$(TESSOBJ)classify_classify.$(OBJ) : $(TESSERACTDIR)/src/classify/classify.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)classify_classify.$(OBJ) $(C_) $(TESSERACTDIR)/src/classify/classify.cpp
+
+$(TESSOBJ)classify_cluster.$(OBJ) : $(TESSERACTDIR)/src/classify/cluster.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)classify_cluster.$(OBJ) $(C_) $(TESSERACTDIR)/src/classify/cluster.cpp
+
+$(TESSOBJ)classify_clusttool.$(OBJ) : $(TESSERACTDIR)/src/classify/clusttool.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)classify_clusttool.$(OBJ) $(C_) $(TESSERACTDIR)/src/classify/clusttool.cpp
+
+$(TESSOBJ)classify_cutoffs.$(OBJ) : $(TESSERACTDIR)/src/classify/cutoffs.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)classify_cutoffs.$(OBJ) $(C_) $(TESSERACTDIR)/src/classify/cutoffs.cpp
+
+$(TESSOBJ)classify_float2int.$(OBJ) : $(TESSERACTDIR)/src/classify/float2int.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)classify_float2int.$(OBJ) $(C_) $(TESSERACTDIR)/src/classify/float2int.cpp
+
+$(TESSOBJ)classify_featdefs.$(OBJ) : $(TESSERACTDIR)/src/classify/featdefs.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)classify_featdefs.$(OBJ) $(C_) $(TESSERACTDIR)/src/classify/featdefs.cpp
+
+$(TESSOBJ)classify_fpoint.$(OBJ) : $(TESSERACTDIR)/src/classify/fpoint.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)classify_fpoint.$(OBJ) $(C_) $(TESSERACTDIR)/src/classify/fpoint.cpp
+
+$(TESSOBJ)classify_intfeaturespace.$(OBJ) : $(TESSERACTDIR)/src/classify/intfeaturespace.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)classify_intfeaturespace.$(OBJ) $(C_) $(TESSERACTDIR)/src/classify/intfeaturespace.cpp
+
+$(TESSOBJ)classify_intfx.$(OBJ) : $(TESSERACTDIR)/src/classify/intfx.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)classify_intfx.$(OBJ) $(C_) $(TESSERACTDIR)/src/classify/intfx.cpp
+
+$(TESSOBJ)classify_intmatcher.$(OBJ) : $(TESSERACTDIR)/src/classify/intmatcher.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)classify_intmatcher.$(OBJ) $(C_) $(TESSERACTDIR)/src/classify/intmatcher.cpp
+
+$(TESSOBJ)classify_intproto.$(OBJ) : $(TESSERACTDIR)/src/classify/intproto.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)classify_intproto.$(OBJ) $(C_) $(TESSERACTDIR)/src/classify/intproto.cpp
+
+$(TESSOBJ)classify_kdtree.$(OBJ) : $(TESSERACTDIR)/src/classify/kdtree.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)classify_kdtree.$(OBJ) $(C_) $(TESSERACTDIR)/src/classify/kdtree.cpp
+
+$(TESSOBJ)classify_mf.$(OBJ) : $(TESSERACTDIR)/src/classify/mf.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)classify_mf.$(OBJ) $(C_) $(TESSERACTDIR)/src/classify/mf.cpp
+
+$(TESSOBJ)classify_mfdefs.$(OBJ) : $(TESSERACTDIR)/src/classify/mfdefs.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)classify_mfdefs.$(OBJ) $(C_) $(TESSERACTDIR)/src/classify/mfdefs.cpp
+
+$(TESSOBJ)classify_mfoutline.$(OBJ) : $(TESSERACTDIR)/src/classify/mfoutline.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)classify_mfoutline.$(OBJ) $(C_) $(TESSERACTDIR)/src/classify/mfoutline.cpp
+
+$(TESSOBJ)classify_mfx.$(OBJ) : $(TESSERACTDIR)/src/classify/mfx.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)classify_mfx.$(OBJ) $(C_) $(TESSERACTDIR)/src/classify/mfx.cpp
+
+$(TESSOBJ)classify_normfeat.$(OBJ) : $(TESSERACTDIR)/src/classify/normfeat.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)classify_normfeat.$(OBJ) $(C_) $(TESSERACTDIR)/src/classify/normfeat.cpp
+
+$(TESSOBJ)classify_normmatch.$(OBJ) : $(TESSERACTDIR)/src/classify/normmatch.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)classify_normmatch.$(OBJ) $(C_) $(TESSERACTDIR)/src/classify/normmatch.cpp
+
+$(TESSOBJ)classify_ocrfeatures.$(OBJ) : $(TESSERACTDIR)/src/classify/ocrfeatures.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)classify_ocrfeatures.$(OBJ) $(C_) $(TESSERACTDIR)/src/classify/ocrfeatures.cpp
+
+$(TESSOBJ)classify_outfeat.$(OBJ) : $(TESSERACTDIR)/src/classify/outfeat.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)classify_outfeat.$(OBJ) $(C_) $(TESSERACTDIR)/src/classify/outfeat.cpp
+
+$(TESSOBJ)classify_picofeat.$(OBJ) : $(TESSERACTDIR)/src/classify/picofeat.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)classify_picofeat.$(OBJ) $(C_) $(TESSERACTDIR)/src/classify/picofeat.cpp
+
+$(TESSOBJ)classify_protos.$(OBJ) : $(TESSERACTDIR)/src/classify/protos.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)classify_protos.$(OBJ) $(C_) $(TESSERACTDIR)/src/classify/protos.cpp
+
+$(TESSOBJ)classify_shapeclassifier.$(OBJ) : $(TESSERACTDIR)/src/classify/shapeclassifier.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)classify_shapeclassifier.$(OBJ) $(C_) $(TESSERACTDIR)/src/classify/shapeclassifier.cpp
+
+$(TESSOBJ)classify_shapetable.$(OBJ) : $(TESSERACTDIR)/src/classify/shapetable.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)classify_shapetable.$(OBJ) $(C_) $(TESSERACTDIR)/src/classify/shapetable.cpp
+
+$(TESSOBJ)classify_tessclassifier.$(OBJ) : $(TESSERACTDIR)/src/classify/tessclassifier.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)classify_tessclassifier.$(OBJ) $(C_) $(TESSERACTDIR)/src/classify/tessclassifier.cpp
+
+$(TESSOBJ)classify_trainingsample.$(OBJ) : $(TESSERACTDIR)/src/classify/trainingsample.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)classify_trainingsample.$(OBJ) $(C_) $(TESSERACTDIR)/src/classify/trainingsample.cpp
+
+$(TESSOBJ)cutil_cutil_class.$(OBJ) : $(TESSERACTDIR)/src/cutil/cutil_class.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)cutil_cutil_class.$(OBJ) $(C_) $(TESSERACTDIR)/src/cutil/cutil_class.cpp
+
+$(TESSOBJ)cutil_emalloc.$(OBJ) : $(TESSERACTDIR)/src/cutil/emalloc.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)cutil_emalloc.$(OBJ) $(C_) $(TESSERACTDIR)/src/cutil/emalloc.cpp
+
+$(TESSOBJ)cutil_oldlist.$(OBJ) : $(TESSERACTDIR)/src/cutil/oldlist.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)cutil_oldlist.$(OBJ) $(C_) $(TESSERACTDIR)/src/cutil/oldlist.cpp
+
+$(TESSOBJ)dict_context.$(OBJ) : $(TESSERACTDIR)/src/dict/context.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)dict_context.$(OBJ) $(C_) $(TESSERACTDIR)/src/dict/context.cpp
+
+$(TESSOBJ)dict_dawg.$(OBJ) : $(TESSERACTDIR)/src/dict/dawg.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)dict_dawg.$(OBJ) $(C_) $(TESSERACTDIR)/src/dict/dawg.cpp
+
+$(TESSOBJ)dict_dawg_cache.$(OBJ) : $(TESSERACTDIR)/src/dict/dawg_cache.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)dict_dawg_cache.$(OBJ) $(C_) $(TESSERACTDIR)/src/dict/dawg_cache.cpp
+
+$(TESSOBJ)dict_dict.$(OBJ) : $(TESSERACTDIR)/src/dict/dict.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)dict_dict.$(OBJ) $(C_) $(TESSERACTDIR)/src/dict/dict.cpp
+
+$(TESSOBJ)dict_permdawg.$(OBJ) : $(TESSERACTDIR)/src/dict/permdawg.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)dict_permdawg.$(OBJ) $(C_) $(TESSERACTDIR)/src/dict/permdawg.cpp
+
+$(TESSOBJ)dict_stopper.$(OBJ) : $(TESSERACTDIR)/src/dict/stopper.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)dict_stopper.$(OBJ) $(C_) $(TESSERACTDIR)/src/dict/stopper.cpp
+
+$(TESSOBJ)dict_trie.$(OBJ) : $(TESSERACTDIR)/src/dict/trie.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)dict_trie.$(OBJ) $(C_) $(TESSERACTDIR)/src/dict/trie.cpp
+
+$(TESSOBJ)dict_hyphen.$(OBJ) : $(TESSERACTDIR)/src/dict/hyphen.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)dict_hyphen.$(OBJ) $(C_) $(TESSERACTDIR)/src/dict/hyphen.cpp
+
+$(TESSOBJ)textord_alignedblob.$(OBJ) : $(TESSERACTDIR)/src/textord/alignedblob.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)textord_alignedblob.$(OBJ) $(C_) $(TESSERACTDIR)/src/textord/alignedblob.cpp
+
+$(TESSOBJ)textord_baselinedetect.$(OBJ) : $(TESSERACTDIR)/src/textord/baselinedetect.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)textord_baselinedetect.$(OBJ) $(C_) $(TESSERACTDIR)/src/textord/baselinedetect.cpp
+
+$(TESSOBJ)textord_bbgrid.$(OBJ) : $(TESSERACTDIR)/src/textord/bbgrid.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)textord_bbgrid.$(OBJ) $(C_) $(TESSERACTDIR)/src/textord/bbgrid.cpp
+
+$(TESSOBJ)textord_blkocc.$(OBJ) : $(TESSERACTDIR)/src/textord/blkocc.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)textord_blkocc.$(OBJ) $(C_) $(TESSERACTDIR)/src/textord/blkocc.cpp
+
+$(TESSOBJ)textord_blobgrid.$(OBJ) : $(TESSERACTDIR)/src/textord/blobgrid.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)textord_blobgrid.$(OBJ) $(C_) $(TESSERACTDIR)/src/textord/blobgrid.cpp
+
+$(TESSOBJ)textord_ccnontextdetect.$(OBJ) : $(TESSERACTDIR)/src/textord/ccnontextdetect.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)textord_ccnontextdetect.$(OBJ) $(C_) $(TESSERACTDIR)/src/textord/ccnontextdetect.cpp
+
+$(TESSOBJ)textord_cjkpitch.$(OBJ) : $(TESSERACTDIR)/src/textord/cjkpitch.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)textord_cjkpitch.$(OBJ) $(C_) $(TESSERACTDIR)/src/textord/cjkpitch.cpp
+
+$(TESSOBJ)textord_colfind.$(OBJ) : $(TESSERACTDIR)/src/textord/colfind.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)textord_colfind.$(OBJ) $(C_) $(TESSERACTDIR)/src/textord/colfind.cpp
+
+$(TESSOBJ)textord_colpartition.$(OBJ) : $(TESSERACTDIR)/src/textord/colpartition.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)textord_colpartition.$(OBJ) $(C_) $(TESSERACTDIR)/src/textord/colpartition.cpp
+
+$(TESSOBJ)textord_colpartitionset.$(OBJ) : $(TESSERACTDIR)/src/textord/colpartitionset.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)textord_colpartitionset.$(OBJ) $(C_) $(TESSERACTDIR)/src/textord/colpartitionset.cpp
+
+$(TESSOBJ)textord_colpartitiongrid.$(OBJ) : $(TESSERACTDIR)/src/textord/colpartitiongrid.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)textord_colpartitiongrid.$(OBJ) $(C_) $(TESSERACTDIR)/src/textord/colpartitiongrid.cpp
+
+$(TESSOBJ)textord_devanagari_processing.$(OBJ) : $(TESSERACTDIR)/src/textord/devanagari_processing.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)textord_devanagari_processing.$(OBJ) $(C_) $(TESSERACTDIR)/src/textord/devanagari_processing.cpp
+
+$(TESSOBJ)textord_drawtord.$(OBJ) : $(TESSERACTDIR)/src/textord/drawtord.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)textord_drawtord.$(OBJ) $(C_) $(TESSERACTDIR)/src/textord/drawtord.cpp
+
+$(TESSOBJ)textord_edgblob.$(OBJ) : $(TESSERACTDIR)/src/textord/edgblob.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)textord_edgblob.$(OBJ) $(C_) $(TESSERACTDIR)/src/textord/edgblob.cpp
+
+$(TESSOBJ)textord_edgloop.$(OBJ) : $(TESSERACTDIR)/src/textord/edgloop.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)textord_edgloop.$(OBJ) $(C_) $(TESSERACTDIR)/src/textord/edgloop.cpp
+
+$(TESSOBJ)textord_fpchop.$(OBJ) : $(TESSERACTDIR)/src/textord/fpchop.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)textord_fpchop.$(OBJ) $(C_) $(TESSERACTDIR)/src/textord/fpchop.cpp
+
+$(TESSOBJ)textord_gap_map.$(OBJ) : $(TESSERACTDIR)/src/textord/gap_map.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)textord_gap_map.$(OBJ) $(C_) $(TESSERACTDIR)/src/textord/gap_map.cpp
+
+$(TESSOBJ)textord_imagefind.$(OBJ) : $(TESSERACTDIR)/src/textord/imagefind.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)textord_imagefind.$(OBJ) $(C_) $(TESSERACTDIR)/src/textord/imagefind.cpp
+
+$(TESSOBJ)textord_linefind.$(OBJ) : $(TESSERACTDIR)/src/textord/linefind.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)textord_linefind.$(OBJ) $(C_) $(TESSERACTDIR)/src/textord/linefind.cpp
+
+$(TESSOBJ)textord_makerow.$(OBJ) : $(TESSERACTDIR)/src/textord/makerow.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)textord_makerow.$(OBJ) $(C_) $(TESSERACTDIR)/src/textord/makerow.cpp
+
+$(TESSOBJ)textord_oldbasel.$(OBJ) : $(TESSERACTDIR)/src/textord/oldbasel.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)textord_oldbasel.$(OBJ) $(C_) $(TESSERACTDIR)/src/textord/oldbasel.cpp
+
+$(TESSOBJ)textord_pithsync.$(OBJ) : $(TESSERACTDIR)/src/textord/pithsync.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)textord_pithsync.$(OBJ) $(C_) $(TESSERACTDIR)/src/textord/pithsync.cpp
+
+$(TESSOBJ)textord_pitsync1.$(OBJ) : $(TESSERACTDIR)/src/textord/pitsync1.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)textord_pitsync1.$(OBJ) $(C_) $(TESSERACTDIR)/src/textord/pitsync1.cpp
+
+$(TESSOBJ)textord_scanedg.$(OBJ) : $(TESSERACTDIR)/src/textord/scanedg.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)textord_scanedg.$(OBJ) $(C_) $(TESSERACTDIR)/src/textord/scanedg.cpp
+
+$(TESSOBJ)textord_sortflts.$(OBJ) : $(TESSERACTDIR)/src/textord/sortflts.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)textord_sortflts.$(OBJ) $(C_) $(TESSERACTDIR)/src/textord/sortflts.cpp
+
+$(TESSOBJ)textord_strokewidth.$(OBJ) : $(TESSERACTDIR)/src/textord/strokewidth.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)textord_strokewidth.$(OBJ) $(C_) $(TESSERACTDIR)/src/textord/strokewidth.cpp
+
+$(TESSOBJ)textord_tabfind.$(OBJ) : $(TESSERACTDIR)/src/textord/tabfind.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)textord_tabfind.$(OBJ) $(C_) $(TESSERACTDIR)/src/textord/tabfind.cpp
+
+$(TESSOBJ)textord_tablefind.$(OBJ) : $(TESSERACTDIR)/src/textord/tablefind.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)textord_tablefind.$(OBJ) $(C_) $(TESSERACTDIR)/src/textord/tablefind.cpp
+
+$(TESSOBJ)textord_tabvector.$(OBJ) : $(TESSERACTDIR)/src/textord/tabvector.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)textord_tabvector.$(OBJ) $(C_) $(TESSERACTDIR)/src/textord/tabvector.cpp
+
+$(TESSOBJ)textord_tablerecog.$(OBJ) : $(TESSERACTDIR)/src/textord/tablerecog.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)textord_tablerecog.$(OBJ) $(C_) $(TESSERACTDIR)/src/textord/tablerecog.cpp
+
+$(TESSOBJ)textord_textlineprojection.$(OBJ) : $(TESSERACTDIR)/src/textord/textlineprojection.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)textord_textlineprojection.$(OBJ) $(C_) $(TESSERACTDIR)/src/textord/textlineprojection.cpp
+
+$(TESSOBJ)textord_textord.$(OBJ) : $(TESSERACTDIR)/src/textord/textord.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)textord_textord.$(OBJ) $(C_) $(TESSERACTDIR)/src/textord/textord.cpp
+
+$(TESSOBJ)textord_topitch.$(OBJ) : $(TESSERACTDIR)/src/textord/topitch.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)textord_topitch.$(OBJ) $(C_) $(TESSERACTDIR)/src/textord/topitch.cpp
+
+$(TESSOBJ)textord_tordmain.$(OBJ) : $(TESSERACTDIR)/src/textord/tordmain.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)textord_tordmain.$(OBJ) $(C_) $(TESSERACTDIR)/src/textord/tordmain.cpp
+
+$(TESSOBJ)textord_tospace.$(OBJ) : $(TESSERACTDIR)/src/textord/tospace.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)textord_tospace.$(OBJ) $(C_) $(TESSERACTDIR)/src/textord/tospace.cpp
+
+$(TESSOBJ)textord_tovars.$(OBJ) : $(TESSERACTDIR)/src/textord/tovars.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)textord_tovars.$(OBJ) $(C_) $(TESSERACTDIR)/src/textord/tovars.cpp
+
+$(TESSOBJ)textord_underlin.$(OBJ) : $(TESSERACTDIR)/src/textord/underlin.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)textord_underlin.$(OBJ) $(C_) $(TESSERACTDIR)/src/textord/underlin.cpp
+
+$(TESSOBJ)textord_wordseg.$(OBJ) : $(TESSERACTDIR)/src/textord/wordseg.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)textord_wordseg.$(OBJ) $(C_) $(TESSERACTDIR)/src/textord/wordseg.cpp
+
+$(TESSOBJ)textord_workingpartset.$(OBJ) : $(TESSERACTDIR)/src/textord/workingpartset.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)textord_workingpartset.$(OBJ) $(C_) $(TESSERACTDIR)/src/textord/workingpartset.cpp
+
+$(TESSOBJ)textord_equationdetectbase.$(OBJ) : $(TESSERACTDIR)/src/textord/equationdetectbase.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)textord_equationdetectbase.$(OBJ) $(C_) $(TESSERACTDIR)/src/textord/equationdetectbase.cpp
+
+$(TESSOBJ)viewer_scrollview.$(OBJ) : $(TESSERACTDIR)/src/viewer/scrollview.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)viewer_scrollview.$(OBJ) $(C_) $(TESSERACTDIR)/src/viewer/scrollview.cpp
+
+$(TESSOBJ)viewer_svmnode.$(OBJ) : $(TESSERACTDIR)/src/viewer/svmnode.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)viewer_svmnode.$(OBJ) $(C_) $(TESSERACTDIR)/src/viewer/svmnode.cpp
+
+$(TESSOBJ)viewer_svutil.$(OBJ) : $(TESSERACTDIR)/src/viewer/svutil.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)viewer_svutil.$(OBJ) $(C_) $(TESSERACTDIR)/src/viewer/svutil.cpp
+
+$(TESSOBJ)wordrec_chop.$(OBJ) : $(TESSERACTDIR)/src/wordrec/chop.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)wordrec_chop.$(OBJ) $(C_) $(TESSERACTDIR)/src/wordrec/chop.cpp
+
+$(TESSOBJ)wordrec_chopper.$(OBJ) : $(TESSERACTDIR)/src/wordrec/chopper.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)wordrec_chopper.$(OBJ) $(C_) $(TESSERACTDIR)/src/wordrec/chopper.cpp
+
+$(TESSOBJ)wordrec_findseam.$(OBJ) : $(TESSERACTDIR)/src/wordrec/findseam.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)wordrec_findseam.$(OBJ) $(C_) $(TESSERACTDIR)/src/wordrec/findseam.cpp
+
+$(TESSOBJ)wordrec_gradechop.$(OBJ) : $(TESSERACTDIR)/src/wordrec/gradechop.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)wordrec_gradechop.$(OBJ) $(C_) $(TESSERACTDIR)/src/wordrec/gradechop.cpp
+
+$(TESSOBJ)wordrec_tface.$(OBJ) : $(TESSERACTDIR)/src/wordrec/tface.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)wordrec_tface.$(OBJ) $(C_) $(TESSERACTDIR)/src/wordrec/tface.cpp
+
+$(TESSOBJ)wordrec_wordrec.$(OBJ) : $(TESSERACTDIR)/src/wordrec/wordrec.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)wordrec_wordrec.$(OBJ) $(C_) $(TESSERACTDIR)/src/wordrec/wordrec.cpp
+
+$(TESSOBJ)wordrec_associate.$(OBJ) : $(TESSERACTDIR)/src/wordrec/associate.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)wordrec_associate.$(OBJ) $(C_) $(TESSERACTDIR)/src/wordrec/associate.cpp
+
+$(TESSOBJ)wordrec_drawfx.$(OBJ) : $(TESSERACTDIR)/src/wordrec/drawfx.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)wordrec_drawfx.$(OBJ) $(C_) $(TESSERACTDIR)/src/wordrec/drawfx.cpp
+
+$(TESSOBJ)wordrec_language_model.$(OBJ) : $(TESSERACTDIR)/src/wordrec/language_model.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)wordrec_language_model.$(OBJ) $(C_) $(TESSERACTDIR)/src/wordrec/language_model.cpp
+
+$(TESSOBJ)wordrec_lm_consistency.$(OBJ) : $(TESSERACTDIR)/src/wordrec/lm_consistency.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)wordrec_lm_consistency.$(OBJ) $(C_) $(TESSERACTDIR)/src/wordrec/lm_consistency.cpp
+
+$(TESSOBJ)wordrec_lm_pain_points.$(OBJ) : $(TESSERACTDIR)/src/wordrec/lm_pain_points.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)wordrec_lm_pain_points.$(OBJ) $(C_) $(TESSERACTDIR)/src/wordrec/lm_pain_points.cpp
+
+$(TESSOBJ)wordrec_lm_state.$(OBJ) : $(TESSERACTDIR)/src/wordrec/lm_state.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)wordrec_lm_state.$(OBJ) $(C_) $(TESSERACTDIR)/src/wordrec/lm_state.cpp
+
+$(TESSOBJ)wordrec_outlines.$(OBJ) : $(TESSERACTDIR)/src/wordrec/outlines.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)wordrec_outlines.$(OBJ) $(C_) $(TESSERACTDIR)/src/wordrec/outlines.cpp
+
+$(TESSOBJ)wordrec_pieces.$(OBJ) : $(TESSERACTDIR)/src/wordrec/pieces.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)wordrec_pieces.$(OBJ) $(C_) $(TESSERACTDIR)/src/wordrec/pieces.cpp
+
+$(TESSOBJ)wordrec_params_model.$(OBJ) : $(TESSERACTDIR)/src/wordrec/params_model.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)wordrec_params_model.$(OBJ) $(C_) $(TESSERACTDIR)/src/wordrec/params_model.cpp
+
+$(TESSOBJ)wordrec_plotedges.$(OBJ) : $(TESSERACTDIR)/src/wordrec/plotedges.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)wordrec_plotedges.$(OBJ) $(C_) $(TESSERACTDIR)/src/wordrec/plotedges.cpp
+
+$(TESSOBJ)wordrec_render.$(OBJ) : $(TESSERACTDIR)/src/wordrec/render.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)wordrec_render.$(OBJ) $(C_) $(TESSERACTDIR)/src/wordrec/render.cpp
+
+$(TESSOBJ)wordrec_segsearch.$(OBJ) : $(TESSERACTDIR)/src/wordrec/segsearch.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)wordrec_segsearch.$(OBJ) $(C_) $(TESSERACTDIR)/src/wordrec/segsearch.cpp
+
+$(TESSOBJ)wordrec_wordclass.$(OBJ) : $(TESSERACTDIR)/src/wordrec/wordclass.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)wordrec_wordclass.$(OBJ) $(C_) $(TESSERACTDIR)/src/wordrec/wordclass.cpp
+
+$(TESSOBJ)ccutil_ambigs.$(OBJ) : $(TESSERACTDIR)/src/ccutil/ambigs.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccutil_ambigs.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccutil/ambigs.cpp
+
+$(TESSOBJ)ccutil_ccutil.$(OBJ) : $(TESSERACTDIR)/src/ccutil/ccutil.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccutil_ccutil.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccutil/ccutil.cpp
+
+$(TESSOBJ)ccutil_clst.$(OBJ) : $(TESSERACTDIR)/src/ccutil/clst.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccutil_clst.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccutil/clst.cpp
+
+$(TESSOBJ)ccutil_elst2.$(OBJ) : $(TESSERACTDIR)/src/ccutil/elst2.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccutil_elst2.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccutil/elst2.cpp
+
+$(TESSOBJ)ccutil_elst.$(OBJ) : $(TESSERACTDIR)/src/ccutil/elst.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccutil_elst.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccutil/elst.cpp
+
+$(TESSOBJ)ccutil_errcode.$(OBJ) : $(TESSERACTDIR)/src/ccutil/errcode.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccutil_errcode.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccutil/errcode.cpp
+
+$(TESSOBJ)ccutil_globaloc.$(OBJ) : $(TESSERACTDIR)/src/ccutil/globaloc.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccutil_globaloc.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccutil/globaloc.cpp
+
+$(TESSOBJ)ccutil_mainblk.$(OBJ) : $(TESSERACTDIR)/src/ccutil/mainblk.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccutil_mainblk.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccutil/mainblk.cpp
+
+$(TESSOBJ)ccutil_serialis.$(OBJ) : $(TESSERACTDIR)/src/ccutil/serialis.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccutil_serialis.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccutil/serialis.cpp
+
+$(TESSOBJ)ccutil_strngs.$(OBJ) : $(TESSERACTDIR)/src/ccutil/strngs.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccutil_strngs.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccutil/strngs.cpp
+
+$(TESSOBJ)ccutil_scanutils.$(OBJ) : $(TESSERACTDIR)/src/ccutil/scanutils.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccutil_scanutils.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccutil/scanutils.cpp
+
+$(TESSOBJ)ccutil_tessdatamanager.$(OBJ) : $(TESSERACTDIR)/src/ccutil/tessdatamanager.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccutil_tessdatamanager.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccutil/tessdatamanager.cpp
+
+$(TESSOBJ)ccutil_tprintf.$(OBJ) : $(TESSERACTDIR)/src/ccutil/tprintf.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccutil_tprintf.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccutil/tprintf.cpp
+
+$(TESSOBJ)ccutil_unichar.$(OBJ) : $(TESSERACTDIR)/src/ccutil/unichar.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccutil_unichar.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccutil/unichar.cpp
+
+$(TESSOBJ)ccutil_unicharcompress.$(OBJ) : $(TESSERACTDIR)/src/ccutil/unicharcompress.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccutil_unicharcompress.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccutil/unicharcompress.cpp
+
+$(TESSOBJ)ccutil_unicharmap.$(OBJ) : $(TESSERACTDIR)/src/ccutil/unicharmap.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccutil_unicharmap.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccutil/unicharmap.cpp
+
+$(TESSOBJ)ccutil_unicharset.$(OBJ) : $(TESSERACTDIR)/src/ccutil/unicharset.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccutil_unicharset.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccutil/unicharset.cpp
+
+$(TESSOBJ)ccutil_unicodes.$(OBJ) : $(TESSERACTDIR)/src/ccutil/unicodes.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccutil_unicodes.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccutil/unicodes.cpp
+
+$(TESSOBJ)ccutil_params.$(OBJ) : $(TESSERACTDIR)/src/ccutil/params.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccutil_params.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccutil/params.cpp
+
+$(TESSOBJ)ccutil_bitvector.$(OBJ) : $(TESSERACTDIR)/src/ccutil/bitvector.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccutil_bitvector.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccutil/bitvector.cpp
+
+$(TESSOBJ)ccutil_indexmapbidi.$(OBJ) : $(TESSERACTDIR)/src/ccutil/indexmapbidi.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccutil_indexmapbidi.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccutil/indexmapbidi.cpp
+
+$(TESSOBJ)ccutil_universalambigs.$(OBJ) : $(TESSERACTDIR)/src/ccutil/universalambigs.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)ccutil_universalambigs.$(OBJ) $(C_) $(TESSERACTDIR)/src/ccutil/universalambigs.cpp
+
+$(TESSOBJ)lstm_convolve.$(OBJ) : $(TESSERACTDIR)/src/lstm/convolve.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)lstm_convolve.$(OBJ) $(C_) $(TESSERACTDIR)/src/lstm/convolve.cpp
+
+$(TESSOBJ)lstm_fullyconnected.$(OBJ) : $(TESSERACTDIR)/src/lstm/fullyconnected.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)lstm_fullyconnected.$(OBJ) $(C_) $(TESSERACTDIR)/src/lstm/fullyconnected.cpp
+
+$(TESSOBJ)lstm_functions.$(OBJ) : $(TESSERACTDIR)/src/lstm/functions.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)lstm_functions.$(OBJ) $(C_) $(TESSERACTDIR)/src/lstm/functions.cpp
+
+$(TESSOBJ)lstm_input.$(OBJ) : $(TESSERACTDIR)/src/lstm/input.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)lstm_input.$(OBJ) $(C_) $(TESSERACTDIR)/src/lstm/input.cpp
+
+$(TESSOBJ)lstm_lstm.$(OBJ) : $(TESSERACTDIR)/src/lstm/lstm.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)lstm_lstm.$(OBJ) $(C_) $(TESSERACTDIR)/src/lstm/lstm.cpp
+
+$(TESSOBJ)lstm_lstmrecognizer.$(OBJ) : $(TESSERACTDIR)/src/lstm/lstmrecognizer.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)lstm_lstmrecognizer.$(OBJ) $(C_) $(TESSERACTDIR)/src/lstm/lstmrecognizer.cpp
+
+$(TESSOBJ)lstm_maxpool.$(OBJ) : $(TESSERACTDIR)/src/lstm/maxpool.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)lstm_maxpool.$(OBJ) $(C_) $(TESSERACTDIR)/src/lstm/maxpool.cpp
+
+$(TESSOBJ)lstm_network.$(OBJ) : $(TESSERACTDIR)/src/lstm/network.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)lstm_network.$(OBJ) $(C_) $(TESSERACTDIR)/src/lstm/network.cpp
+
+$(TESSOBJ)lstm_networkio.$(OBJ) : $(TESSERACTDIR)/src/lstm/networkio.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)lstm_networkio.$(OBJ) $(C_) $(TESSERACTDIR)/src/lstm/networkio.cpp
+
+$(TESSOBJ)lstm_parallel.$(OBJ) : $(TESSERACTDIR)/src/lstm/parallel.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)lstm_parallel.$(OBJ) $(C_) $(TESSERACTDIR)/src/lstm/parallel.cpp
+
+$(TESSOBJ)lstm_plumbing.$(OBJ) : $(TESSERACTDIR)/src/lstm/plumbing.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)lstm_plumbing.$(OBJ) $(C_) $(TESSERACTDIR)/src/lstm/plumbing.cpp
+
+$(TESSOBJ)lstm_recodebeam.$(OBJ) : $(TESSERACTDIR)/src/lstm/recodebeam.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)lstm_recodebeam.$(OBJ) $(C_) $(TESSERACTDIR)/src/lstm/recodebeam.cpp
+
+$(TESSOBJ)lstm_reconfig.$(OBJ) : $(TESSERACTDIR)/src/lstm/reconfig.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)lstm_reconfig.$(OBJ) $(C_) $(TESSERACTDIR)/src/lstm/reconfig.cpp
+
+$(TESSOBJ)lstm_reversed.$(OBJ) : $(TESSERACTDIR)/src/lstm/reversed.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)lstm_reversed.$(OBJ) $(C_) $(TESSERACTDIR)/src/lstm/reversed.cpp
+
+$(TESSOBJ)lstm_series.$(OBJ) : $(TESSERACTDIR)/src/lstm/series.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)lstm_series.$(OBJ) $(C_) $(TESSERACTDIR)/src/lstm/series.cpp
+
+$(TESSOBJ)lstm_stridemap.$(OBJ) : $(TESSERACTDIR)/src/lstm/stridemap.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)lstm_stridemap.$(OBJ) $(C_) $(TESSERACTDIR)/src/lstm/stridemap.cpp
+
+$(TESSOBJ)lstm_tfnetwork.$(OBJ) : $(TESSERACTDIR)/src/lstm/tfnetwork.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)lstm_tfnetwork.$(OBJ) $(C_) $(TESSERACTDIR)/src/lstm/tfnetwork.cpp
+
+$(TESSOBJ)lstm_weightmatrix.$(OBJ) : $(TESSERACTDIR)/src/lstm/weightmatrix.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)lstm_weightmatrix.$(OBJ) $(C_) $(TESSERACTDIR)/src/lstm/weightmatrix.cpp
+
+$(TESSOBJ)arch_dotproduct.$(OBJ) : $(TESSERACTDIR)/src/arch/dotproduct.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSO_)arch_dotproduct.$(OBJ) $(C_) $(TESSERACTDIR)/src/arch/dotproduct.cpp
+
+$(TESSOBJ)arch_dotproductavx.$(OBJ): $(TESSERACTDIR)/src/arch/dotproductavx.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSAVX) $(TESSO_)arch_dotproductavx.$(OBJ) $(C_) $(TESSERACTDIR)/src/arch/dotproductavx.cpp
+
+$(TESSOBJ)arch_dotproductfma.$(OBJ): $(TESSERACTDIR)/src/arch/dotproductfma.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSFMA) $(TESSO_)arch_dotproductfma.$(OBJ) $(C_) $(TESSERACTDIR)/src/arch/dotproductfma.cpp
+
+$(TESSOBJ)arch_dotproductsse.$(OBJ): $(TESSERACTDIR)/src/arch/dotproductsse.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSSSE41) $(TESSO_)arch_dotproductsse.$(OBJ) $(C_) $(TESSERACTDIR)/src/arch/dotproductsse.cpp
+
+$(TESSOBJ)arch_intsimdmatrixavx2.$(OBJ): $(TESSERACTDIR)/src/arch/intsimdmatrixavx2.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSAVX2) $(TESSO_)arch_intsimdmatrixavx2.$(OBJ) $(C_) $(TESSERACTDIR)/src/arch/intsimdmatrixavx2.cpp
+
+$(TESSOBJ)arch_intsimdmatrixsse.$(OBJ): $(TESSERACTDIR)/src/arch/intsimdmatrixsse.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSSSE41) $(TESSO_)arch_intsimdmatrixsse.$(OBJ) $(C_) $(TESSERACTDIR)/src/arch/intsimdmatrixsse.cpp
+
+$(TESSOBJ)arch_intsimdmatrixneon.$(OBJ): $(TESSERACTDIR)/src/arch/intsimdmatrixneon.cpp $(TESSDEPS)
+ $(TESSCXX) $(TESSNEON) $(TESSO_)arch_intsimdmatrixneon.$(OBJ) $(C_) $(TESSERACTDIR)/src/arch/intsimdmatrixneon.cpp
+
+# Targets needed for lstm engine
+TESSERACT_OBJS_1=\
+ $(TESSOBJ)api_altorenderer.$(OBJ)\
+ $(TESSOBJ)api_baseapi.$(OBJ)\
+ $(TESSOBJ)api_capi.$(OBJ)\
+ $(TESSOBJ)api_hocrrenderer.$(OBJ)\
+ $(TESSOBJ)api_lstmboxrenderer.$(OBJ)\
+ $(TESSOBJ)api_pdfrenderer.$(OBJ)\
+ $(TESSOBJ)api_renderer.$(OBJ)\
+ $(TESSOBJ)api_wordstrboxrenderer.$(OBJ)\
+ $(TESSOBJ)arch_intsimdmatrix.$(OBJ)\
+ $(TESSOBJ)arch_simddetect.$(OBJ)\
+ $(TESSOBJ)ccmain_applybox.$(OBJ)\
+ $(TESSOBJ)ccmain_control.$(OBJ)\
+ $(TESSOBJ)ccmain_linerec.$(OBJ)\
+ $(TESSOBJ)ccmain_ltrresultiterator.$(OBJ)\
+ $(TESSOBJ)ccmain_mutableiterator.$(OBJ)\
+ $(TESSOBJ)ccmain_output.$(OBJ)\
+ $(TESSOBJ)ccmain_pageiterator.$(OBJ)\
+ $(TESSOBJ)ccmain_pagesegmain.$(OBJ)\
+ $(TESSOBJ)ccmain_pagewalk.$(OBJ)\
+ $(TESSOBJ)ccmain_paragraphs.$(OBJ)\
+ $(TESSOBJ)ccmain_paramsd.$(OBJ)\
+ $(TESSOBJ)ccmain_pgedit.$(OBJ)\
+ $(TESSOBJ)ccmain_reject.$(OBJ)\
+ $(TESSOBJ)ccmain_resultiterator.$(OBJ)\
+ $(TESSOBJ)ccmain_tessedit.$(OBJ)\
+ $(TESSOBJ)ccmain_tesseractclass.$(OBJ)\
+ $(TESSOBJ)ccmain_tessvars.$(OBJ)\
+ $(TESSOBJ)ccmain_thresholder.$(OBJ)\
+ $(TESSOBJ)ccmain_werdit.$(OBJ)\
+
+
+TESSERACT_OBJS_2 = \
+ $(TESSOBJ)ccstruct_blamer.$(OBJ)\
+ $(TESSOBJ)ccstruct_blobbox.$(OBJ)\
+ $(TESSOBJ)ccstruct_blobs.$(OBJ)\
+ $(TESSOBJ)ccstruct_blread.$(OBJ)\
+ $(TESSOBJ)ccstruct_boxread.$(OBJ)\
+ $(TESSOBJ)ccstruct_boxword.$(OBJ)\
+ $(TESSOBJ)ccstruct_ccstruct.$(OBJ)\
+ $(TESSOBJ)ccstruct_coutln.$(OBJ)\
+ $(TESSOBJ)ccstruct_detlinefit.$(OBJ)\
+ $(TESSOBJ)ccstruct_dppoint.$(OBJ)\
+ $(TESSOBJ)ccstruct_imagedata.$(OBJ)\
+ $(TESSOBJ)ccstruct_linlsq.$(OBJ)\
+ $(TESSOBJ)ccstruct_matrix.$(OBJ)\
+ $(TESSOBJ)ccstruct_mod128.$(OBJ)\
+ $(TESSOBJ)ccstruct_normalis.$(OBJ)\
+ $(TESSOBJ)ccstruct_ocrblock.$(OBJ)\
+ $(TESSOBJ)ccstruct_ocrpara.$(OBJ)\
+ $(TESSOBJ)ccstruct_ocrrow.$(OBJ)\
+ $(TESSOBJ)ccstruct_otsuthr.$(OBJ)\
+ $(TESSOBJ)ccstruct_pageres.$(OBJ)\
+ $(TESSOBJ)ccstruct_pdblock.$(OBJ)\
+ $(TESSOBJ)ccstruct_points.$(OBJ)\
+ $(TESSOBJ)ccstruct_polyaprx.$(OBJ)\
+ $(TESSOBJ)ccstruct_polyblk.$(OBJ)\
+ $(TESSOBJ)ccstruct_quadlsq.$(OBJ)\
+ $(TESSOBJ)ccstruct_quspline.$(OBJ)\
+ $(TESSOBJ)ccstruct_ratngs.$(OBJ)\
+ $(TESSOBJ)ccstruct_rect.$(OBJ)\
+ $(TESSOBJ)ccstruct_rejctmap.$(OBJ)\
+ $(TESSOBJ)ccstruct_seam.$(OBJ)\
+ $(TESSOBJ)ccstruct_split.$(OBJ)\
+ $(TESSOBJ)ccstruct_statistc.$(OBJ)\
+ $(TESSOBJ)ccstruct_stepblob.$(OBJ)\
+ $(TESSOBJ)ccstruct_werd.$(OBJ)
+
+TESSERACT_OBJS_3=\
+ $(TESSOBJ)classify_classify.$(OBJ)\
+ $(TESSOBJ)dict_context.$(OBJ)\
+ $(TESSOBJ)dict_dawg.$(OBJ)\
+ $(TESSOBJ)dict_dawg_cache.$(OBJ)\
+ $(TESSOBJ)dict_dict.$(OBJ)\
+ $(TESSOBJ)dict_permdawg.$(OBJ)\
+ $(TESSOBJ)dict_stopper.$(OBJ)\
+ $(TESSOBJ)dict_trie.$(OBJ)\
+ $(TESSOBJ)textord_alignedblob.$(OBJ)\
+ $(TESSOBJ)textord_baselinedetect.$(OBJ)\
+ $(TESSOBJ)textord_bbgrid.$(OBJ)\
+ $(TESSOBJ)textord_blkocc.$(OBJ)\
+ $(TESSOBJ)textord_blobgrid.$(OBJ)\
+ $(TESSOBJ)textord_ccnontextdetect.$(OBJ)\
+ $(TESSOBJ)textord_cjkpitch.$(OBJ)\
+ $(TESSOBJ)textord_colfind.$(OBJ)\
+ $(TESSOBJ)textord_colpartition.$(OBJ)\
+ $(TESSOBJ)textord_colpartitionset.$(OBJ)\
+ $(TESSOBJ)textord_colpartitiongrid.$(OBJ)\
+ $(TESSOBJ)textord_devanagari_processing.$(OBJ)\
+ $(TESSOBJ)textord_drawtord.$(OBJ)\
+ $(TESSOBJ)textord_edgblob.$(OBJ)\
+ $(TESSOBJ)textord_edgloop.$(OBJ)\
+ $(TESSOBJ)textord_fpchop.$(OBJ)\
+ $(TESSOBJ)textord_gap_map.$(OBJ)\
+ $(TESSOBJ)textord_imagefind.$(OBJ)\
+ $(TESSOBJ)textord_linefind.$(OBJ)\
+ $(TESSOBJ)textord_makerow.$(OBJ)\
+ $(TESSOBJ)textord_oldbasel.$(OBJ)\
+ $(TESSOBJ)textord_pithsync.$(OBJ)\
+ $(TESSOBJ)textord_pitsync1.$(OBJ)\
+ $(TESSOBJ)textord_scanedg.$(OBJ)\
+ $(TESSOBJ)textord_sortflts.$(OBJ)\
+ $(TESSOBJ)textord_strokewidth.$(OBJ)\
+ $(TESSOBJ)textord_tabfind.$(OBJ)\
+ $(TESSOBJ)textord_tablefind.$(OBJ)\
+ $(TESSOBJ)textord_tabvector.$(OBJ)\
+ $(TESSOBJ)textord_tablerecog.$(OBJ)\
+ $(TESSOBJ)textord_textlineprojection.$(OBJ)\
+ $(TESSOBJ)textord_textord.$(OBJ)\
+ $(TESSOBJ)textord_topitch.$(OBJ)\
+ $(TESSOBJ)textord_tordmain.$(OBJ)\
+ $(TESSOBJ)textord_tospace.$(OBJ)\
+ $(TESSOBJ)textord_tovars.$(OBJ)\
+ $(TESSOBJ)textord_underlin.$(OBJ)\
+ $(TESSOBJ)textord_wordseg.$(OBJ)\
+ $(TESSOBJ)textord_workingpartset.$(OBJ)\
+
+TESSERACT_OBJS_4=\
+ $(TESSOBJ)viewer_scrollview.$(OBJ)\
+ $(TESSOBJ)viewer_svmnode.$(OBJ)\
+ $(TESSOBJ)viewer_svutil.$(OBJ)\
+ $(TESSOBJ)wordrec_tface.$(OBJ)\
+ $(TESSOBJ)wordrec_wordrec.$(OBJ)\
+ $(TESSOBJ)ccutil_ccutil.$(OBJ)\
+ $(TESSOBJ)ccutil_clst.$(OBJ)\
+ $(TESSOBJ)ccutil_elst2.$(OBJ)\
+ $(TESSOBJ)ccutil_elst.$(OBJ)\
+ $(TESSOBJ)ccutil_errcode.$(OBJ)\
+ $(TESSOBJ)ccutil_globaloc.$(OBJ)\
+ $(TESSOBJ)ccutil_mainblk.$(OBJ)\
+ $(TESSOBJ)ccutil_serialis.$(OBJ)\
+ $(TESSOBJ)ccutil_strngs.$(OBJ)\
+ $(TESSOBJ)ccutil_scanutils.$(OBJ)\
+ $(TESSOBJ)ccutil_tessdatamanager.$(OBJ)\
+ $(TESSOBJ)ccutil_tprintf.$(OBJ)\
+ $(TESSOBJ)ccutil_unichar.$(OBJ)\
+ $(TESSOBJ)ccutil_unicharcompress.$(OBJ)\
+ $(TESSOBJ)ccutil_unicharmap.$(OBJ)\
+ $(TESSOBJ)ccutil_unicharset.$(OBJ)\
+ $(TESSOBJ)ccutil_unicodes.$(OBJ)\
+ $(TESSOBJ)ccutil_params.$(OBJ)\
+ $(TESSOBJ)lstm_convolve.$(OBJ)\
+ $(TESSOBJ)lstm_fullyconnected.$(OBJ)\
+ $(TESSOBJ)lstm_functions.$(OBJ)\
+ $(TESSOBJ)lstm_input.$(OBJ)\
+ $(TESSOBJ)lstm_lstm.$(OBJ)\
+ $(TESSOBJ)lstm_lstmrecognizer.$(OBJ)\
+ $(TESSOBJ)lstm_maxpool.$(OBJ)\
+ $(TESSOBJ)lstm_network.$(OBJ)\
+ $(TESSOBJ)lstm_networkio.$(OBJ)\
+ $(TESSOBJ)lstm_parallel.$(OBJ)\
+ $(TESSOBJ)lstm_plumbing.$(OBJ)\
+ $(TESSOBJ)lstm_recodebeam.$(OBJ)\
+ $(TESSOBJ)lstm_reconfig.$(OBJ)\
+ $(TESSOBJ)lstm_reversed.$(OBJ)\
+ $(TESSOBJ)lstm_series.$(OBJ)\
+ $(TESSOBJ)lstm_stridemap.$(OBJ)\
+ $(TESSOBJ)lstm_tfnetwork.$(OBJ)\
+ $(TESSOBJ)lstm_weightmatrix.$(OBJ)\
+ $(TESSOBJ)arch_dotproduct.$(OBJ)\
+ $(TESSOBJ)arch_dotproductavx.$(OBJ)\
+ $(TESSOBJ)arch_intsimdmatrixavx2.$(OBJ)\
+ $(TESSOBJ)arch_dotproductfma.$(OBJ)\
+ $(TESSOBJ)arch_dotproductsse.$(OBJ)\
+ $(TESSOBJ)arch_intsimdmatrixsse.$(OBJ)\
+ $(TESSOBJ)arch_intsimdmatrixneon.$(OBJ)
+
+# Targets needed for TESSERACT_LEGACY
+TESSERACT_LEGACY_OBJS=\
+ $(TESSOBJ)ccmain_adaptions.$(OBJ)\
+ $(TESSOBJ)ccmain_docqual.$(OBJ)\
+ $(TESSOBJ)ccmain_equationdetect.$(OBJ)\
+ $(TESSOBJ)ccmain_fixspace.$(OBJ)\
+ $(TESSOBJ)ccmain_fixxht.$(OBJ)\
+ $(TESSOBJ)ccmain_osdetect.$(OBJ)\
+ $(TESSOBJ)ccmain_par_control.$(OBJ)\
+ $(TESSOBJ)ccmain_recogtraining.$(OBJ)\
+ $(TESSOBJ)ccmain_superscript.$(OBJ)\
+ $(TESSOBJ)ccmain_tessbox.$(OBJ)\
+ $(TESSOBJ)ccmain_tfacepp.$(OBJ)\
+ $(TESSOBJ)ccstruct_fontinfo.$(OBJ)\
+ $(TESSOBJ)ccstruct_params_training_featdef.$(OBJ)\
+ $(TESSOBJ)ccutil_ambigs.$(OBJ)\
+ $(TESSOBJ)ccutil_bitvector.$(OBJ)\
+ $(TESSOBJ)ccutil_indexmapbidi.$(OBJ)\
+ $(TESSOBJ)ccutil_universalambigs.$(OBJ)\
+ $(TESSOBJ)classify_adaptive.$(OBJ)\
+ $(TESSOBJ)classify_adaptmatch.$(OBJ)\
+ $(TESSOBJ)classify_blobclass.$(OBJ)\
+ $(TESSOBJ)classify_cluster.$(OBJ)\
+ $(TESSOBJ)classify_clusttool.$(OBJ)\
+ $(TESSOBJ)classify_cutoffs.$(OBJ)\
+ $(TESSOBJ)classify_featdefs.$(OBJ)\
+ $(TESSOBJ)classify_float2int.$(OBJ)\
+ $(TESSOBJ)classify_fpoint.$(OBJ)\
+ $(TESSOBJ)classify_intfeaturespace.$(OBJ)\
+ $(TESSOBJ)classify_intfx.$(OBJ)\
+ $(TESSOBJ)classify_intmatcher.$(OBJ)\
+ $(TESSOBJ)classify_intproto.$(OBJ)\
+ $(TESSOBJ)classify_kdtree.$(OBJ)\
+ $(TESSOBJ)classify_mf.$(OBJ)\
+ $(TESSOBJ)classify_mfdefs.$(OBJ)\
+ $(TESSOBJ)classify_mfoutline.$(OBJ)\
+ $(TESSOBJ)classify_mfx.$(OBJ)\
+ $(TESSOBJ)classify_normfeat.$(OBJ)\
+ $(TESSOBJ)classify_normmatch.$(OBJ)\
+ $(TESSOBJ)classify_ocrfeatures.$(OBJ)\
+ $(TESSOBJ)classify_outfeat.$(OBJ)\
+ $(TESSOBJ)classify_picofeat.$(OBJ)\
+ $(TESSOBJ)classify_protos.$(OBJ)\
+ $(TESSOBJ)classify_shapeclassifier.$(OBJ)\
+ $(TESSOBJ)classify_shapetable.$(OBJ)\
+ $(TESSOBJ)classify_tessclassifier.$(OBJ)\
+ $(TESSOBJ)classify_trainingsample.$(OBJ)\
+ $(TESSOBJ)cutil_emalloc.$(OBJ)\
+ $(TESSOBJ)cutil_oldlist.$(OBJ)\
+ $(TESSOBJ)dict_hyphen.$(OBJ)\
+ $(TESSOBJ)textord_equationdetectbase.$(OBJ)\
+ $(TESSOBJ)wordrec_associate.$(OBJ)\
+ $(TESSOBJ)wordrec_chop.$(OBJ)\
+ $(TESSOBJ)wordrec_chopper.$(OBJ)\
+ $(TESSOBJ)wordrec_drawfx.$(OBJ)\
+ $(TESSOBJ)wordrec_findseam.$(OBJ)\
+ $(TESSOBJ)wordrec_gradechop.$(OBJ)\
+ $(TESSOBJ)wordrec_language_model.$(OBJ)\
+ $(TESSOBJ)wordrec_lm_consistency.$(OBJ)\
+ $(TESSOBJ)wordrec_lm_pain_points.$(OBJ)\
+ $(TESSOBJ)wordrec_lm_state.$(OBJ)\
+ $(TESSOBJ)wordrec_outlines.$(OBJ)\
+ $(TESSOBJ)wordrec_params_model.$(OBJ)\
+ $(TESSOBJ)wordrec_pieces.$(OBJ)\
+ $(TESSOBJ)wordrec_plotedges.$(OBJ)\
+ $(TESSOBJ)wordrec_render.$(OBJ)\
+ $(TESSOBJ)wordrec_segsearch.$(OBJ)\
+ $(TESSOBJ)wordrec_wordclass.$(OBJ)
+
+
+#TESSERACT_LEGACY=$(TESSERACT_LEGACY_OBJS)
+TESSERACT_LEGACY=
+
+TESS_ROMFS_ARGS=\
+ -c -d Resource/ -P .$(D)Resource$(D) Tesseract$(D)*
diff --git a/base/tessocr.cpp b/base/tessocr.cpp
new file mode 100644
index 00000000..26e5432c
--- /dev/null
+++ b/base/tessocr.cpp
@@ -0,0 +1,443 @@
+#include "tesseract/baseapi.h"
+#include "tesseract/genericvector.h"
+#include "tesseract/serialis.h"
+
+extern "C"
+{
+
+#include "allheaders.h"
+#include "stdpre.h"
+#include "tessocr.h"
+#include "gserrors.h"
+#include "gp.h"
+#include "gssprintf.h"
+#include "gxiodev.h"
+#include "stream.h"
+
+#ifndef PATH_MAX
+#define PATH_MAX 4096
+#endif
+
+#undef DEBUG_ALLOCS
+#ifdef DEBUG_ALLOCS
+#undef printf
+static int event = 0;
+#endif
+
+void *leptonica_malloc(size_t blocksize)
+{
+ void *ret = malloc(blocksize);
+#ifdef DEBUG_ALLOCS
+ printf("%d LEPTONICA_MALLOC %d -> %p\n", event++, (int)blocksize, ret);
+ fflush(stdout);
+#endif
+ return ret;
+}
+
+void *leptonica_calloc(size_t numelm, size_t elemsize)
+{
+ void *ret = calloc(numelm, elemsize);
+#ifdef DEBUG_ALLOCS
+ printf("%d LEPTONICA_CALLOC %d,%d -> %p\n", event++, (int)numelm, (int)elemsize, ret);
+ fflush(stdout);
+#endif
+ return ret;
+}
+
+void *leptonica_realloc(void *ptr, size_t blocksize)
+{
+ void *ret = realloc(ptr, blocksize);
+#ifdef DEBUG_ALLOCS
+ printf("%d LEPTONICA_REALLOC %p,%d -> %p\n", event++, ptr, (int)blocksize, ret);
+ fflush(stdout);
+#endif
+ return ret;
+}
+
+void leptonica_free(void *ptr)
+{
+#ifdef DEBUG_ALLOCS
+ printf("%d LEPTONICA_FREE %p\n", event++, ptr);
+ fflush(stdout);
+#endif
+ free(ptr);
+}
+
+/* Convert from gs format bitmaps to leptonica format bitmaps. */
+static int convert2pix(l_uint32 *data, int w, int h, int raster)
+{
+ int x;
+ int w4 = ((w+3)>>2)-1;
+ int extra = raster - w >= 4;
+ l_uint32 mask = ~(0xFFFFFFFF<<((w&3)*8));
+
+ for (; h > 0; h--) {
+ l_uint32 v;
+ for (x = w4; x > 0; x--) {
+ v = *data;
+ *data++ = (v>>24) | ((v & 0xff0000)>>8) | ((v & 0xff00)<<8) | (v<<24);
+ }
+ v = *data;
+ *data++ = (v>>24) | ((v & 0xff0000)>>8) | ((v & 0xff00)<<8) | (v<<24) | mask;
+ if (extra)
+ *data++ = 0xFFFFFFFF;
+ }
+
+ return w + extra*4;
+}
+
+static gs_memory_t *leptonica_mem;
+
+static void *my_leptonica_malloc(size_t size)
+{
+ void *ret = gs_alloc_bytes(leptonica_mem, size, "leptonica_malloc");
+#ifdef DEBUG_ALLOCS
+ printf("%d MY_LEPTONICA_MALLOC(%p) %d -> %p\n", event++, leptonica_mem, (int)size, ret);
+ fflush(stdout);
+#endif
+ return ret;
+}
+
+static void my_leptonica_free(void *ptr)
+{
+#ifdef DEBUG_ALLOCS
+ printf("%d MY_LEPTONICA_FREE(%p) %p\n", event++, leptonica_mem, ptr);
+ fflush(stdout);
+#endif
+ gs_free_object(leptonica_mem, ptr, "leptonica_free");
+}
+
+static bool
+load_file(const char* filename, GenericVector<char>* data) {
+ bool result = false;
+ gp_file *fp = gp_fopen(leptonica_mem, filename, "rb");
+ if (fp == NULL)
+ return false;
+
+ gp_fseek(fp, 0, SEEK_END);
+ int size = (int)gp_ftell(fp);
+ gp_fseek(fp, 0, SEEK_SET);
+ // Trying to open a directory on Linux sets size to LONG_MAX. Catch it here.
+ if (size > 0 && size < LONG_MAX) {
+ // reserve an extra byte in case caller wants to append a '\0' character
+ data->reserve(size + 1);
+ data->resize_no_init(size);
+ result = static_cast<long>(gp_fread(&(*data)[0], 1, size, fp)) == size;
+ }
+ gp_fclose(fp);
+ return result;
+}
+
+static bool
+tess_file_reader(const char *fname, GenericVector<char> *out)
+{
+ const char *file = fname;
+ const char *s;
+ char text[PATH_MAX];
+ int code = 0;
+ stream *ps;
+ gx_io_device *iodev;
+
+ for (s = fname; *s; s++)
+ if (*s == '\\' || *s == '/')
+ file = s+1;
+
+ /* FIXME: Try loading 'file' from gs specific paths */
+ iodev = gs_findiodevice(leptonica_mem, (const byte *)"%rom", 4);
+ gs_snprintf(text, sizeof(text), "Resource/Tesseract/%s", file);
+ if (iodev) {
+ long size;
+ long i;
+ byte *copy;
+ /* We cannot call iodev->procs.file_status here to get the
+ * length, because C and C++ differ in their definition of
+ * stat on linux. */
+ size = (long)romfs_file_len(leptonica_mem, text);
+ if (size >= 0) {
+ out->reserve(size + 1);
+ out->resize_no_init(size);
+ code = iodev->procs.open_file(iodev, text, strlen(text), "rb", &ps, leptonica_mem);
+ if (code < 0)
+ return code;
+ copy = (byte *)&(*out)[0];
+ i = 0;
+ while (i < size) {
+ long a, n = size - i;
+ s_process_read_buf(ps);
+ a = sbufavailable(ps);
+ if (n > a)
+ n = a;
+ memcpy(copy+i, sbufptr(ps), a);
+ i += a;
+ sbufskip(ps, a);
+ }
+ sclose(ps);
+ gs_free_object(leptonica_mem, ps, "stream(tess_file_reader)");
+ return true;
+ }
+ }
+
+ /* Fall back to gp_file access, first under Resource/Tesseract */
+ if (load_file(text, out))
+ return true;
+
+ /* Then under TESSDATA */
+ return load_file(fname, out);
+}
+
+int
+ocr_init_api(gs_memory_t *mem, const char *language, void **state)
+{
+ tesseract::TessBaseAPI *api;
+
+ leptonica_mem = mem->non_gc_memory;
+ setPixMemoryManager(my_leptonica_malloc, my_leptonica_free);
+ api = new tesseract::TessBaseAPI();
+
+ *state = NULL;
+
+ if (api == NULL) {
+ leptonica_mem = NULL;
+ setPixMemoryManager(malloc, free);
+ return_error(gs_error_VMerror);
+ }
+
+ // Initialize tesseract-ocr with English, without specifying tessdata path
+ if (api->Init(NULL, 0, /* data, data_size */
+ language,
+ tesseract::OcrEngineMode::OEM_DEFAULT,
+ NULL, 0, /* configs, configs_size */
+ NULL, NULL, /* vars_vec */
+ false, /* set_only_non_debug_params */
+ &tess_file_reader)) {
+ delete api;
+ leptonica_mem = NULL;
+ setPixMemoryManager(malloc, free);
+ return_error(gs_error_unknownerror);
+ }
+
+ *state = (void *)api;
+
+ return 0;
+}
+
+void
+ocr_fin_api(gs_memory_t *mem, void *api_)
+{
+ tesseract::TessBaseAPI *api = (tesseract::TessBaseAPI *)api_;
+
+ if (api == NULL)
+ return;
+
+ api->End();
+ delete api;
+ leptonica_mem = NULL;
+ setPixMemoryManager(malloc, free);
+}
+
+static Pix *
+ocr_set_image(tesseract::TessBaseAPI *api,
+ int w, int h, void *data, int xres, int yres)
+{
+ Pix *image = pixCreateHeader(w, h, 8);
+
+ if (image == NULL)
+ return NULL;
+ pixSetData(image, (l_uint32 *)data);
+ pixSetPadBits(image, 1);
+ pixSetXRes(image, xres);
+ pixSetYRes(image, yres);
+ api->SetImage(image);
+ //pixWrite("test.pnm", image, IFF_PNM);
+
+ return image;
+}
+
+static void
+ocr_clear_image(Pix *image)
+{
+ pixSetData(image, NULL);
+ pixDestroy(&image);
+}
+
+static int
+do_ocr_image(gs_memory_t *mem,
+ int w, int h, int bpp, int raster,
+ int xres, int yres, void *data, int restore,
+ int hocr, int pagecount,
+ const char *language,
+ char **out)
+{
+ char *outText;
+ tesseract::TessBaseAPI *api;
+ int code;
+ Pix *image;
+
+ *out = NULL;
+
+ if (language == NULL || *language == 0)
+ language = "eng";
+ code = ocr_init_api(mem, language, (void **)&api);
+ if (code < 0)
+ return code;
+
+ if (bpp == 8)
+ w = convert2pix((l_uint32 *)data, w, h, raster);
+
+ image = ocr_set_image(api, w, h, data, xres, yres);
+ if (image == NULL) {
+ if (restore && bpp == 8)
+ convert2pix((l_uint32 *)data, w, h, raster);
+ ocr_fin_api(mem, api);
+ return_error(gs_error_VMerror);
+ }
+
+ // Get OCR result
+ //pixWrite("test.pnm", image, IFF_PNM);
+ if (hocr) {
+ api->SetVariable("hocr_font_info", "true");
+ api->SetVariable("hocr_char_boxes", "true");
+ outText = api->GetHOCRText(pagecount);
+ }
+ else
+ outText = api->GetUTF8Text();
+
+ ocr_clear_image(image);
+
+ /* Convert the image back. */
+ if (restore && bpp == 8)
+ w = convert2pix((l_uint32 *)data, w, h, raster);
+
+ // Copy the results into a gs controlled block.
+ if (outText)
+ {
+ size_t len = strlen(outText)+1;
+ *out = (char *)(void *)gs_alloc_bytes(mem, len, "ocr_to_utf8");
+ if (*out)
+ memcpy(*out, outText, len);
+ }
+
+ delete [] outText;
+
+ // Destroy used object and release memory
+ ocr_fin_api(mem, api);
+
+ return 0;
+}
+
+int ocr_image_to_hocr(gs_memory_t *mem,
+ int w, int h, int bpp, int raster,
+ int xres, int yres, void *data, int restore,
+ int pagecount, const char *language, char **out)
+{
+ return do_ocr_image(mem, w, h, bpp, raster, xres, yres, data,
+ restore, 1, pagecount, language, out);
+}
+
+int ocr_image_to_utf8(gs_memory_t *mem,
+ int w, int h, int bpp, int raster,
+ int xres, int yres, void *data, int restore,
+ const char *language, char **out)
+{
+ return do_ocr_image(mem, w, h, bpp, raster, xres, yres, data,
+ restore, 0, 0, language, out);
+}
+
+int
+ocr_recognise(void *api_, int w, int h, void *data,
+ int xres, int yres,
+ int (*callback)(void *, const char *, const int *, const int *, const int *, int),
+ void *arg)
+{
+ tesseract::TessBaseAPI *api = (tesseract::TessBaseAPI *)api_;
+ Pix *image;
+ int code;
+ int word_bbox[4];
+ int char_bbox[4];
+ int line_bbox[4];
+ bool bold, italic, underlined, monospace, serif, smallcaps;
+ int pointsize, font_id;
+ const char* font_name;
+
+ if (api == NULL)
+ return 0;
+
+ image = ocr_set_image(api, w, h, data, xres, yres);
+ if (image == NULL)
+ return_error(gs_error_VMerror);
+
+ code = api->Recognize(NULL);
+ if (code >= 0) {
+ /* Bingo! */
+ tesseract::ResultIterator *res_it = api->GetIterator();
+
+ while (!res_it->Empty(tesseract::RIL_BLOCK)) {
+ if (res_it->Empty(tesseract::RIL_WORD)) {
+ res_it->Next(tesseract::RIL_WORD);
+ continue;
+ }
+
+ res_it->BoundingBox(tesseract::RIL_TEXTLINE,
+ line_bbox, line_bbox+1,
+ line_bbox+2, line_bbox+3);
+ res_it->BoundingBox(tesseract::RIL_WORD,
+ word_bbox, word_bbox+1,
+ word_bbox+2, word_bbox+3);
+ font_name = res_it->WordFontAttributes(&bold,
+ &italic,
+ &underlined,
+ &monospace,
+ &serif,
+ &smallcaps,
+ &pointsize,
+ &font_id);
+ do {
+ const char *graph = res_it->GetUTF8Text(tesseract::RIL_SYMBOL);
+ if (graph && graph[0] != 0) {
+ res_it->BoundingBox(tesseract::RIL_SYMBOL,
+ char_bbox, char_bbox+1,
+ char_bbox+2, char_bbox+3);
+ code = callback(arg, graph, line_bbox, word_bbox, char_bbox, pointsize);
+ if (code < 0)
+ {
+ delete res_it;
+ return code;
+ }
+ }
+ res_it->Next(tesseract::RIL_SYMBOL);
+ } while (!res_it->Empty(tesseract::RIL_BLOCK) &&
+ !res_it->IsAtBeginningOf(tesseract::RIL_WORD));
+ }
+ delete res_it;
+ code = code;
+ }
+
+ ocr_clear_image(image);
+
+ return code;
+}
+
+};
+
+/* Currently tesseract is the only C++ lib we have.
+ * We may need to revisit this if this changes.
+ */
+void *operator new(size_t size)
+{
+ return leptonica_malloc(size);
+}
+
+void operator_delete(void *ptr)
+{
+ leptonica_free(ptr);
+}
+
+void *operator new[](size_t size)
+{
+ return leptonica_malloc(size);
+}
+
+void operator delete[](void *ptr)
+{
+ leptonica_free(ptr);
+}
diff --git a/base/tessocr.h b/base/tessocr.h
new file mode 100644
index 00000000..c5e7967b
--- /dev/null
+++ b/base/tessocr.h
@@ -0,0 +1,45 @@
+/* Copyright (C) 2020 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., 1305 Grant Avenue - Suite 200, Novato,
+ CA 94945, U.S.A., +1(415)492-9861, for further information.
+*/
+
+
+/* Simple veneer for tesseract */
+
+#ifndef tessocr_h_INCLUDED
+# define tessocr_h_INCLUDED
+
+#include "gsmemory.h"
+
+int ocr_image_to_utf8(gs_memory_t *mem,
+ int w, int h, int bpp, int raster,
+ int xres, int yres,
+ void *data, int restore_data,
+ const char *language, char **out);
+
+int ocr_image_to_hocr(gs_memory_t *mem,
+ int w, int h, int bpp, int raster,
+ int xres, int yres, void *data, int restore,
+ int pagecount, const char *language, char **out);
+
+int ocr_init_api(gs_memory_t *mem, const char *language, void **state);
+
+void ocr_fin_api(gs_memory_t *mem, void *api_);
+
+int ocr_recognise(void *api_, int w, int h, void *data,
+ int xres, int yres,
+ int (*callback)(void *, const char *, const int *, const int *, const int *, int),
+ void *arg);
+
+#endif
+
diff --git a/base/tiff.mak b/base/tiff.mak
index dec0e65e..8345d818 100644
--- a/base/tiff.mak
+++ b/base/tiff.mak
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2019 Artifex Software, Inc.
+# Copyright (C) 2001-2020 Artifex Software, Inc.
# All Rights Reserved.
#
# This software is provided AS-IS with no warranty, either express or
@@ -247,114 +247,114 @@ $(GLSRC)gstiffio.h:$(GLSRC)gxclthrd.h
$(GLSRC)gstiffio.h:$(GLSRC)gxclpage.h
$(GLSRC)gstiffio.h:$(GLSRC)gxclist.h
$(GLSRC)gstiffio.h:$(GLSRC)gxgstate.h
-$(GLSRC)gstiffio.h:$(GLSRC)gxline.h
$(GLSRC)gstiffio.h:$(GLSRC)gstrans.h
+$(GLSRC)gstiffio.h:$(GLSRC)gdevp14.h
+$(GLSRC)gstiffio.h:$(GLSRC)gxline.h
$(GLSRC)gstiffio.h:$(GLSRC)gsht1.h
+$(GLSRC)gstiffio.h:$(GLSRC)gxcomp.h
$(GLSRC)gstiffio.h:$(GLSRC)math_.h
-$(GLSRC)gstiffio.h:$(GLSRC)gdevp14.h
$(GLSRC)gstiffio.h:$(GLSRC)gxcolor2.h
$(GLSRC)gstiffio.h:$(GLSRC)gxpcolor.h
+$(GLSRC)gstiffio.h:$(GLSRC)gxdevmem.h
$(GLSRC)gstiffio.h:$(GLSRC)gdevdevn.h
-$(GLSRC)gstiffio.h:$(GLSRC)gsequivc.h
$(GLSRC)gstiffio.h:$(GLSRC)gx.h
-$(GLSRC)gstiffio.h:$(GLSRC)gxblend.h
$(GLSRC)gstiffio.h:$(GLSRC)gxclipsr.h
-$(GLSRC)gstiffio.h:$(GLSRC)gxcomp.h
-$(GLSRC)gstiffio.h:$(GLSRC)gxdcolor.h
$(GLSRC)gstiffio.h:$(GLSRC)gdebug.h
-$(GLSRC)gstiffio.h:$(GLSRC)gxmatrix.h
-$(GLSRC)gstiffio.h:$(GLSRC)gxbitfmt.h
$(GLSRC)gstiffio.h:$(GLSRC)gxdevbuf.h
+$(GLSRC)gstiffio.h:$(GLSRC)gxdcolor.h
$(GLSRC)gstiffio.h:$(GLSRC)gxband.h
+$(GLSRC)gstiffio.h:$(GLSRC)gxblend.h
$(GLSRC)gstiffio.h:$(GLSRC)gscolor2.h
-$(GLSRC)gstiffio.h:$(GLSRC)gscindex.h
+$(GLSRC)gstiffio.h:$(GLSRC)gxmatrix.h
$(GLSRC)gstiffio.h:$(GLSRC)gxdevice.h
-$(GLSRC)gstiffio.h:$(GLSRC)gsht.h
$(GLSRC)gstiffio.h:$(GLSRC)gxcpath.h
-$(GLSRC)gstiffio.h:$(GLSRC)gxdevmem.h
+$(GLSRC)gstiffio.h:$(GLSRC)gsht.h
+$(GLSRC)gstiffio.h:$(GLSRC)gsequivc.h
$(GLSRC)gstiffio.h:$(GLSRC)gxdevcli.h
$(GLSRC)gstiffio.h:$(GLSRC)gxpcache.h
+$(GLSRC)gstiffio.h:$(GLSRC)gscindex.h
+$(GLSRC)gstiffio.h:$(GLSRC)gxcmap.h
$(GLSRC)gstiffio.h:$(GLSRC)gsptype1.h
-$(GLSRC)gstiffio.h:$(GLSRC)gxtext.h
$(GLSRC)gstiffio.h:$(GLSRC)gscie.h
+$(GLSRC)gstiffio.h:$(GLSRC)gxtext.h
$(GLSRC)gstiffio.h:$(GLSRC)gstext.h
+$(GLSRC)gstiffio.h:$(GLSRC)gxstate.h
$(GLSRC)gstiffio.h:$(GLSRC)gsnamecl.h
$(GLSRC)gstiffio.h:$(GLSRC)gstparam.h
-$(GLSRC)gstiffio.h:$(GLSRC)gxstate.h
$(GLSRC)gstiffio.h:$(GLSRC)gspcolor.h
-$(GLSRC)gstiffio.h:$(GLSRC)gxfcache.h
-$(GLSRC)gstiffio.h:$(GLSRC)gxcspace.h
-$(GLSRC)gstiffio.h:$(GLSRC)gsropt.h
-$(GLSRC)gstiffio.h:$(GLSRC)gsfunc.h
+$(GLSRC)gstiffio.h:$(GLSRC)gxfmap.h
$(GLSRC)gstiffio.h:$(GLSRC)gsmalloc.h
-$(GLSRC)gstiffio.h:$(GLSRC)gxrplane.h
+$(GLSRC)gstiffio.h:$(GLSRC)gsfunc.h
+$(GLSRC)gstiffio.h:$(GLSRC)gxcspace.h
$(GLSRC)gstiffio.h:$(GLSRC)gxctable.h
-$(GLSRC)gstiffio.h:$(GLSRC)gsuid.h
-$(GLSRC)gstiffio.h:$(GLSRC)gxcmap.h
+$(GLSRC)gstiffio.h:$(GLSRC)gxrplane.h
+$(GLSRC)gstiffio.h:$(GLSRC)gscsel.h
+$(GLSRC)gstiffio.h:$(GLSRC)gxfcache.h
+$(GLSRC)gstiffio.h:$(GLSRC)gsfont.h
$(GLSRC)gstiffio.h:$(GLSRC)gsimage.h
$(GLSRC)gstiffio.h:$(GLSRC)gsdcolor.h
-$(GLSRC)gstiffio.h:$(GLSRC)gxdda.h
$(GLSRC)gstiffio.h:$(GLSRC)gxcvalue.h
-$(GLSRC)gstiffio.h:$(GLSRC)gsfont.h
-$(GLSRC)gstiffio.h:$(GLSRC)gxfmap.h
+$(GLSRC)gstiffio.h:$(GLSRC)gxbcache.h
+$(GLSRC)gstiffio.h:$(GLSRC)gsropt.h
+$(GLSRC)gstiffio.h:$(GLSRC)gxdda.h
+$(GLSRC)gstiffio.h:$(GLSRC)gxpath.h
$(GLSRC)gstiffio.h:$(GLSRC)gxiclass.h
-$(GLSRC)gstiffio.h:$(GLSRC)gxftype.h
$(GLSRC)gstiffio.h:$(GLSRC)gxfrac.h
+$(GLSRC)gstiffio.h:$(GLSRC)gxtmap.h
+$(GLSRC)gstiffio.h:$(GLSRC)gxftype.h
$(GLSRC)gstiffio.h:$(GLSRC)gscms.h
-$(GLSRC)gstiffio.h:$(GLSRC)gscspace.h
-$(GLSRC)gstiffio.h:$(GLSRC)gxpath.h
-$(GLSRC)gstiffio.h:$(GLSRC)gxbcache.h
-$(GLSRC)gstiffio.h:$(GLSRC)gsdevice.h
-$(GLSRC)gstiffio.h:$(GLSRC)gxarith.h
-$(GLSRC)gstiffio.h:$(GLSRC)gxstdio.h
-$(GLSRC)gstiffio.h:$(GLSRC)gspenum.h
-$(GLSRC)gstiffio.h:$(GLSRC)gxhttile.h
$(GLSRC)gstiffio.h:$(GLSRC)gsrect.h
$(GLSRC)gstiffio.h:$(GLSRC)gslparam.h
+$(GLSRC)gstiffio.h:$(GLSRC)gsdevice.h
+$(GLSRC)gstiffio.h:$(GLSRC)gxbitfmt.h
+$(GLSRC)gstiffio.h:$(GLSRC)gscpm.h
+$(GLSRC)gstiffio.h:$(GLSRC)gscspace.h
+$(GLSRC)gstiffio.h:$(GLSRC)gsgstate.h
+$(GLSRC)gstiffio.h:$(GLSRC)gxstdio.h
$(GLSRC)gstiffio.h:$(GLSRC)gsxfont.h
-$(GLSRC)gstiffio.h:$(GLSRC)gxclio.h
-$(GLSRC)gstiffio.h:$(GLSRC)gsiparam.h
$(GLSRC)gstiffio.h:$(GLSRC)gsdsrc.h
$(GLSRC)gstiffio.h:$(GLSRC)gsio.h
-$(GLSRC)gstiffio.h:$(GLSRC)gxbitmap.h
-$(GLSRC)gstiffio.h:$(GLSRC)gsmatrix.h
-$(GLSRC)gstiffio.h:$(GLSRC)gscpm.h
+$(GLSRC)gstiffio.h:$(GLSRC)gsiparam.h
$(GLSRC)gstiffio.h:$(GLSRC)gxfixed.h
-$(GLSRC)gstiffio.h:$(GLSRC)gsrefct.h
+$(GLSRC)gstiffio.h:$(GLSRC)gxclio.h
+$(GLSRC)gstiffio.h:$(GLSRC)gscompt.h
+$(GLSRC)gstiffio.h:$(GLSRC)gsmatrix.h
+$(GLSRC)gstiffio.h:$(GLSRC)gspenum.h
+$(GLSRC)gstiffio.h:$(GLSRC)gxhttile.h
$(GLSRC)gstiffio.h:$(GLSRC)gsparam.h
+$(GLSRC)gstiffio.h:$(GLSRC)gsrefct.h
$(GLSRC)gstiffio.h:$(GLSRC)gp.h
-$(GLSRC)gstiffio.h:$(GLSRC)gsccolor.h
-$(GLSRC)gstiffio.h:$(GLSRC)gsstruct.h
-$(GLSRC)gstiffio.h:$(GLSRC)gxsync.h
+$(GLSRC)gstiffio.h:$(GLSRC)memento.h
+$(GLSRC)gstiffio.h:$(GLSRC)memory_.h
$(GLSRC)gstiffio.h:$(GLSRC)gsutil.h
+$(GLSRC)gstiffio.h:$(GLSRC)gsuid.h
$(GLSRC)gstiffio.h:$(GLSRC)gsstrl.h
+$(GLSRC)gstiffio.h:$(GLSRC)gsstruct.h
$(GLSRC)gstiffio.h:$(GLSRC)gdbflags.h
-$(GLSRC)gstiffio.h:$(GLSRC)srdline.h
+$(GLSRC)gstiffio.h:$(GLSRC)gxsync.h
$(GLSRC)gstiffio.h:$(GLSRC)gserrors.h
-$(GLSRC)gstiffio.h:$(GLSRC)scommon.h
-$(GLSRC)gstiffio.h:$(GLSRC)memento.h
+$(GLSRC)gstiffio.h:$(GLSRC)gxbitmap.h
$(GLSRC)gstiffio.h:$(GLSRC)vmsmath.h
-$(GLSRC)gstiffio.h:$(GLSRC)gscsel.h
-$(GLSRC)gstiffio.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gstiffio.h:$(GLSRC)srdline.h
+$(GLSRC)gstiffio.h:$(GLSRC)scommon.h
$(GLSRC)gstiffio.h:$(GLSRC)gsfname.h
-$(GLSRC)gstiffio.h:$(GLSRC)gsstype.h
+$(GLSRC)gstiffio.h:$(GLSRC)gsbitmap.h
+$(GLSRC)gstiffio.h:$(GLSRC)gsccolor.h
+$(GLSRC)gstiffio.h:$(GLSRC)gxarith.h
$(GLSRC)gstiffio.h:$(GLSRC)stat_.h
-$(GLSRC)gstiffio.h:$(GLSRC)gxtmap.h
-$(GLSRC)gstiffio.h:$(GLSRC)gsmemory.h
$(GLSRC)gstiffio.h:$(GLSRC)gpsync.h
-$(GLSRC)gstiffio.h:$(GLSRC)memory_.h
+$(GLSRC)gstiffio.h:$(GLSRC)gsstype.h
+$(GLSRC)gstiffio.h:$(GLSRC)gsmemory.h
$(GLSRC)gstiffio.h:$(GLSRC)gpgetenv.h
-$(GLSRC)gstiffio.h:$(GLSRC)gslibctx.h
$(GLSRC)gstiffio.h:$(GLSRC)gscdefs.h
-$(GLSRC)gstiffio.h:$(GLSRC)gs_dll_call.h
-$(GLSRC)gstiffio.h:$(GLSRC)stdio_.h
-$(GLSRC)gstiffio.h:$(GLSRC)gscompt.h
+$(GLSRC)gstiffio.h:$(GLSRC)gslibctx.h
$(GLSRC)gstiffio.h:$(GLSRC)gxcindex.h
-$(GLSRC)gstiffio.h:$(GLSRC)gsgstate.h
+$(GLSRC)gstiffio.h:$(GLSRC)stdio_.h
+$(GLSRC)gstiffio.h:$(GLSRC)gsccode.h
$(GLSRC)gstiffio.h:$(GLSRC)stdint_.h
$(GLSRC)gstiffio.h:$(GLSRC)gssprintf.h
-$(GLSRC)gstiffio.h:$(GLSRC)gsccode.h
-$(GLSRC)gstiffio.h:$(GLSRC)std.h
$(GLSRC)gstiffio.h:$(GLSRC)gstypes.h
+$(GLSRC)gstiffio.h:$(GLSRC)std.h
$(GLSRC)gstiffio.h:$(GLSRC)stdpre.h
$(GLSRC)gstiffio.h:$(GLGEN)arch.h
+$(GLSRC)gstiffio.h:$(GLSRC)gs_dll_call.h
diff --git a/base/time_.h b/base/time_.h
index 48052c57..25466c5e 100644
--- a/base/time_.h
+++ b/base/time_.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/ttcalc.c b/base/ttcalc.c
index 3207809a..a8f805a1 100644
--- a/base/ttcalc.c
+++ b/base/ttcalc.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/ttcalc.h b/base/ttcalc.h
index 113f2536..f70b983f 100644
--- a/base/ttcalc.h
+++ b/base/ttcalc.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/ttcommon.h b/base/ttcommon.h
index 81c0ce34..7bef167a 100644
--- a/base/ttcommon.h
+++ b/base/ttcommon.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/ttconf.h b/base/ttconf.h
index 07638777..7dcd60aa 100644
--- a/base/ttconf.h
+++ b/base/ttconf.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/ttconfig.h b/base/ttconfig.h
index 9d0df5de..44744097 100644
--- a/base/ttconfig.h
+++ b/base/ttconfig.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/ttfinp.c b/base/ttfinp.c
index 0449f279..5052bb92 100644
--- a/base/ttfinp.c
+++ b/base/ttfinp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/ttfinp.h b/base/ttfinp.h
index c34ab20a..0a1a5e9e 100644
--- a/base/ttfinp.h
+++ b/base/ttfinp.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/ttfmain.c b/base/ttfmain.c
index c6210c13..2fbcacc1 100644
--- a/base/ttfmain.c
+++ b/base/ttfmain.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -493,7 +493,6 @@ static FontError ttfOutliner__BuildGlyphOutlineAux(ttfOutliner *self, int glyphI
short count;
unsigned int i;
unsigned short nAdvance;
- unsigned int nNextGlyphPtr = 0;
unsigned int nPosBeg;
TExecution_Context *exec = pFont->exec;
TGlyph_Zone *pts = &exec->pts;
@@ -605,11 +604,10 @@ retry:
e->flags = flags;
nUsage++;
} while (flags & MORE_COMPONENTS);
- /* Some fonts have bad WE_HAVE_INSTRUCTIONS, so use nNextGlyphPtr : */
if (r->Error(r))
goto errex;
nPos = r->Tell(r);
- n_ins = ((!r->Eof(r) && (bHaveInstructions || nPos < nNextGlyphPtr)) ? ttfReader__UShort(r) : 0);
+ n_ins = ((!r->Eof(r) && (bHaveInstructions)) ? ttfReader__UShort(r) : 0);
nPos = r->Tell(r);
r->ReleaseGlyph(r, glyphIndex);
glyph = NULL;
@@ -722,7 +720,7 @@ retry:
Clear_CodeRange(exec, TT_CodeRange_Glyph);
}
} else if (gOutline->contourCount > 0) {
- uint16 i;
+ int i;
bool bInsOK;
byte *onCurve, *stop, flag;
short *endPoints;
@@ -796,7 +794,7 @@ retry:
MoveGlyphOutline(pts, 0, gOutline, m_orig);
self->nContoursTotal += gOutline->contourCount;
self->nPointsTotal += nPoints;
- if (execute_bytecode && !skip_instructions &&
+ if (execute_bytecode && !skip_instructions &&
!r->Error(r) && n_ins && bInsOK && !(pFont->inst->GS.instruct_control & 1)) {
TGlyph_Zone *pts = &exec->pts;
int k;
@@ -848,7 +846,6 @@ ex:;
if (error == fBadInstruction && execute_bytecode) {
/* reset a load of stuff so we can try again without hinting */
- nNextGlyphPtr = 0;
exec = pFont->exec;
pts = &exec->pts;
usage = tti->usage + tti->usage_top;
diff --git a/base/ttfmemd.c b/base/ttfmemd.c
index 2999d55e..04e63075 100644
--- a/base/ttfmemd.c
+++ b/base/ttfmemd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/ttfmemd.h b/base/ttfmemd.h
index 69cc95eb..bde57a47 100644
--- a/base/ttfmemd.h
+++ b/base/ttfmemd.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/ttfoutl.h b/base/ttfoutl.h
index b1a1e6ff..507b2720 100644
--- a/base/ttfoutl.h
+++ b/base/ttfoutl.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/ttfsfnt.h b/base/ttfsfnt.h
index 41fdb5ce..78c02646 100644
--- a/base/ttfsfnt.h
+++ b/base/ttfsfnt.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/ttinterp.c b/base/ttinterp.c
index cf2fd4b9..125dc582 100644
--- a/base/ttinterp.c
+++ b/base/ttinterp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/ttinterp.h b/base/ttinterp.h
index e4d8242e..c1c8efaf 100644
--- a/base/ttinterp.h
+++ b/base/ttinterp.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/ttload.c b/base/ttload.c
index c7b8f278..42c71973 100644
--- a/base/ttload.c
+++ b/base/ttload.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/ttload.h b/base/ttload.h
index 057d4eee..76799b32 100644
--- a/base/ttload.h
+++ b/base/ttload.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/ttmisc.h b/base/ttmisc.h
index b857e306..c26450d9 100644
--- a/base/ttmisc.h
+++ b/base/ttmisc.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/ttobjs.c b/base/ttobjs.c
index 523489ae..e01b99b1 100644
--- a/base/ttobjs.c
+++ b/base/ttobjs.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/ttobjs.h b/base/ttobjs.h
index f19707bc..fa7dd09f 100644
--- a/base/ttobjs.h
+++ b/base/ttobjs.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/tttables.h b/base/tttables.h
index b2ee990f..2ceeb2f6 100644
--- a/base/tttables.h
+++ b/base/tttables.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/tttype.h b/base/tttype.h
index 7ee4334d..80c5036e 100644
--- a/base/tttype.h
+++ b/base/tttype.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/tttypes.h b/base/tttypes.h
index 05a9e751..aa26d20e 100644
--- a/base/tttypes.h
+++ b/base/tttypes.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/ugcclib.mak b/base/ugcclib.mak
index e2660682..423903bb 100644
--- a/base/ugcclib.mak
+++ b/base/ugcclib.mak
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2019 Artifex Software, Inc.
+# Copyright (C) 2001-2020 Artifex Software, Inc.
# All Rights Reserved.
#
# This software is provided AS-IS with no warranty, either express or
diff --git a/base/unistd_.h b/base/unistd_.h
index 71e2ecc3..a1bdbc0a 100644
--- a/base/unistd_.h
+++ b/base/unistd_.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/unix-aux.mak b/base/unix-aux.mak
index 187308de..3532091e 100644
--- a/base/unix-aux.mak
+++ b/base/unix-aux.mak
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2019 Artifex Software, Inc.
+# Copyright (C) 2001-2020 Artifex Software, Inc.
# All Rights Reserved.
#
# This software is provided AS-IS with no warranty, either express or
diff --git a/base/unix-dll.mak b/base/unix-dll.mak
index 0f9fd94c..64b7ca09 100644
--- a/base/unix-dll.mak
+++ b/base/unix-dll.mak
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2019 Artifex Software, Inc.
+# Copyright (C) 2001-2020 Artifex Software, Inc.
# All Rights Reserved.
#
# This software is provided AS-IS with no warranty, either express or
diff --git a/base/unix-end.mak b/base/unix-end.mak
index 40980ddb..011ed2d4 100644
--- a/base/unix-end.mak
+++ b/base/unix-end.mak
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2019 Artifex Software, Inc.
+# Copyright (C) 2001-2020 Artifex Software, Inc.
# All Rights Reserved.
#
# This software is provided AS-IS with no warranty, either express or
diff --git a/base/unix-gcc.mak b/base/unix-gcc.mak
index c27d0e3b..39685d2a 100644
--- a/base/unix-gcc.mak
+++ b/base/unix-gcc.mak
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2019 Artifex Software, Inc.
+# Copyright (C) 2001-2020 Artifex Software, Inc.
# All Rights Reserved.
#
# This software is provided AS-IS with no warranty, either express or
@@ -560,7 +560,7 @@ GS_DEV_DEFAULT="x11alpha bbox"
DISPLAY_DEV=$(DD)bbox.dev
# Choose the device(s) to include. See devs.mak for details,
-# devs.mak and contrib.mak for the list of available devices.
+# devs.mak and dcontrib.mak for the list of available devices.
# DEVICE_DEVS=$(DISPLAY_DEV) $(DD)x11.dev $(DD)x11_.dev $(DD)x11alpha.dev $(DD)x11alt_.dev $(DD)x11cmyk.dev $(DD)x11cmyk2.dev $(DD)x11cmyk4.dev $(DD)x11cmyk8.dev $(DD)x11gray2.dev $(DD)x11gray4.dev $(DD)x11mono.dev $(DD)x11rg16x.dev $(DD)x11rg32x.dev
DEVICE_DEVS=$(DISPLAY_DEV)
DEVICE_DEVS1=$(DD)bit.dev $(DD)bitcmyk.dev $(DD)bitrgb.dev $(DD)bitrgbtags.dev $(DD)bmp16.dev $(DD)bmp16m.dev $(DD)bmp256.dev $(DD)bmp32b.dev $(DD)bmpgray.dev $(DD)bmpmono.dev $(DD)bmpsep1.dev $(DD)bmpsep8.dev $(DD)ccr.dev $(DD)cif.dev $(DD)devicen.dev $(DD)eps2write.dev $(DD)fpng.dev $(DD)inferno.dev $(DD)ink_cov.dev $(DD)inkcov.dev $(DD)jpeg.dev $(DD)jpegcmyk.dev $(DD)jpeggray.dev $(DD)mgr4.dev $(DD)mgr8.dev $(DD)mgrgray2.dev $(DD)mgrgray4.dev $(DD)mgrgray8.dev $(DD)mgrmono.dev $(DD)miff24.dev $(DD)pam.dev $(DD)pamcmyk32.dev $(DD)pamcmyk4.dev $(DD)pbm.dev $(DD)pbmraw.dev $(DD)pcx16.dev $(DD)pcx24b.dev $(DD)pcx256.dev $(DD)pcxcmyk.dev $(DD)pcxgray.dev $(DD)pcxmono.dev $(DD)pdfwrite.dev $(DD)pgm.dev $(DD)pgmraw.dev $(DD)pgnm.dev $(DD)pgnmraw.dev $(DD)pkm.dev $(DD)pkmraw.dev $(DD)pksm.dev $(DD)pksmraw.dev $(DD)plan.dev $(DD)plan9bm.dev $(DD)planc.dev $(DD)plang.dev $(DD)plank.dev $(DD)planm.dev $(DD)plank.dev $(DD)plib.dev $(DD)plibc.dev $(DD)plibg.dev $(DD)plibk.dev $(DD)plibm.dev $(DD)pnm.dev $(DD)pnmraw.dev $(DD)ppm.dev $(DD)ppmraw.dev $(DD)ps2write.dev $(DD)psdcmyk.dev $(DD)psdcmykog.dev $(DD)psdf.dev $(DD)psdrgb.dev $(DD)spotcmyk.dev $(DD)txtwrite.dev $(DD)xcf.dev $(DD)psdcmyk16.dev $(DD)psdrgb16.dev
@@ -667,6 +667,7 @@ include $(GLSRCDIR)/ldf_jb2.mak
include $(GLSRCDIR)/lwf_jp2.mak
include $(GLSRCDIR)/openjpeg.mak
include $(GLSRCDIR)/cal.mak
+include $(GLSRCDIR)/ocr.mak
include $(GLSRCDIR)/jpegxr.mak
include $(GLSRCDIR)/expat.mak
@@ -676,7 +677,7 @@ include $(GLSRCDIR)/ijs.mak
include $(DEVSRCDIR)/devs.mak
-include $(DEVSRCDIR)/contrib.mak
+include $(DEVSRCDIR)/dcontrib.mak
include $(GLSRCDIR)/unix-aux.mak
include $(GLSRCDIR)/unixlink.mak
include $(GLSRCDIR)/unix-dll.mak
diff --git a/base/unixansi.mak b/base/unixansi.mak
index 283552ba..093e617e 100644
--- a/base/unixansi.mak
+++ b/base/unixansi.mak
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2019 Artifex Software, Inc.
+# Copyright (C) 2001-2020 Artifex Software, Inc.
# All Rights Reserved.
#
# This software is provided AS-IS with no warranty, either express or
diff --git a/base/unixhead.mak b/base/unixhead.mak
index 0ede8ec4..adb430f1 100644
--- a/base/unixhead.mak
+++ b/base/unixhead.mak
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2019 Artifex Software, Inc.
+# Copyright (C) 2001-2020 Artifex Software, Inc.
# All Rights Reserved.
#
# This software is provided AS-IS with no warranty, either express or
diff --git a/base/unixinst.mak b/base/unixinst.mak
index 099d9f2b..74bff55d 100644
--- a/base/unixinst.mak
+++ b/base/unixinst.mak
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2019 Artifex Software, Inc.
+# Copyright (C) 2001-2020 Artifex Software, Inc.
# All Rights Reserved.
#
# This software is provided AS-IS with no warranty, either express or
diff --git a/base/unixlink.mak b/base/unixlink.mak
index 23d730f4..3f11e3a3 100644
--- a/base/unixlink.mak
+++ b/base/unixlink.mak
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2019 Artifex Software, Inc.
+# Copyright (C) 2001-2020 Artifex Software, Inc.
# All Rights Reserved.
#
# This software is provided AS-IS with no warranty, either express or
diff --git a/base/valgrind.h b/base/valgrind.h
index 03b72656..387e4855 100644
--- a/base/valgrind.h
+++ b/base/valgrind.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/version.mak b/base/version.mak
index a5694e28..23098685 100644
--- a/base/version.mak
+++ b/base/version.mak
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2019 Artifex Software, Inc.
+# Copyright (C) 2001-2020 Artifex Software, Inc.
# All Rights Reserved.
#
# This software is provided AS-IS with no warranty, either express or
@@ -12,14 +12,13 @@
#
# Makefile fragment containing the current revision identification.
-# Major and minor version numbers.
-# MINOR0 is different from MINOR only if MINOR is a single digit.
+# Major, minor and patch version numbers.
GS_VERSION_MAJOR=9
-GS_VERSION_MINOR=52
-GS_VERSION_MINOR0=52
+GS_VERSION_MINOR=53
+GS_VERSION_PATCH=0
# Revision date: year x 10000 + month x 100 + day.
-GS_REVISIONDATE=20200319
+GS_REVISIONDATE=20200910
# Derived values
-GS_VERSION=$(GS_VERSION_MAJOR)$(GS_VERSION_MINOR0)
-GS_DOT_VERSION=$(GS_VERSION_MAJOR).$(GS_VERSION_MINOR0)
+GS_VERSION=$(GS_VERSION_MAJOR)$(GS_VERSION_MINOR)$(GS_VERSION_PATCH)
+GS_DOT_VERSION=$(GS_VERSION_MAJOR).$(GS_VERSION_MINOR).$(GS_VERSION_PATCH)
GS_REVISION=$(GS_VERSION)
diff --git a/base/vms_x_fix.h b/base/vms_x_fix.h
index b8aa4c44..2cacff54 100644
--- a/base/vms_x_fix.h
+++ b/base/vms_x_fix.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/vmsmath.h b/base/vmsmath.h
index 12117ce5..a8744d49 100644
--- a/base/vmsmath.h
+++ b/base/vmsmath.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/windows_.h b/base/windows_.h
index 61009b28..c1f25578 100644
--- a/base/windows_.h
+++ b/base/windows_.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/winlib.mak b/base/winlib.mak
index 7767b633..ece84f2d 100644
--- a/base/winlib.mak
+++ b/base/winlib.mak
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2019 Artifex Software, Inc.
+# Copyright (C) 2001-2020 Artifex Software, Inc.
# All Rights Reserved.
#
# This software is provided AS-IS with no warranty, either express or
@@ -135,6 +135,12 @@ BEGINFILES=$(GLGENDIR)\ccf32.tr\
#!include $(COMMONDIR)/pcdefs.mak
#!include $(COMMONDIR)/generic.mak
!include $(GLSRCDIR)\gs.mak
+
+!if "$(OCR_VERSION)"=="1"
+!include $(GLSRCDIR)\leptonica.mak
+!include $(GLSRCDIR)\tesseract.mak
+!endif
+
!include $(GLSRCDIR)\lib.mak
!include $(GLSRCDIR)\freetype.mak
!if "$(UFST_BRIDGE)"=="1"
@@ -150,6 +156,7 @@ BEGINFILES=$(GLGENDIR)\ccf32.tr\
!include $(GLSRCDIR)\lwf_jp2.mak
!include $(GLSRCDIR)\openjpeg.mak
!include $(GLSRCDIR)\cal.mak
+!include $(GLSRCDIR)\ocr.mak
!include $(GLSRCDIR)\expat.mak
!include $(GLSRCDIR)\jpegxr.mak
@@ -159,7 +166,7 @@ BEGINFILES=$(GLGENDIR)\ccf32.tr\
!include $(GLSRCDIR)\lcups.mak
!include $(GLSRCDIR)\lcupsi.mak
!include $(DEVSRCDIR)\devs.mak
-!include $(DEVSRCDIR)\contrib.mak
+!include $(DEVSRCDIR)\dcontrib.mak
!include $(CONTRIBDIR)\contrib.mak
# Define the compilation rule for Windows devices.
@@ -201,7 +208,7 @@ $(GLOBJ)gp_mswin.$(OBJ): $(GLSRC)gp_mswin.c $(AK) $(gp_mswin_h) \
$(GLOBJ)gp_winfs.$(OBJ): $(GLSRC)gp_winfs.c $(AK) $(gp_mswin_h) \
$(memory__h) $(stdio__h) $(windows__h) $(gp_h) $(gserrors_h) \
- $(WINLIB_MAK)
+ $(gserrors_h) $(WINLIB_MAK)
$(GLCCWIN) $(GLO_)gp_winfs.$(OBJ) $(C_) $(GLSRC)gp_winfs.c
$(AUX)gp_winfs.$(OBJ): $(GLSRC)gp_winfs.c $(AK) $(gp_mswin_h) \
diff --git a/base/winplat.mak b/base/winplat.mak
index c8fb509f..4c42a53b 100644
--- a/base/winplat.mak
+++ b/base/winplat.mak
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2019 Artifex Software, Inc.
+# Copyright (C) 2001-2020 Artifex Software, Inc.
# All Rights Reserved.
#
# This software is provided AS-IS with no warranty, either express or
diff --git a/base/winrtsup.cpp b/base/winrtsup.cpp
index 7dfacf83..c5104e52 100644
--- a/base/winrtsup.cpp
+++ b/base/winrtsup.cpp
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/winrtsup.h b/base/winrtsup.h
index d4c1dec3..80a3169f 100644
--- a/base/winrtsup.h
+++ b/base/winrtsup.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/wrfont.c b/base/wrfont.c
index e077e881..d117e75a 100644
--- a/base/wrfont.c
+++ b/base/wrfont.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/wrfont.h b/base/wrfont.h
index 02d779ae..d8c2a06c 100644
--- a/base/wrfont.h
+++ b/base/wrfont.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/write_t1.c b/base/write_t1.c
index 224429ce..ae0d6eea 100644
--- a/base/write_t1.c
+++ b/base/write_t1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -28,39 +28,49 @@ Public structures and functions in this file are prefixed with FF_ because they
the FAPI FreeType implementation.
*/
-static void
+static int
write_word_entry(gs_fapi_font * a_fapi_font, WRF_output * a_output,
const char *a_name, int a_index, int a_divisor)
{
short x;
+ int code;
WRF_wbyte(a_fapi_font->memory, a_output, '/');
WRF_wstring(a_fapi_font->memory, a_output, a_name);
WRF_wbyte(a_fapi_font->memory, a_output, ' ');
+
/* Get the value and convert it from unsigned to signed by assigning it to a short. */
- x = a_fapi_font->get_word(a_fapi_font, a_index, 0);
+ code = a_fapi_font->get_word(a_fapi_font, a_index, 0, (unsigned short *)&x);
+ if (code < 0)
+ return code;
+
/* Divide by the divisor to bring it back to font units. */
x = (short)(x / a_divisor);
WRF_wint(a_fapi_font->memory, a_output, x);
WRF_wstring(a_fapi_font->memory, a_output, " def\n");
+
+ return 0;
}
-static void
+static int
write_array_entry_with_count(gs_fapi_font * a_fapi_font,
WRF_output * a_output, const char *a_name,
int a_index, int a_count, int a_divisor)
{
- int i;
+ int i, code;;
if (a_count <= 0)
- return;
+ return 0;
WRF_wbyte(a_fapi_font->memory, a_output, '/');
WRF_wstring(a_fapi_font->memory, a_output, a_name);
WRF_wstring(a_fapi_font->memory, a_output, " [");
for (i = 0; i < a_count; i++) {
/* Get the value and convert it from unsigned to signed by assigning it to a short. */
- short x = a_fapi_font->get_word(a_fapi_font, a_index, i);
+ short x;
+ code = a_fapi_font->get_word(a_fapi_font, a_index, i, (unsigned short *)&x);
+ if (code < 0)
+ return code;
/* Divide by the divisor to bring it back to font units. */
x = (short)(x / a_divisor);
@@ -68,135 +78,183 @@ write_array_entry_with_count(gs_fapi_font * a_fapi_font,
WRF_wbyte(a_fapi_font->memory, a_output, (byte) (i == a_count - 1 ? ']' : ' '));
}
WRF_wstring(a_fapi_font->memory, a_output, " def\n");
+
+ return 0;
}
-static void
+static int
write_array_entry(gs_fapi_font * a_fapi_font, WRF_output * a_output,
const char *a_name, int a_index, int a_divisor)
{
/* NOTE that the feature index must be preceded by the count index for this to work. */
- int count = a_fapi_font->get_word(a_fapi_font, a_index - 1, 0);
+ unsigned short count;
+ int code = a_fapi_font->get_word(a_fapi_font, a_index - 1, 0, &count);
+
+ if (code < 0)
+ return code;
- write_array_entry_with_count(a_fapi_font, a_output, a_name, a_index,
+ return write_array_entry_with_count(a_fapi_font, a_output, a_name, a_index,
count, a_divisor);
}
-static void
+static int
write_subrs(gs_fapi_font * a_fapi_font, WRF_output * a_output, int raw)
{
int i;
- int count =
- a_fapi_font->get_word(a_fapi_font, gs_fapi_font_feature_Subrs_count,
- 0);
- if (count <= 0)
- return;
-
- WRF_wstring(a_fapi_font->memory, a_output, "/Subrs ");
- WRF_wint(a_fapi_font->memory, a_output, count);
- WRF_wstring(a_fapi_font->memory, a_output, " array\n");
-
- for (i = 0; i < count; i++) {
- long length;
- long buffer_size;
-
- if (raw)
- length = a_fapi_font->get_raw_subr(a_fapi_font, i, 0, 0);
- else
- length = a_fapi_font->get_subr(a_fapi_font, i, 0, 0);
- WRF_wstring(a_fapi_font->memory, a_output, "dup ");
- WRF_wint(a_fapi_font->memory, a_output, i);
- WRF_wbyte(a_fapi_font->memory, a_output, ' ');
- WRF_wint(a_fapi_font->memory, a_output, length);
- WRF_wstring(a_fapi_font->memory, a_output, " RD ");
-
- /* Get the subroutine into the buffer and encrypt it in place. */
- buffer_size = a_output->m_limit - a_output->m_count;
- if (buffer_size >= length) {
- if (raw)
- a_fapi_font->get_raw_subr(a_fapi_font, i, a_output->m_pos,
- (ushort) length);
- else
- a_fapi_font->get_subr(a_fapi_font, i, a_output->m_pos,
- (ushort) length);
- WRF_wtext(a_fapi_font->memory, a_output, a_output->m_pos, length);
- } else
- a_output->m_count += length;
+ unsigned short count;
+ int code = a_fapi_font->get_word(a_fapi_font, gs_fapi_font_feature_Subrs_count,
+ 0, &count);
+ if (code < 0)
+ return code;
- WRF_wstring(a_fapi_font->memory, a_output, " NP\n");
- }
+ if (count > 0) {
+ WRF_wstring(a_fapi_font->memory, a_output, "/Subrs ");
+ WRF_wint(a_fapi_font->memory, a_output, count);
+ WRF_wstring(a_fapi_font->memory, a_output, " array\n");
- WRF_wstring(a_fapi_font->memory, a_output, "ND\n");
-}
+ for (i = 0; i < count; i++) {
+ int length;
+ int buffer_size;
-static void
-write_charstrings(gs_fapi_font * a_fapi_font, WRF_output * a_output)
-{
- long length;
- long buffer_size;
- int i, count = a_fapi_font->get_word(a_fapi_font,
- gs_fapi_font_feature_CharStrings_count,
- 0);
- char NameBuf[256];
- if (count <= 0)
- return;
-
- WRF_wstring(a_fapi_font->memory, a_output, "2 index /CharStrings ");
- WRF_wint(a_fapi_font->memory, a_output, count);
- WRF_wstring(a_fapi_font->memory, a_output, " dict dup begin\n");
- for (i = 0; i < count; i++) {
- length =
- a_fapi_font->get_charstring_name(a_fapi_font, i,
- (byte *) & NameBuf, 256);
- if (length > 0) {
- length = a_fapi_font->get_charstring(a_fapi_font, i, 0, 0);
-
- WRF_wbyte(a_fapi_font->memory, a_output, '/');
- WRF_wstring(a_fapi_font->memory, a_output, (const char *)&NameBuf);
+ if (raw)
+ length = a_fapi_font->get_raw_subr(a_fapi_font, i, 0, 0);
+ else
+ length = a_fapi_font->get_subr(a_fapi_font, i, 0, 0);
+ if (length < 0)
+ return length;
+
+ WRF_wstring(a_fapi_font->memory, a_output, "dup ");
+ WRF_wint(a_fapi_font->memory, a_output, i);
WRF_wbyte(a_fapi_font->memory, a_output, ' ');
WRF_wint(a_fapi_font->memory, a_output, length);
WRF_wstring(a_fapi_font->memory, a_output, " RD ");
- /* Get the CharString into the buffer and encrypt it in place. */
+ /* Get the subroutine into the buffer and encrypt it in place. */
buffer_size = a_output->m_limit - a_output->m_count;
if (buffer_size >= length) {
- a_fapi_font->get_charstring(a_fapi_font, i, a_output->m_pos,
- (ushort) length);
+ int l2;
+
+ if (raw)
+ l2 = a_fapi_font->get_raw_subr(a_fapi_font, i, a_output->m_pos,
+ (ushort) length);
+ else
+ l2 = a_fapi_font->get_subr(a_fapi_font, i, a_output->m_pos,
+ (ushort) length);
+ if (l2 < 0)
+ return l2;
+
WRF_wtext(a_fapi_font->memory, a_output, a_output->m_pos, length);
} else
a_output->m_count += length;
- WRF_wstring(a_fapi_font->memory, a_output, " ND\n");
+
+ WRF_wstring(a_fapi_font->memory, a_output, " NP\n");
}
+
+ WRF_wstring(a_fapi_font->memory, a_output, "ND\n");
}
- WRF_wstring(a_fapi_font->memory, a_output, " end");
+ return 0;
}
static int
+write_charstrings(gs_fapi_font * a_fapi_font, WRF_output * a_output)
+{
+ int length;
+ int buffer_size;
+ int i;
+ unsigned short count;
+ int code = a_fapi_font->get_word(a_fapi_font,
+ gs_fapi_font_feature_CharStrings_count,
+ 0, &count);
+ char NameBuf[256];
+
+ if (code < 0)
+ return code;
+
+ if (count > 0) {
+ WRF_wstring(a_fapi_font->memory, a_output, "2 index /CharStrings ");
+ WRF_wint(a_fapi_font->memory, a_output, count);
+ WRF_wstring(a_fapi_font->memory, a_output, " dict dup begin\n");
+ for (i = 0; i < count; i++) {
+ length =
+ a_fapi_font->get_charstring_name(a_fapi_font, i,
+ (byte *) & NameBuf, 256);
+ if (length < 0)
+ return length;
+
+ if (length > 0) {
+ length = a_fapi_font->get_charstring(a_fapi_font, i, 0, 0);
+ if (length < 0)
+ return length;
+
+ WRF_wbyte(a_fapi_font->memory, a_output, '/');
+ WRF_wstring(a_fapi_font->memory, a_output, (const char *)&NameBuf);
+ WRF_wbyte(a_fapi_font->memory, a_output, ' ');
+ WRF_wint(a_fapi_font->memory, a_output, length);
+ WRF_wstring(a_fapi_font->memory, a_output, " RD ");
+
+ /* Get the CharString into the buffer and encrypt it in place. */
+ buffer_size = a_output->m_limit - a_output->m_count;
+ if (buffer_size >= length) {
+ int l2;
+ l2 = a_fapi_font->get_charstring(a_fapi_font, i, a_output->m_pos,
+ (ushort) length);
+ if (l2 < 0)
+ return l2;
+
+ WRF_wtext(a_fapi_font->memory, a_output, a_output->m_pos, length);
+ } else
+ a_output->m_count += length;
+ WRF_wstring(a_fapi_font->memory, a_output, " ND\n");
+ }
+ }
+ WRF_wstring(a_fapi_font->memory, a_output, " end");
+ }
+ return 0;
+}
+
+static bool
is_MM_font(gs_fapi_font * a_fapi_font)
{
- return a_fapi_font->get_word(a_fapi_font,
- gs_fapi_font_feature_DollarBlend, 0);
+ unsigned short db;
+ int code = a_fapi_font->get_word(a_fapi_font, gs_fapi_font_feature_DollarBlend, 0, &db);
+
+ if (code >= 0 && db == 1)
+ return true;
+
+ return false;
}
-static void
+static int
write_private_blend_dictionary(gs_fapi_font * a_fapi_font, WRF_output * a_output)
{
short x, x1, x2, i, j, acc;
+ int code;
+
if (is_MM_font(a_fapi_font)) {
WRF_wstring(a_fapi_font->memory, a_output, "3 index /Blend get /Private get begin\n");
- x = a_fapi_font->get_word(a_fapi_font,
- gs_fapi_font_feature_BlendBlueValues_length, 0);
+ code = a_fapi_font->get_word(a_fapi_font,
+ gs_fapi_font_feature_BlendBlueValues_length, 0, (unsigned short *)&x);
+ if (code < 0)
+ return code;
+
if (x > 0) {
WRF_wstring(a_fapi_font->memory, a_output, "/BlueValues [");
acc = 0;
for (i = 0; i < x; i++) {
WRF_wstring(a_fapi_font->memory, a_output, " [");
- x1 = a_fapi_font->get_word(a_fapi_font,
- gs_fapi_font_feature_BlendBlueValues_count, i);
+ code = a_fapi_font->get_word(a_fapi_font,
+ gs_fapi_font_feature_BlendBlueValues_count, i, (unsigned short *)&x1);
+ if (code < 0)
+ return code;
+
for (j = 0; j < x1; j++) {
- x2 = a_fapi_font->get_word(a_fapi_font,
- gs_fapi_font_feature_BlendBlueValues, acc++);
+ code = a_fapi_font->get_word(a_fapi_font,
+ gs_fapi_font_feature_BlendBlueValues, acc++, (unsigned short *)&x2);
+ if (code < 0)
+ return code;
+
WRF_wint(a_fapi_font->memory, a_output, x2);
WRF_wbyte(a_fapi_font->memory, a_output, (byte)' ');
}
@@ -205,18 +263,27 @@ write_private_blend_dictionary(gs_fapi_font * a_fapi_font, WRF_output * a_output
WRF_wstring(a_fapi_font->memory, a_output, " ]\n");
}
- x = a_fapi_font->get_word(a_fapi_font,
- gs_fapi_font_feature_BlendOtherBlues_length, 0);
+ code = a_fapi_font->get_word(a_fapi_font,
+ gs_fapi_font_feature_BlendOtherBlues_length, 0, (unsigned short *)&x);
+ if (code < 0)
+ return code;
+
if (x > 0) {
WRF_wstring(a_fapi_font->memory, a_output, "/OtherBlues [");
acc = 0;
for (i = 0; i < x; i++) {
WRF_wstring(a_fapi_font->memory, a_output, " [");
- x1 = a_fapi_font->get_word(a_fapi_font,
- gs_fapi_font_feature_BlendOtherBlues_count, i);
+ code = a_fapi_font->get_word(a_fapi_font,
+ gs_fapi_font_feature_BlendOtherBlues_count, i, (unsigned short *)&x1);
+ if (code < 0)
+ return code;
+
for (j = 0; j < x1; j++) {
- x2 = a_fapi_font->get_word(a_fapi_font,
- gs_fapi_font_feature_BlendOtherBlues, acc++);
+ code = a_fapi_font->get_word(a_fapi_font,
+ gs_fapi_font_feature_BlendOtherBlues, acc++, (unsigned short *)&x2);
+ if (code < 0)
+ return code;
+
WRF_wint(a_fapi_font->memory, a_output, x2);
WRF_wbyte(a_fapi_font->memory, a_output, (byte)' ');
}
@@ -224,71 +291,104 @@ write_private_blend_dictionary(gs_fapi_font * a_fapi_font, WRF_output * a_output
}
WRF_wstring(a_fapi_font->memory, a_output, " ]\n");
}
- x = a_fapi_font->get_word(a_fapi_font,
- gs_fapi_font_feature_BlendBlueScale_count, 0);
+ code = a_fapi_font->get_word(a_fapi_font,
+ gs_fapi_font_feature_BlendBlueScale_count, 0, (unsigned short *)&x);
+ if (code < 0)
+ return 0;
+
if (x > 0) {
float v;
WRF_wstring(a_fapi_font->memory, a_output, "/BlueScale [");
for (i =0; i < x; i++) {
- v = a_fapi_font->get_float(a_fapi_font,
- gs_fapi_font_feature_BlendBlueScale, i);
+ code = a_fapi_font->get_float(a_fapi_font,
+ gs_fapi_font_feature_BlendBlueScale, i, &v);
+ if (code < 0)
+ return code;
+
WRF_wfloat(a_fapi_font->memory, a_output, v);
WRF_wbyte(a_fapi_font->memory, a_output, (byte)' ');
}
WRF_wstring(a_fapi_font->memory, a_output, " ]\n");
}
- x = a_fapi_font->get_word(a_fapi_font,
- gs_fapi_font_feature_BlendBlueShift_count, 0);
+ code = a_fapi_font->get_word(a_fapi_font,
+ gs_fapi_font_feature_BlendBlueShift_count, 0, (unsigned short *)&x);
+ if (code < 0)
+ return code;
+
if (x > 0) {
WRF_wstring(a_fapi_font->memory, a_output, "/BlueShift [");
for (i =0; i < x; i++) {
- x2 = a_fapi_font->get_word(a_fapi_font,
- gs_fapi_font_feature_BlendBlueShift, i);
+ code = a_fapi_font->get_word(a_fapi_font,
+ gs_fapi_font_feature_BlendBlueShift, i, (unsigned short *)&x2);
+ if (code < 0)
+ return code;
+
WRF_wint(a_fapi_font->memory, a_output, x2);
WRF_wbyte(a_fapi_font->memory, a_output, (byte)' ');
}
WRF_wstring(a_fapi_font->memory, a_output, " ]\n");
}
- x = a_fapi_font->get_word(a_fapi_font,
- gs_fapi_font_feature_BlendBlueFuzz_count, 0);
+ code = a_fapi_font->get_word(a_fapi_font,
+ gs_fapi_font_feature_BlendBlueFuzz_count, 0, (unsigned short *)&x);
+ if (code < 0)
+ return code;
+
if (x > 0) {
WRF_wstring(a_fapi_font->memory, a_output, "/BlueFuzz [");
for (i =0; i < x; i++) {
- x2 = a_fapi_font->get_word(a_fapi_font,
- gs_fapi_font_feature_BlendBlueFuzz, i);
+ code = a_fapi_font->get_word(a_fapi_font,
+ gs_fapi_font_feature_BlendBlueFuzz, i, (unsigned short *)&x2);
+ if (code < 0)
+ return code;
+
WRF_wint(a_fapi_font->memory, a_output, x2);
WRF_wbyte(a_fapi_font->memory, a_output, (byte)' ');
}
WRF_wstring(a_fapi_font->memory, a_output, " ]\n");
}
- x = a_fapi_font->get_word(a_fapi_font,
- gs_fapi_font_feature_BlendForceBold_count, 0);
+ code = a_fapi_font->get_word(a_fapi_font,
+ gs_fapi_font_feature_BlendForceBold_count, 0, (unsigned short *)&x);
+ if (code < 0)
+ return code;
+
if (x > 0) {
WRF_wstring(a_fapi_font->memory, a_output, "/ForceBold [");
for (i =0; i < x; i++) {
- x2 = a_fapi_font->get_word(a_fapi_font,
- gs_fapi_font_feature_BlendForceBold, i);
+ code = a_fapi_font->get_word(a_fapi_font,
+ gs_fapi_font_feature_BlendForceBold, i, (unsigned short *)&x2);
+ if (code < 0)
+ return code;
+
WRF_wstring(a_fapi_font->memory, a_output, x2 ? "/true" : "/false");
WRF_wbyte(a_fapi_font->memory, a_output, (byte)' ');
}
WRF_wstring(a_fapi_font->memory, a_output, " ]\n");
}
- x = a_fapi_font->get_word(a_fapi_font,
- gs_fapi_font_feature_BlendStdHW_length, 0);
+ code = a_fapi_font->get_word(a_fapi_font,
+ gs_fapi_font_feature_BlendStdHW_length, 0, (unsigned short *)&x);
+ if (code < 0)
+ return code;
+
if (x > 0) {
WRF_wstring(a_fapi_font->memory, a_output, "/StdHW [");
acc = 0;
for (i = 0; i < x; i++) {
WRF_wstring(a_fapi_font->memory, a_output, " [");
- x1 = a_fapi_font->get_word(a_fapi_font,
- gs_fapi_font_feature_BlendStdHW_count, i);
+ code = a_fapi_font->get_word(a_fapi_font,
+ gs_fapi_font_feature_BlendStdHW_count, i, (unsigned short *)&x1);
+ if (code < 0)
+ return code;
+
for (j = 0; j < x1; j++) {
- x2 = a_fapi_font->get_word(a_fapi_font,
- gs_fapi_font_feature_BlendStdHW, acc++);
+ code = a_fapi_font->get_word(a_fapi_font,
+ gs_fapi_font_feature_BlendStdHW, acc++, (unsigned short *)&x2);
+ if (code < 0)
+ return code;
+
WRF_wint(a_fapi_font->memory, a_output, x2);
WRF_wbyte(a_fapi_font->memory, a_output, (byte)' ');
}
@@ -297,18 +397,27 @@ write_private_blend_dictionary(gs_fapi_font * a_fapi_font, WRF_output * a_output
WRF_wstring(a_fapi_font->memory, a_output, " ]\n");
}
- x = a_fapi_font->get_word(a_fapi_font,
- gs_fapi_font_feature_BlendStdVW_length, 0);
+ code = a_fapi_font->get_word(a_fapi_font,
+ gs_fapi_font_feature_BlendStdVW_length, 0, (unsigned short *)&x);
+ if (code < 0)
+ return code;
+
if (x > 0) {
WRF_wstring(a_fapi_font->memory, a_output, "/StdVW [");
acc = 0;
for (i = 0; i < x; i++) {
WRF_wstring(a_fapi_font->memory, a_output, " [");
- x1 = a_fapi_font->get_word(a_fapi_font,
- gs_fapi_font_feature_BlendStdVW_count, i);
+ code = a_fapi_font->get_word(a_fapi_font,
+ gs_fapi_font_feature_BlendStdVW_count, i, (unsigned short *)&x1);
+ if (code < 0)
+ return code;
+
for (j = 0; j < x1; j++) {
- x2 = a_fapi_font->get_word(a_fapi_font,
- gs_fapi_font_feature_BlendStdVW, acc++);
+ code = a_fapi_font->get_word(a_fapi_font,
+ gs_fapi_font_feature_BlendStdVW, acc++, (unsigned short *)&x2);
+ if (code < 0)
+ return code;
+
WRF_wint(a_fapi_font->memory, a_output, x2);
WRF_wbyte(a_fapi_font->memory, a_output, (byte)' ');
}
@@ -317,18 +426,27 @@ write_private_blend_dictionary(gs_fapi_font * a_fapi_font, WRF_output * a_output
WRF_wstring(a_fapi_font->memory, a_output, " ]\n");
}
- x = a_fapi_font->get_word(a_fapi_font,
- gs_fapi_font_feature_BlendStemSnapH_length, 0);
+ code = a_fapi_font->get_word(a_fapi_font,
+ gs_fapi_font_feature_BlendStemSnapH_length, 0, (unsigned short *)&x);
+ if (code < 0)
+ return code;
+
if (x > 0) {
WRF_wstring(a_fapi_font->memory, a_output, "/StemSnapH [");
acc = 0;
for (i = 0; i < x; i++) {
WRF_wstring(a_fapi_font->memory, a_output, " [");
- x1 = a_fapi_font->get_word(a_fapi_font,
- gs_fapi_font_feature_BlendStemSnapH_count, i);
+ code = a_fapi_font->get_word(a_fapi_font,
+ gs_fapi_font_feature_BlendStemSnapH_count, i, (unsigned short *)&x1);
+ if (code < 0)
+ return code;
+
for (j = 0; j < x1; j++) {
- x2 = a_fapi_font->get_word(a_fapi_font,
- gs_fapi_font_feature_BlendStemSnapH, acc++);
+ code = a_fapi_font->get_word(a_fapi_font,
+ gs_fapi_font_feature_BlendStemSnapH, acc++, (unsigned short *)&x2);
+ if (code < 0)
+ return code;
+
WRF_wint(a_fapi_font->memory, a_output, x2);
WRF_wbyte(a_fapi_font->memory, a_output, (byte)' ');
}
@@ -337,18 +455,27 @@ write_private_blend_dictionary(gs_fapi_font * a_fapi_font, WRF_output * a_output
WRF_wstring(a_fapi_font->memory, a_output, " ]\n");
}
- x = a_fapi_font->get_word(a_fapi_font,
- gs_fapi_font_feature_BlendStemSnapV_length, 0);
+ code = a_fapi_font->get_word(a_fapi_font,
+ gs_fapi_font_feature_BlendStemSnapV_length, 0, (unsigned short *)&x);
+ if (code < 0)
+ return code;
+
if (x > 0) {
WRF_wstring(a_fapi_font->memory, a_output, "/StemSnapV [");
acc = 0;
for (i = 0; i < x; i++) {
WRF_wstring(a_fapi_font->memory, a_output, " [");
- x1 = a_fapi_font->get_word(a_fapi_font,
- gs_fapi_font_feature_BlendStemSnapV_count, i);
+ code = a_fapi_font->get_word(a_fapi_font,
+ gs_fapi_font_feature_BlendStemSnapV_count, i, (unsigned short *)&x1);
+ if (code < 0)
+ return code;
+
for (j = 0; j < x1; j++) {
- x2 = a_fapi_font->get_word(a_fapi_font,
- gs_fapi_font_feature_BlendStemSnapV, acc++);
+ code = a_fapi_font->get_word(a_fapi_font,
+ gs_fapi_font_feature_BlendStemSnapV, acc++, (unsigned short *)&x2);
+ if (code < 0)
+ return code;
+
WRF_wint(a_fapi_font->memory, a_output, x2);
WRF_wbyte(a_fapi_font->memory, a_output, (byte)' ');
}
@@ -359,12 +486,15 @@ write_private_blend_dictionary(gs_fapi_font * a_fapi_font, WRF_output * a_output
WRF_wstring(a_fapi_font->memory, a_output, "end\n");
}
+ return 0;
}
-static void
+static int
write_private_dictionary(gs_fapi_font * a_fapi_font, WRF_output * a_output,
int Write_CharStrings)
{
+ int code;
+ unsigned long ulval;
a_output->m_encrypt = true;
/* Write 4 bytes that must encrypt to at least one character that cannot be a valid hexadecimal character. */
@@ -375,57 +505,97 @@ write_private_dictionary(gs_fapi_font * a_fapi_font, WRF_output * a_output,
WRF_wstring(a_fapi_font->memory, a_output, "/MinFeature {16 16} def\n");
WRF_wstring(a_fapi_font->memory, a_output, "/password 5839 def\n");
- if (Write_CharStrings)
- write_word_entry(a_fapi_font, a_output, "lenIV",
- gs_fapi_font_feature_lenIV, 1);
- else
+ if (Write_CharStrings) {
+ code = write_word_entry(a_fapi_font, a_output, "lenIV", gs_fapi_font_feature_lenIV, 1);
+ if (code < 0)
+ return code;
+ }
+ else {
WRF_wstring(a_fapi_font->memory, a_output, "/lenIV -1 def\n"); /* indicate that /subrs are not encoded. */
- write_word_entry(a_fapi_font, a_output, "BlueFuzz",
- gs_fapi_font_feature_BlueFuzz, 16);
+ }
+ code = write_word_entry(a_fapi_font, a_output, "BlueFuzz", gs_fapi_font_feature_BlueFuzz, 16);
+ if (code < 0)
+ return code;
WRF_wstring(a_fapi_font->memory, a_output, "/BlueScale ");
- WRF_wfloat(a_fapi_font->memory, a_output,
- a_fapi_font->get_long(a_fapi_font,
- gs_fapi_font_feature_BlueScale,
- 0) / 65536.0);
+ code = a_fapi_font->get_long(a_fapi_font,gs_fapi_font_feature_BlueScale, 0, &ulval);
+ if (code < 0)
+ return code;
+
+ WRF_wfloat(a_fapi_font->memory, a_output, (float)ulval/65536.0);
+
WRF_wstring(a_fapi_font->memory, a_output, " def\n");
- write_word_entry(a_fapi_font, a_output, "BlueShift",
- gs_fapi_font_feature_BlueShift, 16);
- write_array_entry(a_fapi_font, a_output, "BlueValues",
+ code = write_word_entry(a_fapi_font, a_output, "BlueShift", gs_fapi_font_feature_BlueShift, 16);
+ if (code < 0)
+ return code;
+
+ code = write_array_entry(a_fapi_font, a_output, "BlueValues",
gs_fapi_font_feature_BlueValues, 16);
- write_array_entry(a_fapi_font, a_output, "OtherBlues",
+ if (code < 0)
+ return code;
+
+ code = write_array_entry(a_fapi_font, a_output, "OtherBlues",
gs_fapi_font_feature_OtherBlues, 16);
- write_array_entry(a_fapi_font, a_output, "FamilyBlues",
+ if (code < 0)
+ return code;
+
+ code = write_array_entry(a_fapi_font, a_output, "FamilyBlues",
gs_fapi_font_feature_FamilyBlues, 16);
- write_array_entry(a_fapi_font, a_output, "FamilyOtherBlues",
+ if (code < 0)
+ return code;
+
+ code = write_array_entry(a_fapi_font, a_output, "FamilyOtherBlues",
gs_fapi_font_feature_FamilyOtherBlues, 16);
- write_word_entry(a_fapi_font, a_output, "ForceBold",
- gs_fapi_font_feature_ForceBold, 1);
- write_array_entry_with_count(a_fapi_font, a_output, "StdHW",
+ if (code < 0)
+ return code;
+
+ code = write_word_entry(a_fapi_font, a_output, "ForceBold", gs_fapi_font_feature_ForceBold, 1);
+ if (code < 0)
+ return code;
+
+ code = write_array_entry_with_count(a_fapi_font, a_output, "StdHW",
gs_fapi_font_feature_StdHW, 1, 16);
- write_array_entry_with_count(a_fapi_font, a_output, "StdVW",
+ if (code < 0)
+ return code;
+
+ code = write_array_entry_with_count(a_fapi_font, a_output, "StdVW",
gs_fapi_font_feature_StdVW, 1, 16);
- write_array_entry(a_fapi_font, a_output, "StemSnapH",
+ if (code < 0)
+ return code;
+
+ code = write_array_entry(a_fapi_font, a_output, "StemSnapH",
gs_fapi_font_feature_StemSnapH, 16);
- write_array_entry(a_fapi_font, a_output, "StemSnapV",
+ if (code < 0)
+ return code;
+
+ code = write_array_entry(a_fapi_font, a_output, "StemSnapV",
gs_fapi_font_feature_StemSnapV, 16);
+ if (code < 0)
+ return code;
- write_private_blend_dictionary(a_fapi_font, a_output);
+ code = write_private_blend_dictionary(a_fapi_font, a_output);
+ if (code < 0)
+ return code;
if (Write_CharStrings)
- write_subrs(a_fapi_font, a_output, 1);
+ code = write_subrs(a_fapi_font, a_output, 1);
else
- write_subrs(a_fapi_font, a_output, 0);
+ code = write_subrs(a_fapi_font, a_output, 0);
+ if (code < 0)
+ return code;
+
if (Write_CharStrings)
- write_charstrings(a_fapi_font, a_output);
+ code = write_charstrings(a_fapi_font, a_output);
+
+ return code;
}
-static void
-write_main_dictionary(gs_fapi_font * a_fapi_font, WRF_output * a_output,
- int Write_CharStrings)
+static int
+write_main_dictionary(gs_fapi_font * a_fapi_font, WRF_output * a_output, int Write_CharStrings)
{
- int i;
+ int i, code;
+ float fval;
WRF_wstring(a_fapi_font->memory, a_output, "5 dict begin\n");
@@ -433,10 +603,11 @@ write_main_dictionary(gs_fapi_font * a_fapi_font, WRF_output * a_output,
WRF_wstring(a_fapi_font->memory, a_output, "/FontMatrix [");
for (i = 0; i < 6; i++) {
- WRF_wfloat(a_fapi_font->memory, a_output,
- a_fapi_font->get_float(a_fapi_font,
- gs_fapi_font_feature_FontMatrix,
- i));
+ code = a_fapi_font->get_float(a_fapi_font, gs_fapi_font_feature_FontMatrix, i, &fval);
+ if (code < 0)
+ return code;
+
+ WRF_wfloat(a_fapi_font->memory, a_output, fval);
WRF_wbyte(a_fapi_font->memory, a_output, (byte) (i == 5 ? ']' : ' '));
}
WRF_wbyte(a_fapi_font->memory, a_output, '\n');
@@ -445,9 +616,12 @@ write_main_dictionary(gs_fapi_font * a_fapi_font, WRF_output * a_output,
WRF_wstring(a_fapi_font->memory, a_output, "/FontBBox {");
for (i = 0; i < 4; i++) {
- short x =
- a_fapi_font->get_word(a_fapi_font, gs_fapi_font_feature_FontBBox,
- i);
+ short x;
+ code = a_fapi_font->get_word(a_fapi_font, gs_fapi_font_feature_FontBBox,
+ i, (unsigned short *)&x);
+ if (code < 0)
+ return code;
+
WRF_wint(a_fapi_font->memory, a_output, x);
WRF_wbyte(a_fapi_font->memory, a_output, (byte) (i == 3 ? '}' : ' '));
}
@@ -459,52 +633,77 @@ write_main_dictionary(gs_fapi_font * a_fapi_font, WRF_output * a_output,
char Buffer[255];
entries = 0;
- x = a_fapi_font->get_word(a_fapi_font,
+ code = a_fapi_font->get_word(a_fapi_font,
gs_fapi_font_feature_BlendAxisTypes_count,
- 0);
+ 0, (unsigned short *)&x);
+ if (code < 0)
+ return code;
+
if (x)
entries++;
- x = a_fapi_font->get_word(a_fapi_font,
+
+ code = a_fapi_font->get_word(a_fapi_font,
gs_fapi_font_feature_BlendDesignPositionsArrays_count,
- 0);
+ 0, (unsigned short *)&x);
+ if (code < 0)
+ return code;
+
if (x)
entries++;
- x = a_fapi_font->get_word(a_fapi_font,
+ code = a_fapi_font->get_word(a_fapi_font,
gs_fapi_font_feature_BlendDesignMapArrays_count,
- 0);
+ 0, (unsigned short *)&x);
+ if (code < 0)
+ return code;
if (x)
+
entries++;
gs_sprintf(Buffer, "/FontInfo %d dict dup begin\n", entries);
WRF_wstring(a_fapi_font->memory, a_output, Buffer);
- x = a_fapi_font->get_word(a_fapi_font,
+ code = a_fapi_font->get_word(a_fapi_font,
gs_fapi_font_feature_BlendAxisTypes_count,
- 0);
+ 0, (unsigned short *)&x);
+ if (code < 0)
+ return code;
+
if (x) {
WRF_wstring(a_fapi_font->memory, a_output, "/BlendAxisTypes [");
for (i = 0; i < x; i++) {
WRF_wstring(a_fapi_font->memory, a_output, " /");
- a_fapi_font->get_name(a_fapi_font,
+ code = a_fapi_font->get_name(a_fapi_font,
gs_fapi_font_feature_BlendAxisTypes, i,
(char *)&Buffer, 255);
+ if (code < 0)
+ return code;
+
WRF_wstring(a_fapi_font->memory, a_output, Buffer);
}
WRF_wstring(a_fapi_font->memory, a_output, "] def\n");
}
- x = a_fapi_font->get_word(a_fapi_font,
+ code = a_fapi_font->get_word(a_fapi_font,
gs_fapi_font_feature_BlendDesignPositionsArrays_count,
- 0);
+ 0, (unsigned short *)&x);
+ if (code < 0)
+ return code;
+
if (x) {
WRF_wstring(a_fapi_font->memory, a_output, "/BlendDesignPositions [");
- x2 = a_fapi_font->get_word(a_fapi_font,
+ code = a_fapi_font->get_word(a_fapi_font,
gs_fapi_font_feature_BlendAxisTypes_count,
- 0);
+ 0, (unsigned short *)&x2);
+ if (code < 0)
+ return code;
+
for (i = 0; i < x; i++) {
WRF_wstring(a_fapi_font->memory, a_output, "[");
for (j = 0; j < x2; j++) {
- x1 = a_fapi_font->get_float(a_fapi_font,
+ code = a_fapi_font->get_float(a_fapi_font,
gs_fapi_font_feature_BlendDesignPositionsArrayValue,
- i * 8 + j);
+ i * 8 + j, &x1);
+ if (code < 0)
+ return code;
+
gs_sprintf(Buffer, "%f ", x1);
WRF_wstring(a_fapi_font->memory, a_output, Buffer);
}
@@ -512,26 +711,36 @@ write_main_dictionary(gs_fapi_font * a_fapi_font, WRF_output * a_output,
}
WRF_wstring(a_fapi_font->memory, a_output, "] def\n");
}
- x = a_fapi_font->get_word(a_fapi_font,
+ code = a_fapi_font->get_word(a_fapi_font,
gs_fapi_font_feature_BlendDesignMapArrays_count,
- 0);
+ 0, (unsigned short *)&x);
+ if (code < 0)
+ return code;
if (x) {
WRF_wstring(a_fapi_font->memory, a_output, "/BlendDesignMap [");
for (i = 0; i < x; i++) {
- x2 = a_fapi_font->get_word(a_fapi_font,
+ code = a_fapi_font->get_word(a_fapi_font,
gs_fapi_font_feature_BlendDesignMapSubArrays_count,
- i);
+ i, (unsigned short *)&x2);
+ if (code < 0)
+ return code;
+
WRF_wstring(a_fapi_font->memory, a_output, "[");
for (j = 0; j < x2; j++) {
WRF_wstring(a_fapi_font->memory, a_output, "[");
- x1 = a_fapi_font->get_float(a_fapi_font,
+ code = a_fapi_font->get_float(a_fapi_font,
gs_fapi_font_feature_BlendDesignPositionsArrayValue,
- i * 64 + j * 64);
+ i * 64 + j * 64, &x1);
+ if (code < 0)
+ return code;
+
gs_sprintf(Buffer, "%f ", x1);
WRF_wstring(a_fapi_font->memory, a_output, Buffer);
- x1 = a_fapi_font->get_float(a_fapi_font,
+ code = a_fapi_font->get_float(a_fapi_font,
gs_fapi_font_feature_BlendDesignPositionsArrayValue,
- i * 64 + j * 64 + 1);
+ i * 64 + j * 64 + 1, &x1);
+ if (code < 0)
+ return code;
gs_sprintf(Buffer, "%f ", x1);
WRF_wstring(a_fapi_font->memory, a_output, Buffer);
WRF_wstring(a_fapi_font->memory, a_output, "]");
@@ -548,48 +757,62 @@ write_main_dictionary(gs_fapi_font * a_fapi_font, WRF_output * a_output,
* be because the "get_proc" method below was missing the code to handle PS name
* objects.
*/
- if ((x =
- a_fapi_font->get_word(a_fapi_font,
+ code = a_fapi_font->get_word(a_fapi_font,
gs_fapi_font_feature_DollarBlend_length,
- 0)) > 0) {
+ 0, (unsigned short *)&x);
+ if (code < 0)
+ return code;
+
+ if (x > 0) {
+ int len;
WRF_wstring(a_fapi_font->memory, a_output, "/$Blend {");
if (a_output->m_count)
a_output->m_count += x;
- x = a_fapi_font->get_proc(a_fapi_font,
+ len = a_fapi_font->get_proc(a_fapi_font,
gs_fapi_font_feature_DollarBlend, 0,
(char *)a_output->m_pos);
if (a_output->m_pos)
- a_output->m_pos += x;
+ a_output->m_pos += len;
WRF_wstring(a_fapi_font->memory, a_output, "} def\n");
} else {
WRF_wstring(a_fapi_font->memory, a_output,
"/$Blend {0.1 mul exch 0.45 mul add exch 0.17 mul add add} def\n");
}
-#if 1
WRF_wstring(a_fapi_font->memory, a_output, "/WeightVector [");
- x = a_fapi_font->get_word(a_fapi_font,
- gs_fapi_font_feature_WeightVector_count, 0);
+ code = a_fapi_font->get_word(a_fapi_font,
+ gs_fapi_font_feature_WeightVector_count, 0, (unsigned short *)&x);
+ if (code < 0)
+ return code;
+
for (i = 0; i < x; i++) {
- x1 = a_fapi_font->get_float(a_fapi_font,
- gs_fapi_font_feature_WeightVector, i);
+ code = a_fapi_font->get_float(a_fapi_font,
+ gs_fapi_font_feature_WeightVector, i, &x1);
+ if (code < 0)
+ return code;
+
gs_sprintf(Buffer, "%f ", x1);
WRF_wstring(a_fapi_font->memory, a_output, Buffer);
}
WRF_wstring(a_fapi_font->memory, a_output, "] def\n");
-#endif
WRF_wstring(a_fapi_font->memory, a_output, "/Blend 3 dict dup begin\n");
WRF_wstring(a_fapi_font->memory, a_output, "/FontBBox {");
- x = a_fapi_font->get_word(a_fapi_font,
- gs_fapi_font_feature_BlendFontBBox_length , 0);
+ code = a_fapi_font->get_word(a_fapi_font,
+ gs_fapi_font_feature_BlendFontBBox_length , 0, (unsigned short *)&x);
+ if (code < 0)
+ return code;
+
for (i = 0; i < x; i++) {
int j;
WRF_wstring(a_fapi_font->memory, a_output, " {");
for (j = 0; j < 4; j++) {
- x2 = a_fapi_font->get_word(a_fapi_font,
+ code = a_fapi_font->get_word(a_fapi_font,
gs_fapi_font_feature_BlendFontBBox,
- j + (i * 4));
+ j + (i * 4), (unsigned short *)&x2);
+ if (code < 0)
+ return code;
+
WRF_wint(a_fapi_font->memory, a_output, x2);
WRF_wbyte(a_fapi_font->memory, a_output, (byte)' ');
}
@@ -600,7 +823,8 @@ write_main_dictionary(gs_fapi_font * a_fapi_font, WRF_output * a_output,
WRF_wstring(a_fapi_font->memory, a_output, "end def\n");
}
WRF_wstring(a_fapi_font->memory, a_output, "currentdict end\ncurrentfile eexec\n");
- write_private_dictionary(a_fapi_font, a_output, Write_CharStrings);
+
+ return write_private_dictionary(a_fapi_font, a_output, Write_CharStrings);
}
/**
@@ -616,6 +840,7 @@ long
gs_fapi_serialize_type1_font(gs_fapi_font * a_fapi_font,
unsigned char *a_buffer, long a_buffer_size)
{
+ int code;
WRF_output output;
WRF_init(&output, a_buffer, a_buffer_size);
@@ -623,15 +848,18 @@ gs_fapi_serialize_type1_font(gs_fapi_font * a_fapi_font,
/* Leading comment identifying a Type 1 font. */
WRF_wstring(a_fapi_font->memory, &output, "%!PS-AdobeFont-1\n");
- write_main_dictionary(a_fapi_font, &output, 0);
+ code = write_main_dictionary(a_fapi_font, &output, 0);
+ if (code < 0)
+ return (long)code;
#if 0
{
extern FILE *stdout;
- if (is_MM_font(a_fapi_font) && a_buffer && a_buffer_size >= output.m_count) {
+ if (a_buffer && a_buffer_size >= output.m_count) {
fwrite(a_buffer, 1, output.m_count, stdout);
}
}
#endif
+
return output.m_count;
}
@@ -640,6 +868,7 @@ gs_fapi_serialize_type1_font_complete(gs_fapi_font * a_fapi_font,
unsigned char *a_buffer,
long a_buffer_size)
{
+ int code;
WRF_output output;
WRF_init(&output, a_buffer, a_buffer_size);
@@ -647,6 +876,9 @@ gs_fapi_serialize_type1_font_complete(gs_fapi_font * a_fapi_font,
/* Leading comment identifying a Type 1 font. */
WRF_wstring(a_fapi_font->memory, &output, "%!PS-AdobeFont-1\n");
- write_main_dictionary(a_fapi_font, &output, 1);
+ code = write_main_dictionary(a_fapi_font, &output, 1);
+ if (code < 0)
+ return (long)code;
+
return output.m_count;
}
diff --git a/base/write_t1.h b/base/write_t1.h
index eeb355cd..0b16c387 100644
--- a/base/write_t1.h
+++ b/base/write_t1.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/write_t2.c b/base/write_t2.c
index 9df6216a..9cf3883c 100644
--- a/base/write_t2.c
+++ b/base/write_t2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -63,7 +63,7 @@ write_type2_int(gs_fapi_font * a_fapi_font, WRF_output * a_output, long a_int)
}
static void
-write_type2_float(gs_fapi_font * a_fapi_font, WRF_output * a_output, double a_float)
+write_type2_float(gs_fapi_font * a_fapi_font, WRF_output * a_output, float a_float)
{
char buffer[32];
const char *p = buffer;
@@ -120,17 +120,22 @@ write_name_index(gs_fapi_font * a_fapi_font, WRF_output * a_output)
WRF_wtext(a_fapi_font->memory, a_output, (const unsigned char *)"\x0\x1\x1\x1\x2" "x", 6);
}
-static void
+static int
write_word_entry(gs_fapi_font * a_fapi_font, WRF_output * a_output,
int a_feature_id, int a_feature_count, bool a_two_byte_op,
int a_op, int a_divisor)
{
+ int code = 0;
+
if (a_feature_count > 0) {
int i;
for (i = 0; i < a_feature_count; i++) {
/* Get the value and convert it from unsigned to signed. */
- short x = a_fapi_font->get_word(a_fapi_font, a_feature_id, i);
+ short x;
+ code = a_fapi_font->get_word(a_fapi_font, a_feature_id, i, (unsigned short *)&x);
+ if (code < 0)
+ return code;
/* Divide by the divisor to bring it back to font units. */
x = (short)(x / a_divisor);
@@ -140,24 +145,30 @@ write_word_entry(gs_fapi_font * a_fapi_font, WRF_output * a_output,
WRF_wbyte(a_fapi_font->memory, a_output, 12);
WRF_wbyte(a_fapi_font->memory, a_output, (unsigned char)a_op);
}
+ return code;
}
-static void
+static int
write_delta_array_entry(gs_fapi_font * a_fapi_font, WRF_output * a_output,
int a_feature_id, bool a_two_byte_op, int a_op,
int a_divisor)
{
- int i;
+ int i, code;
/* NOTE that the feature index (a_feature_id) must be preceded by the count index for this to work. */
- int count = a_fapi_font->get_word(a_fapi_font, a_feature_id - 1, 0);
+ unsigned short count;
- if (count > 0) {
+ code = a_fapi_font->get_word(a_fapi_font, a_feature_id - 1, 0, &count);
+
+ if (code >= 0 && count > 0) {
short prev_value = 0;
for (i = 0; i < count; i++) {
/* Get the value and convert it from unsigned to signed. */
- short value = a_fapi_font->get_word(a_fapi_font, a_feature_id, i);
+ short value;
+ code = a_fapi_font->get_word(a_fapi_font, a_feature_id, i, (unsigned short *)&value);
+ if (code < 0)
+ return code;
/* Divide by the divisor to bring it back to font units. */
value = (short)(value / a_divisor);
@@ -168,18 +179,22 @@ write_delta_array_entry(gs_fapi_font * a_fapi_font, WRF_output * a_output,
WRF_wbyte(a_fapi_font->memory, a_output, 12);
WRF_wbyte(a_fapi_font->memory, a_output, (unsigned char)a_op);
}
+ return code;
}
-static void
+static int
write_float_entry(gs_fapi_font * a_fapi_font, WRF_output * a_output,
int a_feature_id, int a_feature_count, bool a_two_byte_op,
int a_op)
{
if (a_feature_count > 0) {
- int i;
+ int i, code;
+ float x;
for (i = 0; i < a_feature_count; i++) {
- double x = a_fapi_font->get_float(a_fapi_font, a_feature_id, i);
+ code = a_fapi_font->get_float(a_fapi_font, a_feature_id, i, &x);
+ if (code < 0)
+ return code;
write_type2_float(a_fapi_font, a_output, x);
}
@@ -187,23 +202,29 @@ write_float_entry(gs_fapi_font * a_fapi_font, WRF_output * a_output,
WRF_wbyte(a_fapi_font->memory, a_output, 12);
WRF_wbyte(a_fapi_font->memory, a_output, (unsigned char)a_op);
}
+ return 0;
}
-static void
+static int
write_font_dict_index(gs_fapi_font * a_fapi_font, WRF_output * a_output,
unsigned char **a_charset_offset_ptr,
unsigned char **a_charstrings_offset_ptr,
unsigned char **a_private_dict_length_ptr)
{
unsigned char *data_start = 0;
+ int code;
WRF_wtext(a_fapi_font->memory, a_output, (const unsigned char *)"\x0\x1\x2\x0\x1\x0\x0", 7); /* count = 1, offset size = 2, first offset = 1, last offset = 0 (to be filled in later). */
if (a_output->m_pos)
data_start = a_output->m_pos;
- write_word_entry(a_fapi_font, a_output, gs_fapi_font_feature_FontBBox, 4,
- false, 5, 1);
- write_float_entry(a_fapi_font, a_output, gs_fapi_font_feature_FontMatrix,
- 6, true, 7);
+ code = write_word_entry(a_fapi_font, a_output, gs_fapi_font_feature_FontBBox, 4, false, 5, 1);
+ if (code < 0)
+ return code;
+
+ code = write_float_entry(a_fapi_font, a_output, gs_fapi_font_feature_FontMatrix, 6, true, 7);
+ if (code < 0)
+ return code;
+
write_type2_int(a_fapi_font, a_output, 0); /* 0 = Standard Encoding. */
WRF_wbyte(a_fapi_font->memory, a_output, 16); /* 16 = opcode for 'encoding'. */
*a_charset_offset_ptr = a_output->m_pos;
@@ -221,6 +242,7 @@ write_font_dict_index(gs_fapi_font * a_fapi_font, WRF_output * a_output,
data_start[-2] = (unsigned char)(last_offset >> 8);
data_start[-1] = (unsigned char)(last_offset & 0xFF);
}
+ return 0;
}
/**
@@ -236,9 +258,9 @@ write_charset(gs_fapi_font * a_fapi_font, WRF_output * a_output, unsigned char *
int i = 0;
/* Write the offset to the start of the charset to the top dictionary. */
- if (a_output->m_pos)
+ if (a_output->m_pos) {
write_4_byte_int(a_charset_offset_ptr + 1, a_output->m_count);
-
+ }
/*
Write the charset. Write one less than the number of characters,
because the first one is assumed to be .notdef. For the moment
@@ -263,8 +285,9 @@ write_charstrings_index(gs_fapi_font * a_fapi_font, WRF_output * a_output, int a
unsigned char *a_charstrings_offset_ptr)
{
/* Write the offset to the charstrings index to the top dictionary. */
- if (a_output->m_pos)
+ if (a_output->m_pos) {
write_4_byte_int(a_charstrings_offset_ptr + 1, a_output->m_count);
+ }
/* Write the index. */
WRF_wbyte(a_fapi_font->memory, a_output, (unsigned char)(a_characters >> 8));
@@ -274,21 +297,25 @@ write_charstrings_index(gs_fapi_font * a_fapi_font, WRF_output * a_output, int a
WRF_wbyte(a_fapi_font->memory, a_output, 1); /* offset = 1 */
}
-static void
+static int
write_gsubrs_index(gs_fapi_font * a_fapi_font, WRF_output * a_output)
{
unsigned char *cur_offset = 0;
unsigned char *data_start = 0;
int i;
- int count = a_fapi_font->get_word(a_fapi_font,
+ unsigned short count;
+ int code = a_fapi_font->get_word(a_fapi_font,
gs_fapi_font_feature_GlobalSubrs_count,
- 0);
+ 0, &count);
+
+ if (code < 0)
+ return code;
WRF_wbyte(a_fapi_font->memory, a_output, (unsigned char)(count >> 8));
WRF_wbyte(a_fapi_font->memory, a_output, (unsigned char)(count & 0xFF));
if (count <= 0)
- return;
+ return 0;
WRF_wbyte(a_fapi_font->memory, a_output, 4); /* offset size = 4 bytes */
WRF_wtext(a_fapi_font->memory, a_output, (const unsigned char *)"\x0\x0\x0\x1", 4); /* first offset = 1 */
@@ -305,9 +332,12 @@ write_gsubrs_index(gs_fapi_font * a_fapi_font, WRF_output * a_output)
for (i = 0; i < count; i++) {
long buffer_size = a_output->m_limit - a_output->m_count < 0 ? 0 : a_output->m_limit - a_output->m_count;
- long length = a_fapi_font->get_gsubr(a_fapi_font, i, a_output->m_pos,
+ int length = a_fapi_font->get_gsubr(a_fapi_font, i, a_output->m_pos,
(ushort) (buffer_size > 65535 ? 65535 : buffer_size));
+ if (length < 0)
+ return length;
+
if (a_output->m_pos)
WRF_wtext(a_fapi_font->memory, a_output, a_output->m_pos, length);
else
@@ -319,23 +349,28 @@ write_gsubrs_index(gs_fapi_font * a_fapi_font, WRF_output * a_output)
cur_offset += 4;
}
}
+ return 0;
}
-static void
+static int
write_subrs_index(gs_fapi_font * a_fapi_font, WRF_output * a_output)
{
unsigned char *cur_offset = 0;
unsigned char *data_start = 0;
int i;
- int count =
+ unsigned short count;
+ int code =
a_fapi_font->get_word(a_fapi_font, gs_fapi_font_feature_Subrs_count,
- 0);
+ 0, &count);
+
+ if (code < 0)
+ return code;
WRF_wbyte(a_fapi_font->memory, a_output, (unsigned char)(count >> 8));
WRF_wbyte(a_fapi_font->memory, a_output, (unsigned char)(count & 0xFF));
if (count <= 0)
- return;
+ return 0;
WRF_wbyte(a_fapi_font->memory, a_output, 4); /* offset size = 4 bytes */
WRF_wtext(a_fapi_font->memory, a_output, (const unsigned char *)"\x0\x0\x0\x1", 4); /* first offset = 1 */
@@ -352,9 +387,12 @@ write_subrs_index(gs_fapi_font * a_fapi_font, WRF_output * a_output)
for (i = 0; i < count; i++) {
long buffer_size = a_output->m_limit - a_output->m_count;
- long length = a_fapi_font->get_subr(a_fapi_font, i, a_output->m_pos,
+ int length = a_fapi_font->get_subr(a_fapi_font, i, a_output->m_pos,
(ushort) buffer_size);
+ if (length < 0)
+ return length;
+
if (a_output->m_pos)
WRF_wtext(a_fapi_font->memory, a_output, a_output->m_pos, length);
else
@@ -366,69 +404,104 @@ write_subrs_index(gs_fapi_font * a_fapi_font, WRF_output * a_output)
cur_offset += 4;
}
}
+ return 0;
}
-static void
+static int
write_private_dict(gs_fapi_font * a_fapi_font, WRF_output * a_output,
unsigned char *a_private_dict_length_ptr)
{
- int count, initial = a_output->m_count;
-
+ int code, initial = a_output->m_count;
+ unsigned short count;
/* Write the offset to the start of the private dictionary to the top dictionary. */
unsigned char *start = a_output->m_pos;
+ unsigned long lval;
+ gs_font_type1 *t1 = (gs_font_type1 *) a_fapi_font->client_font_data;
if (a_output->m_pos)
write_4_byte_int(a_private_dict_length_ptr + 6, a_output->m_count);
- write_word_entry(a_fapi_font, a_output, gs_fapi_font_feature_BlueFuzz, 1,
+ code = write_word_entry(a_fapi_font, a_output, gs_fapi_font_feature_BlueFuzz, 1,
true, 11, 16);
+ if (code < 0)
+ return code;
+ code = a_fapi_font->get_long(a_fapi_font, gs_fapi_font_feature_BlueScale, 0, &lval);
+ if (code < 0)
+ return code;
+
+ write_type2_float(a_fapi_font, a_output, (float)((double)lval/65536.0));
- write_type2_float(a_fapi_font, a_output,
- a_fapi_font->get_long(a_fapi_font,
- gs_fapi_font_feature_BlueScale,
- 0) / 65536.0);
WRF_wbyte(a_fapi_font->memory, a_output, 12);
WRF_wbyte(a_fapi_font->memory, a_output, 9);
- write_word_entry(a_fapi_font, a_output, gs_fapi_font_feature_BlueShift, 1,
+ code = write_word_entry(a_fapi_font, a_output, gs_fapi_font_feature_BlueShift, 1,
true, 10, 16);
- write_delta_array_entry(a_fapi_font, a_output,
+ if (code < 0)
+ return code;
+
+ code = write_delta_array_entry(a_fapi_font, a_output,
gs_fapi_font_feature_BlueValues, false, 6, 16);
- write_delta_array_entry(a_fapi_font, a_output,
+ if (code < 0)
+ return code;
+
+ code = write_delta_array_entry(a_fapi_font, a_output,
gs_fapi_font_feature_OtherBlues, false, 7, 16);
- write_delta_array_entry(a_fapi_font, a_output,
+ if (code < 0)
+ return code;
+
+ code = write_delta_array_entry(a_fapi_font, a_output,
gs_fapi_font_feature_FamilyBlues, false, 8, 16);
- write_delta_array_entry(a_fapi_font, a_output,
+ if (code < 0)
+ return code;
+
+ code = write_delta_array_entry(a_fapi_font, a_output,
gs_fapi_font_feature_FamilyOtherBlues, false, 9,
16);
- write_word_entry(a_fapi_font, a_output, gs_fapi_font_feature_ForceBold, 1,
+ if (code < 0)
+ return code;
+
+ code = write_word_entry(a_fapi_font, a_output, gs_fapi_font_feature_ForceBold, 1,
true, 14, 1);
- write_word_entry(a_fapi_font, a_output, gs_fapi_font_feature_StdHW, 1,
+ if (code < 0)
+ return code;
+
+ code = write_word_entry(a_fapi_font, a_output, gs_fapi_font_feature_StdHW, 1,
false, 10, 16);
- write_word_entry(a_fapi_font, a_output, gs_fapi_font_feature_StdVW, 1,
+ if (code < 0)
+ return code;
+
+ code = write_word_entry(a_fapi_font, a_output, gs_fapi_font_feature_StdVW, 1,
false, 11, 16);
- write_delta_array_entry(a_fapi_font, a_output,
+ if (code < 0)
+ return code;
+
+ code = write_delta_array_entry(a_fapi_font, a_output,
gs_fapi_font_feature_StemSnapH, true, 12, 16);
- write_delta_array_entry(a_fapi_font, a_output,
+ if (code < 0)
+ return code;
+
+ code = write_delta_array_entry(a_fapi_font, a_output,
gs_fapi_font_feature_StemSnapV, true, 13, 16);
+ if (code < 0)
+ return code;
/*
Write the default width and the nominal width. These values are not available via
the FAPI interface so we have to get a pointer to the Type 1 font structure and
extract them directly.
*/
- {
- gs_font_type1 *t1 = (gs_font_type1 *) a_fapi_font->client_font_data;
+ write_type2_float(a_fapi_font, a_output, fixed2float(t1->data.defaultWidthX));
+ WRF_wbyte(a_fapi_font->memory, a_output, 20);
- write_type2_float(a_fapi_font, a_output, fixed2float(t1->data.defaultWidthX));
- WRF_wbyte(a_fapi_font->memory, a_output, 20);
- write_type2_float(a_fapi_font, a_output, fixed2float(t1->data.nominalWidthX));
- WRF_wbyte(a_fapi_font->memory, a_output, 21);
- }
+ write_type2_float(a_fapi_font, a_output, fixed2float(t1->data.nominalWidthX));
+ WRF_wbyte(a_fapi_font->memory, a_output, 21);
- count =
+ code =
a_fapi_font->get_word(a_fapi_font, gs_fapi_font_feature_Subrs_count,
- 0);
+ 0, &count);
+ if (code < 0)
+ return code;
+
/* If we have local /Subrs we need to make a new dict ( see calling routine) and
* we also need to add an entry to the Provate dict with an offset to the /Subrs
* dict. This is complicated by the fact that the offset includes the data for
@@ -477,6 +550,7 @@ write_private_dict(gs_fapi_font * a_fapi_font, WRF_output * a_output,
if (a_output->m_pos)
write_4_byte_int(a_private_dict_length_ptr + 1,
a_output->m_pos - start);
+ return 0;
}
/**
@@ -492,6 +566,7 @@ gs_fapi_serialize_type2_font(gs_fapi_font * a_fapi_font,
unsigned char *charstrings_offset_ptr = NULL;
unsigned char *private_dict_length_ptr = NULL;
int characters = 0;
+ int code;
WRF_output output;
@@ -499,17 +574,29 @@ gs_fapi_serialize_type2_font(gs_fapi_font * a_fapi_font,
write_header(a_fapi_font, &output);
write_name_index(a_fapi_font, &output);
- write_font_dict_index(a_fapi_font, &output, &charset_offset_ptr,
+ code = write_font_dict_index(a_fapi_font, &output, &charset_offset_ptr,
&charstrings_offset_ptr, &private_dict_length_ptr);
+ if (code < 0)
+ return (long)code;
/* Write an empty string index. */
WRF_wtext(a_fapi_font->memory, &output, (const unsigned char *)"\x0\x0", 2);
write_gsubrs_index(a_fapi_font, &output);
- characters = write_charset(a_fapi_font, &output, charset_offset_ptr);
+ code = characters = write_charset(a_fapi_font, &output, charset_offset_ptr);
+ if (code < 0)
+ return (long)code;
+
write_charstrings_index(a_fapi_font, &output, characters, charstrings_offset_ptr);
- write_private_dict(a_fapi_font, &output, private_dict_length_ptr);
- write_subrs_index(a_fapi_font, &output);
+
+ code = write_private_dict(a_fapi_font, &output, private_dict_length_ptr);
+ if (code < 0)
+ return (long)code;
+
+ code = write_subrs_index(a_fapi_font, &output);
+
+ if (code < 0)
+ return (long)code;
return output.m_count;
}
diff --git a/base/write_t2.h b/base/write_t2.h
index b1c9d931..d3e4a30a 100644
--- a/base/write_t2.h
+++ b/base/write_t2.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/x_.h b/base/x_.h
index 249e9533..4d02d7a0 100644
--- a/base/x_.h
+++ b/base/x_.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
diff --git a/base/zlib.mak b/base/zlib.mak
index c103a5d9..f697fdcc 100644
--- a/base/zlib.mak
+++ b/base/zlib.mak
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2019 Artifex Software, Inc.
+# Copyright (C) 2001-2020 Artifex Software, Inc.
# All Rights Reserved.
#
# This software is provided AS-IS with no warranty, either express or